系列文章目录
1.Postman之安装及汉化基本使用介绍
2.Postman之变量操作
3.Postman之数据提取
4.Postman之pm.test断言操作
5.Postman之newman
Postman之pm.test断言操作
用于验证请求的响应数据是否符合预期
1.断言方法
pm.test()
:定义一个测试函数,接受两个参数,一个字符串参数用来描述该测试,一个返回True/False的函数
语法格式 :pm.test("testName",function(){ } )
pm.expect()
:格式化测试结果消息,用实际结果和预期结果进行比较
语法格式 :pm.expect(实际结果).to.equal("预期结果")
- pm.expect(实际结果) :是格式化测试结果
- .to :是连接符,关于连接符的更多说明,在下文中,会讲解
- .equal("预期结果"):是进行条件判断
将两个语法联接起来演示:
javascript
pm.test("断言sub_msg是否交易成功",function(){
pm.expect(pm.response.json()['sub_msg']).is.equal("交易成功")
})
响应消息:
bash
{
"code": "40004",
"msg": "Business Failed",
"sub_code": "ACQ.TRADE_HAS_SUCCESS",
"sub_msg": "交易成功",
"trade_no": "2013112011001004330000121536",
"out_trade_no": "6823789339978248",
"md5": "5133bba0536afd5648c07d9cb4359c25"
}
多个结果进行断言如图,只有全部为true才算通过
javascript
pm.test("断言sub_msg是否交易成功",function(){
pm.expect(pm.response.json()['sub_msg']).is.equal("交易成功")
pm.expect(pm.response.json()['code']).is.equal("400041")
})
2.连接符
功能 :没有什么实际的功能,连接符并不会对结果造成任何影响,主要目的是让断言更加语意化,因此可以随便填写
连接符有很多,这里列举了一部分:
javascript
to,be,been,is,that,which,and,has,have,with,at,of,same
3.条件判断符
包含 :
.include("预期结果")
.contains("预期结果")
等于 :
.equal("预期结果")
小于 :
.below("预期结果")
注意:必须要是数值型的
取反 :
.not
可以进行条件组合,如:
javascript
//不包含
.not.include("预期结果")
.not.contains("预期结果")
//不等于
.not.equal("预期结果")
//不小于
.not.below("预期结果")
//不存在
.not.ok
//不为true
.not.true
判断为真 :
.ok
.true
注意:ok,可以理解为判断内容是否存在,存在就是true;而true,则不同是判断值,判断值是否为true,为true才为真
断言条件演示:
javascript
pm.test("断言sub_msg是否交易成功",function(){
// 包含___include
pm.expect(pm.response.json()['sub_msg']).is.include("交易")
// 包含___include
pm.expect(pm.response.json()['sub_msg']).is.contains("成功")
// 等于___equal
pm.expect(pm.response.json()['code']).is.equal("40004")
// 小于__below
pm.expect(pm.response.json()['number']).is.below(100)
// 取反__不包含.not.include
pm.expect(pm.response.json()['sub_msg']).is.not.include("测试")
//判断为真__ok
pm.expect(pm.response.json()['md5']).is.ok
//判断为真__true
pm.expect(pm.response.json()['status']).is.true
})
响应消息:
javascript
{
"code": "40004",
"msg": "Business Failed",
"sub_code": "ACQ.TRADE_HAS_SUCCESS",
"sub_msg": "交易成功",
"trade_no": "2013112011001004330000121536",
"out_trade_no": "6823789339978248",
"md5": "5133bba0536afd5648c07d9cb4359c25",
"number": 99,
"status": true
}