Postman常用断言功能解析

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 在Postman中断言也属于比较重要的一块内容,因为关系到如何准确的判断我们测试的接口是否达到我们的期许和要求,断言脚本语言除了系统自带的一部分外还有很多可以灵活自己编写的,在不断的学习中还会不断的总结,本文就是主要介绍Postman常用断言功能解析。

一、Postman断言模块

image.gif

二、七种常规业务断言

前4种最常用:

1)Status code:Code is 200 检查返回的状态码是否为200

2)Response body:Contains string 检查响应中包括指定字符串

3)Response body:Json value check 检查响应中其中json的值

4)Response body:is equal to a string 检查响应等于一个字符串

5)Response headers:Content-Type...检查是否包含响应头Content-Type

6)Response time is less than 200ms:检查请求耗时小于200ms

7)Status code :Successfull POST  request :判断post请求的状态码,是不是在201和202这两个之中

三、全局断言:一般是 状态断言

image.gif

四、常规业务断言

3.1. Status code:Code is 200 检查返回的状态码是否为200

//状态码业务断言 == 全局断言,一个地方处理即可
pm.test("检查返回状态码为200", function () {
    pm.response.to.have.status(200);
});

image.gif

3.1. 总结:

Status code 不等于200时,断言报错;反之==200时,断言通过

3.2. Response body:Contains string 检查响应中包括指定字符串

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

image.gif

image.gif

3.3. Response body:Json value check 检查响应中其中json的值

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

image.gif

image.gif

其中pm.test意为postman中的test模块

pm.test(“assert name”, function()‘{*****}’)

可以理解为是其固定格式而{****}就是断言的主要内容;

{ var jsonData = pm.response.json();--------①
pm.expect(jsonData.code).to.eql(100);}------------②

①主要是对响应做一个json格式的转换,先把响应转换为json格式

②通过取值jsonData.code 取响应结果中key键为code的值 与100进行等值比较

pm.expect(jsonData.code).to.epl(100)

3.4. Response body:is equal to a string 检查响应等于一个字符串

//Postman源码
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

image.gif

3.4.总结

其中response_body_string对应的是响应体的全部内容,这种断言方式在响应体内容比较多的时候是不建议使用的,需要注意只有响应体与预期的完全相同才会断言成功

image.gif

3.5. Response headers:Content-Type...检查是否包含响应头Content-Type

//Postman源码
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

image.gif

image.gif

3.5.总结

据这个思路我们把断言脚本中的Content-Type替换成Date,就是断言响应头中是不是存在Date这个key值(json是以Key-Value键值对的形式存储的)

3.6. Response time is less than 200ms:检查请求耗时小于200ms

//Postman源码
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

image.gif

3.6.总结

其中“Response time is less than 200ms”是你为这个断言所起的名字,可以自定义在运行接口测试的时候会在test的结果中显示出来如图:image.gif

3.7.Status code :Successfull POST  request :判断post请求的状态码,是不是在201和202这两个之中

//Postman源码
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});

image.gif

3.7.总结

成功的post请求状态码,判断该请求状态码是不是在201和202这两个之中

因为在post请求中存在响应码是201和202或者200的时候都是表示成功只是代表的具体含义不同,这里和断言响应码是不是200有相似之处,不同的地方在于这里断言的是to.be.oneOf([list]),看响应码是不是在这个list里面,多了一个范围

状态码:200(请求成功成功的含义,取决于HTTP方法如POST:描述动作结果的资源在消息体中传输)

状态码:201(该请求已成功,并因此创建了一个新的资源。通常源于POST或某些PUT请求。)

状态码:202(该请求已被接受进行处理,但是处理尚未完成。最终有可能会被处理,也可能不会处理。)

五、自定义动态参数(全局变量)断言的方式:精确断言

参考文档:

Postman内置动态参数和自定义的动态参数以及断言方式_沫沫1890S的博客-CSDN博客

pm.globals.get("time")
globals["time"]
globals.time

image.gif

image.gif

