Postman常用断言功能解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 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中断言也属于比较重要的一块内容,因为关系到如何准确的判断我们测试的接口是否达到我们的期许和要求,断言脚本语言除了系统自带的一部分外还有很多可以灵活自己编写的,在不断的学习中还会不断的总结。

目录
相关文章
|
1月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
2月前
|
数据可视化 数据挖掘 BI
团队管理者必读:高效看板类协同软件的功能解析
在现代职场中,团队协作的效率直接影响项目成败。看板类协同软件通过可视化界面,帮助团队清晰规划任务、追踪进度,提高协作效率。本文介绍看板类软件的优势,并推荐五款优质工具:板栗看板、Trello、Monday.com、ClickUp 和 Asana,助力团队实现高效管理。
71 2
|
1月前
|
搜索推荐 UED Python
实现一个带有昼夜背景切换的动态时钟:从代码到功能解析
本文介绍了一个使用Python和Tkinter库实现的动态时钟程序,具有昼夜背景切换、指针颜色随机变化及整点和半点报时功能。通过设置不同的背景颜色和随机变换指针颜色,增强视觉吸引力;利用多线程技术确保音频播放不影响主程序运行。该程序结合了Tkinter、Pygame、Pytz等库,提供了一个美观且实用的时间显示工具。欢迎点赞、关注、转发、收藏!
134 94
|
23天前
|
数据可视化 项目管理
项目计划与进度跟踪:甘特图的强大功能解析
甘特图是现代项目管理中不可或缺的工具,通过时间线和任务条直观展示项目进度,支持任务分解、依赖关系管理和进度跟踪。结合板栗看板,可实现任务可视化与实时协作,提升团队效率。定期更新甘特图并灵活应对变化,确保项目顺利推进。
|
2月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
1月前
|
人工智能 自然语言处理 搜索推荐
销售易、悟空、神州云动CRM:全方位功能解析与优势特色盘点
销售易CRM、悟空CRM和神州云动CRM各自具备独特的产品功能与优势,适用于不同类型的企业。销售易CRM提供移动化、社交化和AI驱动的全流程管理,适合大型企业及跨国公司;悟空CRM以智能数据分析和移动办公支持见长,适合中大型企业;神州云动CRM则凭借灵活定制和多行业适配能力,特别适合大中型企业。企业在选择时应根据自身需求和发展战略,挑选最适合的CRM系统,以实现客户关系管理的最大化效益。
|
2月前
|
存储 数据库 对象存储
新版本发布:查询更快,兼容更强,TDengine 3.3.4.3 功能解析
经过 TDengine 研发团队的精心打磨,TDengine 3.3.4.3 版本正式发布。作为时序数据库领域的领先产品,TDengine 一直致力于为用户提供高效、稳定、易用的解决方案。本次版本更新延续了一贯的高标准,为用户带来了多项实用的新特性,并对系统性能进行了深度优化。
55 3
|
2月前
|
供应链 数据可视化 数据挖掘
企业服务品牌深度解析:销售易、用友、白码功能与特色对比
在企业服务领域,销售易、用友、白码等品牌凭借独特的产品和解决方案占据重要地位。销售易专注于CRM,提供客户管理、销售自动化、市场营销等功能,提升销售效率与客户满意度。用友作为领先的企业服务提供商,涵盖ERP、财务管理、人力资源管理等,助力企业资源优化配置。白码则以低代码开发平台为核心,支持快速构建业务应用,具备高度可定制化和易于维护的特点。三者各具特色,共同推动企业数字化转型。
|
3月前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
144 60
|
2月前
|
存储 安全 数据安全/隐私保护
深入解析iOS 14隐私保护功能:用户数据安全的新里程碑
随着数字时代的到来,个人隐私保护成为全球关注的焦点。苹果公司在最新的iOS 14系统中引入了一系列创新的隐私保护功能,旨在为用户提供更透明的数据使用信息和更强的控制权。本文将深入探讨iOS 14中的几项关键隐私功能,包括App跟踪透明性、简化的隐私设置以及增强的系统安全性,分析它们如何共同作用以提升用户的隐私保护水平。
188 3

热门文章

最新文章

推荐镜像

更多