Postman实现批量发送json请求

最近有一个场景,需要本地批量调用某个接口,从文件中读取每次请求的请求体,实现方法记录一下。

1.读取请求体

在 Postman 中,如果你想在 Pre-request Script 阶段读取文件内容,比如为了将文件内容作为请求的一部分发送,你需要使用 Postman 的沙箱环境提供的 fs 模块。但是,请注意,由于安全限制,Postman 的沙箱环境中并不能直接访问本地文件系统来读取文件。不过,对于测试数据或较小的配置文件内容,你可以通过将文件内容复制粘贴到 Postman 的环境变量中,然后在 Pre-request Script 中访问这些变量来间接实现。

间接方法:使用环境变量存储文件内容

  1. 准备文件内容:首先,打开你的文件,复制其内容。
  2. 创建环境变量:在 Postman 中,创建一个新的Environments,然后添加一个新的环境变量。将复制的文件内容粘贴到变量值中。例如,创建一个名为 fileContent 的变量。
  3. 访问环境变量:在你的请求的 Pre-request Script 部分,使用以下代码来访问你刚刚创建的环境变量:
const fileContent = pm.environment.get('fileContent');

现在,fileContent 变量就包含了你从文件中复制的内容,你可以根据需要使用这部分内容构造请求体或其他部分。

2.构造请求

这里直接用pre-request构造json请求体。假设每个请求体是一行,那么构造请求体的格式如下:

pm.request.body.update({
    mode: 'raw',
    raw: line
})

update() 方法用于更新请求体,mode: 'raw' 表示我们将以原始文本形式发送数据,line就是我们前面文件中的请求内容。

3.配置批量请求

创建一个新的Collection,在这个集合下面新增一条请求(就是你要批量请求的那个接口),选择环境为上面创建的环境。

打开面板中的Runner配置,把创建的Collection一到Runner面板中,在Run Configuration中配置迭代次数和每条请求之间的间隔。

比如我配置的,要请求的接口是localtest,请求次数60次,每条请求间隔1s。

4.根据迭代次数获取请求体

由于每次请求的内容不一致,所以根据迭代次数来配置每次具体的请求,比如你有60个请求体,就配置迭代60次,每次请求的内容就根据环境变量获取。

具体的pre-request内容如下所示

const fileContent = pm.environment.get('fileContent');
const body = fileContent.split("\n")
// 获取当前迭代的次数
const iterationCount = pm.info.iteration;
console.log(`这是第 ${iterationCount} 次请求.`);
pm.request.body.update({
    mode: 'raw',
    raw: body[iterationCount]
})

5.执行请求

在runner面板里面点击run batchtest就可以执行批量请求了。执行完之后就可以看执行结果了。

### 如何使用 Postman 批量运行 JSON 测试案例 #### 准备工作 在开始批量测试之前,需先创建一个 Collection 来存储所有的 API 请求。Collection 是一种逻辑分组机制,允许用户将多个请求分类管理[^5]。 #### 创建并配置环境变量 如果需要动态传递数据(如用户名、密码或其他参数),可以通过 CSV 或 JSON 文件实现参数化。具体操作是在 `Runner` 中加载外部文件,并通过 `${data.<key>}` 的形式访问其中的数据项[^1]。 #### 编写单个请求及其断言 对于每一个单独的接口请求,都需要定义清晰的 URL 和 Body 参数。假设目标是发送 POST 请求,则应选择该 HTTP 方法,在 Headers 部分指定 Content-Type 为 application/json;接着切换到 Body -> raw 模式下填写实际 payload 数据结构[^3]。 另外重要的是添加必要的测试脚本来验证服务器响应是否符合预期标准。这些脚本通常位于 Tests 栏位内完成编写,比如检查状态码是否成功 (status code === 200),或者确认某些特定字段存在与否等条件判断语句[^4]。 #### 启动集合运行器(Collection Runner) 当所有独立用例准备完毕后,就可以利用内置工具——“Collection Runner”来进行整体流程控制了: 1. **打开界面**: 导航至左侧菜单栏找到已构建好的 collection 名称旁边的小箭头图标展开选项列表,选取 “Run <Your_Collection_Name>” 2. **设定迭代次数/导入数据源** * 若采用固定数值模式重复调用相同资源,默认可保持 Iterations 数值不变; * 而要是依赖于外部文档供给变动内容的话,请上传对应的 .csv/.json 类型档案作为补充素材依据[^2] 3. **执行过程监控与结果审查** - 运行期间会实时展示进度条以及每一步骤详情反馈。 - 完工之后除了能够浏览各个阶段产生的日志记录外,还支持一键导出汇总版报告便于后续深入剖析探讨. ```javascript // 示例:简单的断言语法 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); }); ``` 以上便是基于 Postman 实现多轮次自动化检测整个作业链路的关键步骤概述说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值