Postman学习(六)自动化测试之实例
说明
流程:批量创建用户,并进行登录验证,最后删除创建的用户。使用CSV文件进行测试的批量导入。
批量接口操作
当每个接口请求参数中有相同的情况以及对接口返回结果的统一验证的情况,可以通过配置Collection的Pre-request Scripts和Tests。
![](https://img.haomeiwen.com/i1396442/f9fbb3490d1b0f7e.png)
在本案例中,我们每个接口需要在Headers中设置 Request-DateTime。通过在Collection的Pre-request Scripts中进行配置。获取当前时间,并进行格式化。
方法一:
var moment = require('moment');
var data = moment().format(" YYYY-MM-DD HH:mm:ss");
pm.environment.set("Request-DateTime",data);
方法二:
vvar nowDate = new Date();
pm.environment.set("Request-DateTime", nowDate.getFullYear() + "-" + nowDate.getMonth() + "-" + nowDate.getDate() + " " + nowDate.getHours() + ":" + nowDate.getMinutes() + ":" + nowDate.getSeconds());
在本案例中,我们对每个接口的请求状态码进行200验证。
通过在Collection的Tests中进行配置。
pm.test("Status test", function () {
pm.response.to.have.status(200);
});
获取access_token
除了登录接口,其余接口都需要Access-Token这个参数,因此我们需要先配置登录接口,在Collection中新增一个接口配置。
![](https://img.haomeiwen.com/i1396442/e5d1b47af0abea99.png)
解析接口返回结果,获取Access-Token,并添加到环境变量。
![](https://img.haomeiwen.com/i1396442/cccd6fbf6ad17f02.png)
代码如下:
var jsonData = pm.response.json();
pm.test("操作成功,msgCoded为0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.environment.set("Access-Token", jsonData.item.token.access_token);
创建用户
在Collection中新增一个创建用户接口配置。上面配置Request-DateTime和Access-Token,可以通过{{参数名}}
进行配置。
![](https://img.haomeiwen.com/i1396442/618f66789da1962e.png)
接口接收的json格式参数,通过接口的Tab栏Body中进行配置,选择raw。
![](https://img.haomeiwen.com/i1396442/42166cf05b334ab6.png)
其中的变量,在后面会进行说明。
{
"companyId": "{{companyId}}",
"email": "{{email}}",
"loginFlag": "{{loginFlag}}",
"loginName": "{{loginName}}",
"name": "{{name}}",
"no": "{{no}}",
"officeId": "{{officeId}}",
"password": "{{password}}",
"roles": {{roles}},
"userType": "{{userType}}"
}
在接口的Tests进行反馈结果的验证,并转发到“登录”接口。
![](https://img.haomeiwen.com/i1396442/497b0c76c6228a28.png)
var jsonData = pm.response.json();
pm.test("操作成功,msgCoded为0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.test("登录名已经存在", function () {
pm.expect(jsonData.msgCode).to.eql(-10022);
});
postman.setNextRequest("登录");
登录
在Collection中新增一个创建登录接口配置。
![](https://img.haomeiwen.com/i1396442/749b337ba7c54d40.png)
在接口的Tests进行反馈结果的验证,并设置环境变量userId用于对创建的新用户进行删除操作,转发到“删除用户”接口。
![](https://img.haomeiwen.com/i1396442/463003abe2ac29c6.png)
var jsonData = pm.response.json();
pm.test("操作成功,msgCoded为0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.environment.set("userId", jsonData.item.user.id);
接口返回的数据为json格式,可以通过“xxx.xxx.xxx.xxx”进行数据获取。
![](https://img.haomeiwen.com/i1396442/8e51b0644969edc2.png)
删除用户
在Collection中新增一个删除用户接口配置。上面配置Request-DateTime和Access-Token,同时在url栏上配置参数“userId”,可以通过{{参数名}}
进行配置。
![](https://img.haomeiwen.com/i1396442/f92ff32623cfd598.png)
对方返回的结果进行判断,并清理环境变量“userId”。
![](https://img.haomeiwen.com/i1396442/0d9875eaa617a222.png)
var jsonData = pm.response.json();
pm.test("操作成功,msgCoded为0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.environment.unset("userId");
运行实例
此时Collection中有四个接口,点击三角号。
![](https://img.haomeiwen.com/i1396442/ca16b752ec6e665e.png)
弹出操作面板,点击“Run”。
![](https://img.haomeiwen.com/i1396442/f71121e8632d9901.png)
![](https://img.haomeiwen.com/i1396442/5e04f25609260596.png)
创建一个CSV文件,内容如下:
![](https://img.haomeiwen.com/i1396442/f068848d15081688.png)
第一行为参数名称,第二行起为数据。参数名称的获取,见“创建用户”接口以及“登录接口”。
![](https://img.haomeiwen.com/i1396442/d540d3f13d8bef1b.png)
![](https://img.haomeiwen.com/i1396442/110c27b3085dfe23.png)
创建文件后,点击面板的“Select File”,选择创建好的文件。
![](https://img.haomeiwen.com/i1396442/c83415d5c6f73a6a.png)
"iterations"迭代次数会根据CSV文件有多少行数据进行配置。
如果迭代次数较多的情况下,建议配置下“Delay”,延迟1000ms进行下一次请求。
可以通过“Preview”查看批量的文件内容。
![](https://img.haomeiwen.com/i1396442/6425b7dd6bee9db7.png)
还有一步操作,打开控制台,“view->Show Postman Console”。
![](https://img.haomeiwen.com/i1396442/01ef779e91430952.png)
![](https://img.haomeiwen.com/i1396442/6ed79de68b61d5b2.png)
最后一步,点击 “Run Collection名称”。
![](https://img.haomeiwen.com/i1396442/fb1c33b621c68559.png)
红框的内容可以点击试下,可以通过“Retry”重复运行。可以在刚才打开的控制台看到接口请求的详细内容。
![](https://img.haomeiwen.com/i1396442/8ac4244e18ce6766.png)
完结,以上即是一个完成的测试实例。