Postman 作为强大的 API 测试工具,能显著提升电商 API 的开发效率。以下教程从基础配置到自动化测试,帮助你快速掌握电商 API 测试技巧,包含一键导入、环境变量管理、请求自动化等核心功能。
一、Postman 基础配置:快速接入电商 API
- 一键导入官方 API 集合
多数电商平台(如京东、亚马逊)提供 Postman 集合文件,可直接导入:
操作步骤:
在 Postman 界面点击 "Import" → "Link";
粘贴平台提供的集合 URL(如亚马逊 SP-API 的官方集合);
选择环境(如 "Production" 或 "Sandbox")完成导入。
示例:导入京东开放平台 API 集合
plaintext - 访问京东开放平台文档中心;
- 找到"Postman集合下载"链接;
导入后自动获取商品、订单等模块的预设请求。
环境变量配置
创建环境变量管理 API 密钥、URL 等参数:
变量示例:
变量名 描述 示例值
app_key 应用标识 test_app_123
app_secret 应用密钥(加密签名用) a1b2c3d4e5f6g7h8i9j0k
base_url API 基础 URL https://api.jd.com/routerjson
access_token 用户授权令牌 at-1234567890abcdef
设置方法:
点击 Postman 右上角 "Environments" → "Add";
添加变量并保存(如{ {app_key}});
在请求中通过{ {变量名}}引用(如{ {base_url}}/product/get)。
二、签名生成:破解电商 API 认证机制- 自动生成签名的 Pre-request Script
多数电商 API 需签名验证,可通过 Postman 的 Pre-request Script 自动生成:
示例:京东 API 签名脚本
javascript
// 生成时间戳
const timestamp = new Date().getTime();
pm.environment.set("timestamp", timestamp);
// 准备签名参数
const appKey = pm.environment.get("app_key");
const appSecret = pm.environment.get("app_secret");
const method = pm.request.url.path[0]; // 获取请求方法名
// 构建参数字典(按实际API要求调整)
const params = {
"app_key": appKey,
"method": method,
"timestamp": timestamp,
"format": "json",
"v": "2.0",
// 添加其他必要参数
};
// 排序并拼接参数
const sortedParams = Object.keys(params).sort().reduce((acc, key) => {
acc[key] = params[key];
return acc;
}, {});
let signStr = appSecret;
for (const [key, value] of Object.entries(sortedParams)) {
signStr += ${key}${value};
}
signStr += appSecret;
// 生成MD5签名
const CryptoJS = require('crypto-js');
const sign = CryptoJS.MD5(signStr).toString().toUpperCase();
pm.environment.set("sign", sign);
使用方法:
在请求的 "Pre-request Script" 标签页粘贴脚本;
在请求参数中添加{
{sign}}和{
{timestamp}}。
三、高级请求技巧:批量测试与参数化
- 参数化测试
测试多个商品 ID 或订单号时,使用 CSV 文件批量导入:
操作步骤:
创建 CSV 文件(如test_data.csv):
csv
product_id,price
1001,2999
1002,1999
1003,3999
在请求 URL 或 Body 中使用{
{product_id}}引用参数;
点击 "Runner",选择集合和 CSV 文件,配置迭代次数。
- 批量请求与并发
使用 Postman 的 Runner 批量执行请求:
关键配置:
迭代次数:设置为 CSV 行数(如 3);
延迟:根据 API 限流设置(如 1000ms 避免触发限流);
并发请求数:根据性能需求调整(如 5 并发)。
四、自动化测试:从响应验证到断言 - 响应验证脚本
添加 Tests 验证 API 返回结果:
示例:验证商品价格
javascript
// 解析JSON响应
const response = pm.response.json();
// 验证状态码
pm.test("Status code is 200", () => {
pm.response.to.have.status(200);
});
// 验证价格字段存在且合理
pm.test("Price is valid", () => {
pm.expect(response.price).to.be.a('number');
pm.expect(response.price).to.be.above(0);
});
- 断言库使用
Postman 内置 Chai 断言库,支持多种验证方式:
断言类型 示例代码 验证目标
存在性验证 pm.expect(response.id).to.exist 字段是否存在
类型验证 pm.expect(response.price).to.be.a('number') 字段类型是否正确
范围验证 pm.expect(response.stock).to.be.within(0, 1000) 字段值是否在范围内
包含验证 pm.expect(response.name).to.include('手机') 字符串是否包含特定内容
五、环境切换:区分测试与生产环境 - 创建多环境配置
为开发、测试、生产环境分别创建配置:
操作步骤:
点击 "Environments" → "Add";
创建 "Development" 环境,设置测试 API 密钥;
创建 "Production" 环境,设置生产 API 密钥;
在请求中通过{ {变量名}}统一引用。 - 环境变量继承
使用_parent变量实现环境继承:
示例:
在 "Production" 环境中设置:
plaintext
base_url: https://api.jd.com
app_key: prod_key_123
在 "Development" 环境中设置:
plaintext
_parent: Production
app_key: dev_key_456
"Development" 自动继承base_url,覆盖app_key。
六、数据导出与集成:打通开发流程
- 导出测试结果
将测试结果导出为报告:
操作步骤:
运行测试集合;
点击 "Export Results";
选择格式(JSON、HTML 等);
集成到 CI/CD 流程(如 Jenkins、GitLab CI)。 - 与 CI/CD 工具集成
通过 Newman 命令行工具实现自动化测试:
安装 Newman:
bash
npm install -g newman
执行测试:
bash
newman run "电商API.postman_collection.json" -e "Production.postman_environment.json" -r html
七、实战案例:以京东 API 测试为例
- 测试商品查询接口
请求配置:
URL: { {base_url}}/routerjson
Method: POST
Headers:
plaintext
Content-Type: application/x-www-form-urlencoded
Body:
plaintext
app_key={
{app_key}}
method=jingdong.ware.product.get
timestamp={
{timestamp}}
format=json
v=2.0
sign={
{sign}}
param_json={"skuId":{
{product_id}}}
Pre-request Script:使用前文的签名生成脚本。
Tests:
javascript
const response = pm.response.json();
pm.test("商品信息返回成功", () => {
pm.expect(response.error_response).to.not.exist;
pm.expect(response.productInfo).to.exist;
pm.expect(response.productInfo.skuId).to.eql(pm.environment.get("product_id"));
});
八、常见问题与解决方案
问题场景 解决方案
签名失败 1. 检查参数排序是否正确
- 验证时间戳精度(毫秒级)
- 确认加密算法(MD5/SHA256)
请求被限流 1. 在 Runner 中设置请求延迟 - 添加指数退避重试脚本
- 联系平台申请提高 QPS 限额
环境变量不生效 1. 确认当前激活的环境 - 检查变量名是否拼写错误
- 使用console.log()调试
测试脚本执行失败 1. 检查 JSON 解析是否正确(pm.response.json()) - 确认字段路径是否正确
通过以上技巧,你可以高效测试各类电商 API,从基础请求到复杂的自动化测试,全面提升开发效率。建议结合平台官方文档,针对性调整请求参数和测试逻辑