POSTMAN参数化和断言一些理解
Posted 测试小白鸭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POSTMAN参数化和断言一些理解相关的知识,希望对你有一定的参考价值。
这一段时间使用POSTMAN比较多,有些经验、踩过的坑和大家分享下,写的比较浅希望大家不要笑 话。说的错误希望大家可以指出,帮助我们一起前进。
首先,postman如何做接口测试就不写在里面了,有问题的欢迎大家找我讨论。 本文档主要讲如下方面
1.一些断言的使用;
2.参数化的运用;
3.通过参数化和断言参数化来用postman进行接口自动化。
1.一些断言的使用
可以看到红框中的Tests命令这里就是设置断言的位置这里我设置的断言分别是右边默认断言中的判断返回码和判断json值的断言。
箭头1所写代码
//判断返回状态码是否为200
// "//"是postman的注释方式
pm.test(
"Status code is 200" //这是断言判断结束后给我们看的部分
, function () //表示功能,但是我没用过
pm.response.to.have.status(200); //这句话表示返回码含200
);
箭头2所写代码
//json对象解析,路径编写
var jd = pm.response.json().msg; //设置一个变量表示json中的路径(看不懂的话看下底下的json返回值
//它表示:
//"msg":"成功"
//)对应的值
//验证信息编写
pm.test("验证信息是:成功" //这是断言判断结束后给我们看的部分
,function() //表示功能,但是我没用过
pm.expect(jd).to.equal(data.S3) //这句话表示jd变量对应的值是data.S3,这里我用了参数化的写法,不用参数化写的话应该为("值")
);
箭头3对应的是返回的BODY值在,这里可以看到msg对应的值是成功
注意:如果返回值中BODY的下有多个json对那么就得加上那个路径,如:
a:
q:
w:3;
;
;
b:
e:
c:a;
v:b;
;
n:
m:t;
y:o;
;
如果你要取m的值 那么你要这么写路径
var m = pm.response.json().b[1].m
2.参数化的运用
这里我用的参数化是在文档中编写的参数,并不是postman可以直接使用的环境参数,要注意
首先在报文中的参数化编写格式和断言中参数化编写格式不一样要注意不能写错;
报文中的写法:参数
断言中的写法:data.参数
如图
这是报文中参数化的写法
这是断言中参数化的写法
这是参数化文件
注意建议参数化文件要另存为下
文件的编码格式调整为utf-8,避免有些中文无法输入变成乱码
注:参数带数字的化最好使用双引号来填写,如"01",避免无法显示完全
3.通过参数化和断言参数化来用postman进行接口自动化
通过断言和参数化的方式我们就可以对接口进行自动化操作
如图指示
在postman左边有个按钮可以开启自动化的处理方式
打开后进行设置
通过右边栏选择要执行的接口和进行调整接口运行顺序;
左边Data栏选择要添加的参数化文件,不选择文件Data File Type栏是不会出现的,它的作用是选择参数化文件的文件类型和查看文件内的参数;
Save responses栏建议打开,可以看返回的报文(这样就算字段太多不好用断言判断还可以人工进行判断)
这张是网上找的图有点老,但是对各个功能有解释
设置之后就可以单击Run进行测试了
测试完成会出现如下图(版本不一样可能出现不一样的界面)
箭头1代表测试接口的断言执行情况
箭头2代表查看执行的详细情况(一点也不详细)
箭头3代表保存
箭头4代表重新再测一遍
这里点击接口名称可以查看报文详细结果
箭头1代表单击选择可打开报文详细页面
箭头2代表输入报文详细情况(我这里没有输入报文所以没有)
箭头3代表输出报文详细情况(上面Save responses栏没打开就不会显示)
接口自动化这里还有很多功能,如定时等,我这里都没有用到,欢迎大家讨论。
我这里根据自己的工作情况做了一些分享,也希望和大家进行进一步的讨论。谢谢大家。
延申材料:
以上是关于POSTMAN参数化和断言一些理解的主要内容,如果未能解决你的问题,请参考以下文章