Postman之pm.test断言操作

系列文章目录
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
}
相关推荐
EVE จุ๊บ16 小时前
playwright和selenium的区别是什么
selenium·测试工具
Meta Luo2 天前
页面改版后自动化用例大量失败,应该怎么维护?
运维·功能测试·测试工具·自动化
释槐鸟~3 天前
还不知道RIDE工具怎么装吗
测试工具·自动化
有技巧搬砖3 天前
为什么锂电池组的电池老化测试很重要?
测试工具·锂电池·电池老化
蒲公英内测分发3 天前
智能手表卖出去后,包装、说明书和官网里的 App 下载入口怎么统一?
前端·人工智能·测试工具·智能家居·智能硬件·智能手表
蒲公英内测分发4 天前
智能手环出海测试,海外合作方分散在不同国家,Android 测试包怎么持续分发和更新?
android·前端·人工智能·测试工具·智能手表
无语的小歪歪4 天前
ATF 智测 1.0
python·测试工具·集成测试
SHENGWEI胜为4 天前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
xie881018024 天前
长表格跨页重复表头:排版上的做法
测试工具
老孟说禅5 天前
测试工具示波器的使用
测试工具