如何在Postman测试运行器中使用多组数据执行多个API请求
实现方案
完全可以实现,核心通过Postman集合运行器+数据文件+前置脚本完成,具体操作步骤如下:
- 第一步:处理测试数据
把你的Excel文件按参数列整理好,第一行填参数名,前三行分别填API a、b、c对应的测试数据,之后将文件另存为UTF-8编码的CSV格式,Postman不直接支持Excel文件读取,需要转成CSV或JSON格式导入。如果有嵌套结构的复杂参数,也可以手动整理为JSON数组格式,每个数组元素对应一行测试数据,导入方式和CSV一致。 - 第二步:配置接口集合
新建一个Postman集合,按执行顺序依次添加API a、API b、API c三个接口,把接口中需要动态取值的参数替换为双大括号包裹的变量,变量名和CSV/JSON里的参数名完全对应,比如数据里有user_name字段,参数值就写{{user_name}}。 - 第三步:添加索引控制脚本
- 点击集合名称,切换到「Pre-request Script」标签,添加如下代码,用于初始化行索引:
// 首次运行初始化索引,默认从第0行开始读取 if (pm.globals.get("current_row_index") === undefined) { pm.globals.set("current_row_index", 0); }- 依次打开每个API的「Pre-request Script」标签,添加如下代码,用于读取当前行数据并更新索引:
// 读取当前行的所有测试数据 const allTestData = pm.iterationData.values(); const currentRowData = allTestData[pm.globals.get("current_row_index")]; // 将当前行参数写入环境变量,供当前接口调用 Object.keys(currentRowData).forEach(paramKey => { pm.environment.set(paramKey, currentRowData[paramKey]); }); // 索引+1,下一个接口读取下一行 pm.globals.set("current_row_index", pm.globals.get("current_row_index") + 1);- 打开最后一个接口(也就是API c)的「Tests」标签,添加如下代码,运行结束后清空索引变量,避免影响后续测试:
pm.globals.unset("current_row_index"); - 第四步:运行集合
点击集合右侧的运行按钮,打开集合运行器,上传你之前保存的CSV/JSON文件,迭代次数设置为1,点击运行即可。
示例验证
假设你的CSV文件内容如下:
user_id,req_content 1,测试接口a的请求内容 2,测试接口b的请求内容 3,测试接口c的请求内容
三个接口的请求体都设置为{"content":"{{req_content}}","uid":{{user_id}}},运行后接口a会自动带入第一行的user_id=1,接口b带入第二行的user_id=2,接口c带入第三行的user_id=3,和需求完全匹配。
内容的提问来源于stack exchange,提问作者prem
相关产品推荐
相关产品推荐