备注:上图断言中拼接的+pm.globals.get("time")可直接替换成globals["time"] 或 globals.time

在Postman中断言也属于比较重要的一块内容,因为关系到如何准确的判断我们测试的接口是否达到我们的期许和要求,断言脚本语言除了系统自带的一部分外还有很多可以灵活自己编写的,在不断的学习中还会不断的总结。

目录
打赏
0
0
0
0
478
分享
相关文章
销售易CRM:功能与优势全解析
销售易CRM是国内领先的客户关系管理(CRM)系统,提供强大的销售管理、全方位客户管理、丰富的营销自动化工具、智能AI赋能及灵活的开放性平台。其功能涵盖线索获取、商机管理、客户画像、营销活动策划、智能预测等,支持企业高效管理客户、优化业务流程、提升销售效率和客户满意度。通过灵活的二次开发和API接口,销售易CRM可无缝集成企业现有系统,助力企业在数字化转型中实现业绩高质量增长。
优化管理与服务:操作系统控制平台的订阅功能解析
本文介绍了如何通过操作系统控制平台提升系统效率,优化资源利用。首先,通过阿里云官方平台开通服务并安装SysOM组件,体验操作系统控制平台的功能。接着,详细讲解了订阅管理功能,包括创建订阅、查看和管理ECS实例的私有YUM仓库权限。订阅私有YUM仓库能够集中管理软件包版本、提升安全性,并提供灵活的配置选项。最后总结指出,使用阿里云的订阅和私有YUM仓库功能,可以提高系统可靠性和运维效率,确保业务顺畅运行。
地铁站内导航系统解决方案:技术架构与核心功能设计解析
本文旨在分享一套地铁站内导航系统技术方案,通过蓝牙Beacon技术与AI算法的结合,解决传统导航定位不准确、路径规划不合理等问题,提升乘客出行体验,同时为地铁运营商提供数据支持与增值服务。 如需获取校地铁站内智能导航系统方案文档可前往文章最下方获取,如有项目合作及技术交流欢迎私信我们哦~
33 1
WebSocket调试工具深度对比:Postman与Apipost功能实测解析
本文深入对比了Postman与Apipost两款WebSocket调试工具。作为实时通讯系统工程师,作者在开发智能客服系统时遇到了传统工具调试复杂、文档管理不便的问题。通过引入Apipost的智能连接池、消息分组管理和自动化文档生成等功能,实现了多环境自动切换、消息分类和接口文档自动生成,极大提升了调试效率和团队协作效果。最终,使用Apipost使接口调试时间减少40%,文档维护成本降低70%,跨团队沟通效率提升50%。
销售易CRM:功能与优势全解析
销售易CRM是国内领先的客户关系管理系统,提供从线索获取到订单成交的完整销售漏斗管理,涵盖销售、客户、营销管理和AI赋能等功能。其强大的销售管理功能包括线索与商机管理、销售预测等;全方位客户管理实现360度客户视图;丰富的营销自动化工具支持多渠道营销活动;智能AI技术提升销售效率和客户满意度;灵活的开放性平台满足定制化需求;现代化界面设计简洁直观,支持多设备访问;移动端功能齐全,协同工具丰富;优质的客户服务确保快速响应和技术支持。销售易CRM助力企业优化业务流程,推动销售增长。
#WebSocket 调试全攻略:Postman、Apipost和Apifox核心解析、工具选择与对比!
WebSocket 是一种现代化的全双工通信协议,允许客户端和服务端通过持久连接实时双向传输数据。它适用于即时通讯、实时通知、金融行情、在线协作、物联网等场景。调试 WebSocket 时,工具应具备握手管理、实时消息收发、自定义 Header、消息大小监控、分组管理、多连接支持等功能。
42 1
WebSocket调试工具深度对比:Postman与Apipost功能实测解析
如果你在寻找既能搞定WebSocket调试,又能完美管理文档的工具,不妨试试Apipos!
38 1
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
58 29

推荐镜像

更多