继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

测试小工-Postman基本使用2

changingTime
关注TA
已关注
手记 15
粉丝 7
获赞 393

基于Postman V7.0.7介绍

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

三、Runner(批量测试)

1、两个入口

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

https://img3.mukewang.com/5ca80bba0001e6c205650367.jpg

2、基本设置

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

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

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

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

https://img3.mukewang.com/5ca80bd20001534d03530563.jpg

四、断言(Tests&Test Results)

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

1、断言入口

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

https://img.mukewang.com/5ca80be50001b00009110484.jpg

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

https://img2.mukewang.com/5ca80c650001fdc704020450.jpg

详解:

第一步,点击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。

https://img2.mukewang.com/5ca80bf500013f9108940328.jpg

第二步,点击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

https://img1.mukewang.com/5ca80c920001bf6f09060489.jpg

六、脚本录制

1、创建测试集

2、设置Postman代理

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

https://img.mukewang.com/5ca80ca30001030b08890662.jpg

3、设置PC代理

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

地址:localhost

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

https://img.mukewang.com/5ca80cd200019de209030502.jpg

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

https://img4.mukewang.com/5ca80cfa00019e6002610709.jpg

5、导出脚本

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

https://img1.mukewang.com/5ca80d0b00015cbf09080664.jpg

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"

https://img.mukewang.com/5ca80d870001386909070601.jpg

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

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

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

var jsonData = JSON.parse(responseBody);

postman.setEnvironmentVariable("uid", jsonData.result.uid);   

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

https://img.mukewang.com/5ca80d5500013af905520311.jpg


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP