基于Postman V7.0.7介绍

(接 测试小工-Postman基本使用1 介绍)

三、Runner(批量测试)

1、两个入口

顶部菜单的Runner;Collections-具体项目-更多-Run。


2、基本设置

1)Iterations:迭代,可以设置执行次数。

2)Dealy:间隔时间,用例与用例间的间隔时间。

3)Data:外部数据加载,即用例的参数化,可以与Iterations结合使用,实现参数化,也就是数据驱动。

ps:执行方式是一个请求结束后执行下一个请求。不是并发执行。


四、断言(Tests&Test Results)

一个完整的接口测试,包括:请求 -> 获取响应正文 -> 断言。

1、断言入口

请求响应器下的Tests。右侧SNIPPETS(片段)有基本语句,修改参数即可使用。


2、示例

断言场景如下:

1)判断HTTP返回状态码为200——对应SNIPPETS中的 Status code:Code is 200

2)判断响应正文中是否包含:"statusCode":200——Response body:Contains string

3)解析响应正文,并判断statusCode的值是200,message的值是”Success”——“Response body:JSON value check


详解:

第一步,点击SNIPPETS中“Status code:Code is 200”,自动生成”判断HTTP返回状态码为200“的代码:

pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});

其中,pm.test 是一个内置对象,"Status code is 200"为函数名称,可自定义;function(){}为具体函数。

这句代码意思是:名称为"Status code is 200"的断言中,判断responseCode对象的HTTP状态码是否为200。


第二步,点击SNIPPETS中“Response body:Contains string”:

pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

同上,”Body matches string“可自定义,string_you_want_to_search同字面意思,改成需要搜索的字段。

则 判断响应正文中是否包含:"statusCode":200 的代码为:

pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include('"statusCode":200');
});

注意:字符串中含双引号时需要用单引号包含,有单引号时要用双引导包含。

第三步,解析响应正文,就是要解析Json串。所以点击SNIPPETS中“Response body:JSON value check”:

pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});

这是一个判断JSON语句,其中"Your test name"、jsonData.value、100 均为自定义。

则判断statusCode的值是200的代码为:

pm.test("code200", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.statusCode).to.eql(200);
});

判断message的值是”Success”的代码为:

pm.test("messageok", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.message).to.eql("Success");
});

综上,应有4个断言,则有对应的4个结果。

五、Poatman Console调试窗口

该窗口可以看到请求的详细信息,并且在脚本中console打印的日志也会打印到这。

入口:快捷键Alt+Ctrl+C;顶部菜单-View-Show Postnam Console


六、脚本录制

1、创建测试集

2、设置Postman代理

顶部菜单-Capture API requests with Postman,设置端口号(默认值为5555)、选择输出位置。


3、设置PC代理

可通过Chrome-设置-高级设置-打开代理设置-局域网(LAN)设置-代理服务器:

地址:localhost

host:5555(在Poatman中设置的端口号)


4、打开浏览器,访问接口,操作完成后在之前选择的保存位置有对应的request。


5、导出脚本

测试集-更多-导出-Collection v2.1(默认文件格式)-Export


ps:不创建测试集的话,抓到的请求就会在History中显示。

七、关联

1、在配置的“正式”environment中,输入请求(ps:该请求返回的结果一定有JSON格式的)

2、在Tests输入:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("msg", jsonData.msg);

获取响应的数据中 msg 的值(jsonData.msg),然后赋值给字符“msg”  如: 响应数据是 "msg": "Custom error message notification"


在获取关联参数的时候可以设置一个environment,把获取的值放进去,给下个请求调用。

如果没有设置environment,则获取的参数不会被保存。

注意点:这里的脚本要看响应的返回形式来修改,如:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("uid", jsonData.result.uid);

这里响应返回的格式里面是 result数组下的uid,所以获取uid脚本是 jsonData.result.uid