跳转到主要内容

测试与验证

在全量接入之前,系统性的测试和验证是保证数据质量的关键步骤。

7.1 小批量优先策略

核心原则: 先用约100条商品测试,确认无误后再扩展到全量。
阶段1: 约100条商品   → 验证格式和字段正确性
阶段2: 约1000条商品  → 验证批量处理和分片
阶段3: 约10000条商品 → 验证性能和稳定性
阶段4: 全量数据      → 正式上线
不要跳过前几个阶段直接上全量。小批量测试可以快速发现格式错误、字段缺失和编码问题,修复成本远低于全量数据出错后的回滚。

7.2 必填字段验证

确保以下必填字段都已正确填写:
对象必填字段常见错误
ProductidID不稳定、重复
Productvariants空数组、缺少Variant
VariantidID不稳定、跨Product重复
Varianttitle空字符串、缺失
{
  "id": "prod_001",
  "variants": [
    {
      "id": "var_001_black",
      "title": "Wireless Earbuds - Black"
    }
  ]
}

7.3 价格格式验证

价格必须使用minor currency units(最小货币单位):
货币minor unit10.00的表示
USDcentamount: 1000
EURcentamount: 1000
JPYyen(无小数)amount: 10
GBPpennyamount: 1000
{
  "price": {
    "amount": 9999,
    "currency": "USD"
  }
}
验证要点:
  • amount 必须大于等于0(0表示免费)
  • currency 使用ISO 4217三字母代码
  • 确认未将”元”误传为”分”(99.99 USD应传 9999 而非 99

7.4 URL验证

逐一检查所有URL:
验证清单:
1. URL格式合法(以 https:// 开头)
2. 特殊字符已正确编码(空格使用 %20)
3. URL可公开访问(无需登录)
4. 不包含会过期的session参数
5. 图片URL返回有效图片
6. 包含 utm_medium=feed 追踪参数

7.5 SFTP连接测试

在正式上传数据前验证SFTP连通性:
测试步骤:
1. 使用提供的凭证连接SFTP服务器
2. 上传一个小文件验证写入权限
3. 确认文件成功到达目标目录
4. 验证文件大小匹配(传输完整性)
5. 尝试覆盖同名文件验证覆盖机制

7.6 API认证测试

验证API凭证和header配置:
GET /product_feeds/feed_abc123
Authorization: Bearer api_key_123
API-Version: 2025-09-12
Accept-Language: en-US
User-Agent: MyStore/1.0
Timestamp: 2026-04-11T08:30:00Z
如果返回200,说明认证配置正确。如果返回401或403,检查:
  • Bearer token是否正确
  • token是否过期
  • 账户权限是否已开通

7.7 常见错误排查

HTTP 400: invalid_payload

原因: 请求体格式错误或缺少必填字段。
常见场景解决方案
缺少 variants 数组每个Product必须包含至少一个Variant
Variant缺少 idtitle补充必填字段
价格 amount 为负数确保 amount 大于等于0
JSON格式错误检查括号、引号、逗号
编码不是UTF-8确认文件和请求使用UTF-8

HTTP 404: not_found

原因: 请求的Feed或商品不存在。
常见场景解决方案
Feed ID错误确认使用 POST /product_feeds 返回的ID
Feed已删除重新创建Feed
路径拼写错误检查URL路径

幂等性冲突

如果使用相同的 Idempotency-Key 发送了不同的请求体,可能导致冲突。每个不同的请求批次必须使用唯一的key。

7.8 Checkout Session测试

如果商家同时实现了Agentic Checkout端点,需要测试完整的交易流程。

创建会话

POST /checkout_sessions
Content-Type: application/json

{
  "line_items": [
    {
      "product_id": "prod_001",
      "variant_id": "var_001_black",
      "quantity": 1
    }
  ]
}

更新会话

POST /checkout_sessions/:id
Content-Type: application/json

{
  "shipping_address": {
    "line1": "123 Main St",
    "city": "San Francisco",
    "state": "CA",
    "postal_code": "94102",
    "country": "US"
  }
}

完成支付

POST /checkout_sessions/:id/complete

取消会话

POST /checkout_sessions/:id/cancel
测试以上四个流程,确认状态转换正确、错误处理完善。

7.9 Delegate Payment测试

Stripe提供测试模式(test mode)用于支付集成测试:
测试项说明
测试密钥使用Stripe test mode的API key
测试卡号使用Stripe提供的测试卡号
vault token测试模式下生成的 vt_test_... token
支付确认验证支付状态回调正确
3DS测试使用Stripe的3DS测试卡号触发认证流程
测试模式下不会产生真实交易,可以安全地验证完整支付流程。

7.10 数据同步监控

上线后持续监控数据同步状态:
监控项建议
SFTP上传成功率每日检查文件是否成功到达
API请求成功率监控4xx和5xx错误率
数据一致性定期比对本地数据与Feed中的数据
价格准确性抽查价格是否与实际一致
库存同步延迟检查库存变化到Feed更新的时间差
促销状态确认促销按时生效和过期

下一章: 第8章:常见问题 — ACP接入常见问题解答