3.9 KiB
3.9 KiB
快手行业电子凭证接口测试指南
接口地址
| 接口 | 路径 | 要求 |
|---|---|---|
| 通知商家发码 | POST /api/v1/open/kuaishou-industry/send-code |
100 TPS, 平均 100ms |
| 查询商家卡券 | POST /api/v1/open/kuaishou-industry/query-code |
500 QPS, 平均 100ms |
| 通知商家销毁 | POST /api/v1/open/kuaishou-industry/destroy-code |
100 TPS, 平均 100ms |
测试脚本
cd apps/backend
功能测试(9 项检查)
# 本地
npm run test:industry:http
# 远程 - 自定义地址 + 命令行密钥
npm run test:industry:http -- \
--baseUrl=https://xxx.xxx.com \
--appKey=ks660621772091030245 \
--signSecret=xxx
# 远程 - 使用 .env 中的密钥
npm run test:industry:http -- --baseUrl=https://ks.khhao.com
测试内容:发码 → 幂等性 → 查询全部 → 查询单个 → 不存在订单 → 销毁 → 销毁验证 → 整单销毁 → 签名错误拦截
压力测试(TPS/QPS 验证)
# 全部接口 100 TPS
npm run test:industry:http -- \
--baseUrl=https://ks.khhao.com \
--load --tps=100 --duration=10
# 单接口 500 QPS
npm run test:industry:http -- \
--baseUrl=https://ks.khhao.com \
--load --endpoint=query-code --tps=500 --duration=30
# 测试环境(自签证书)
npm run test:industry:http -- \
--baseUrl=https://xxx.xxx.com \
--insecure --load --tps=100 --duration=10
输出示例
╔══════════════════════════════════════════════════════╗
║ 压测: query-code ║
║ 目标: 500 TPS, 持续 10 s ║
╚══════════════════════════════════════════════════════╝
实际 TPS : 2028.0
总请求数 : 20290
成功数 : 20290
失败数 : 0
平均耗时 : 4.9 ms
P50 : 5.0 ms
P95 : 7.0 ms
P99 : 9.0 ms
最小耗时 : 1.0 ms
最大耗时 : 48.0 ms
参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
--baseUrl |
http://127.0.0.1:3000 |
目标服务地址 |
--appKey |
.env 中读取 | 快手分配的 appKey |
--signSecret |
.env 中读取 | 签名密钥 |
--signMethod |
MD5 |
签名算法: MD5 / HMAC_SHA256 |
--load |
false | 启用压力测试 |
--tps |
100 | 目标 TPS/QPS |
--duration |
10 | 持续时间(秒) |
--endpoint |
全部 | 指定接口: send-code / query-code / destroy-code |
--insecure |
false | 跳过 SSL 验证(测试环境用) |
配置密钥
三种方式任选:
1. .env 文件(推荐)
KUASHOU_INDUSTRY_APP_KEY=ks660621772091030245
KUASHOU_INDUSTRY_SIGN_SECRET=你的signSecret
2. 命令行
npm run test:industry:http -- --appKey=xxx --signSecret=xxx
3. 环境变量
KUASHOU_INDUSTRY_APP_KEY=xxx \
KUASHOU_INDUSTRY_SIGN_SECRET=xxx \
npm run test:industry:http
压测前调高限流
服务端默认限流 120 req/min,压测需要调高:
# docker-compose.dev.yml 已支持,重启时传入即可
KUASHOU_INDUSTRY_RATE_LIMIT_MAX=60000 docker compose -f docker-compose.dev.yml up -d backend
直接调用服务层(不需启动 HTTP)
npm run test:industry # 直接调用 handler,绕过 HTTP 层
签名算法
请求签名流程:
- 所有参数(除 sign)按 key 字典序排序
- 用
&拼接为key=value格式 - 末尾追加
&signSecret=xxx - MD5 或 HMAC_SHA256 计算签名
脚本内置了签名计算,自动处理。
注意事项
- 测试环境需将出口 IP 加入快手白名单
- 远程压力测试避免影响线上业务,建议先功能测试再逐步加量
- 签名密钥勿提交到 git,通过 .env 或命令行传入