断言
简介
Postman 提供一个测试沙箱(Postman Sandbox) 测试沙箱是一个 JavaScript 执行环境,可以通过 JS 脚本来编 写 pre-request Script 和 test Script。
- pre-request Script(预置脚本)可以用来修改一些默认参数,在请求发送之前执行。有点类似于 unittest 里面的 setUp()方法。
- test Script(测试脚本)当接收到响应之后,再执行测试脚本。
案例
接口请求 URL 如下:请求方式为 POST
代码语言:javascript复制postman-echo.com/post
断言规则
- 响应状态码:200
- 响应内容:返回的user参数值与定义的一致
- 响应时间:小于0.5s
测试脚本
在 pre-request Script 定义变量 user
代码语言:javascript复制pm.variables.set("user",'zxw');
在Test栏下编写如下脚本
代码语言:javascript复制//判断响应状态码
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
//获取发送的参数值
username=pm.variables.get("user");
console.log(username);
//校验响应内容是否和请求的一致
pm.test("Check username", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.json['user']).to.eql(username);
});
//检测响应时间是否小于 0.5s
pm.test("Response time is less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
断言结果
image-20210526234135437
运行collection
批量运行
当我们想批量测试某个集合里面的各个 API 时,可以使用 Collection Runner 来批量运行 API,同时可以进行环境 变量、迭代执行次数、延迟时间等设置。
数据驱动
应用背景
有时我们针对一个接口需要测试很多不同的参数,如果每次一个个的去修改参数值来进行测试这样效率肯定会比较 低下。因此我们需要每次迭代执行传入不同的参数进行测试,那么需要导入外部数据文件进行参数化,也就是所谓 的数据驱动。
数据导入
如下图所示,data 选择之前我们创建的 json 数据文件:data.json,文件类型选择 application/json json 数据内容 如下:
代码语言:javascript复制[{
"username": "jack",
"passwd": "6666"
},{
"username": "Bob",
"passwd": "5555"
},{
"username": "Marry",
"passwd": "8888"
}]
请求之前延迟时间最好设置为 1000~3000,避免过于频繁请求被禁。
设置环境变量时记得选择save
image-20210527000631424
批跑结果
image-20210527000836354
构建工作流
设置请求顺序
调整执行顺序为:Request1->Request3->Request2->Request4
首先在第一个请求:Request1 中 Test 添加如下代码:表示下一个请求为执行请求名称为 Request3 的请求
代码语言:javascript复制postman.setNextRequest('Request 3')
然后在 Request3 的请求中 Test 添加如下代码:表示下一个请求为执行请求名称为 Request2 的请求
代码语言:javascript复制postman.setNextRequest('Request 2')
最后在 Request2 的请求中 Test 添加如下代码:表示下一个请求为执行请求名称为 Request4 的请求
代码语言:javascript复制postman.setNextRequest('Request 4')
image-20210527001252721
NEWman应用
Newman 是一款基于 Node.js 开发的可以运行 Postman 的工具,使用 Newman,可以直接从命令行运行和测试 Postman 集合。
代码语言:javascript复制newman run Postman_API.postman_collection.json -d data.json -r html
命令说明
- run 代表要执行的 postman 脚本,即为导出的集合。
- -d 表示要执行的数据,也就是之前导入 postman 的数据
- -r 生成的测试报告类型,这里生成 html 格式报告
集成jenkins
Jenkins 简介
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开 放易用的软件平台,使软件的持续集成变成可能。
集成步骤
集成到 jenkins 的思路其实很简单,就把之前我们执行测试的 cmd 命令放到 jenkins 里面去执行。集成步骤也很简单:
- 首先新建一个项目: postman_api_test
- 然后在构建栏目下拉菜单选择 Execute Windows batch command
c:
cd C:UsersShuqingDesktoppmtest
newman run Postman_API.postman_collection.json -d data.json -r html
image-20210527001934863
最后执行结果如下:
image-20210527002010902
号外功能
- Postman 支持导出不同语言版本的脚本
- Postman 可以抓取移动端数据