01、断言

在 postman 中我们是在Tests标签中编写断言,同时右侧封装了常用的断言,当然 Tests 除了可以作为断言,还可以当做后置处理器来编写一些后置处理代码,经常应用于:

  • 获取当前接口的响应,传递给下一个接口

  • 控制多个接口间的执行顺序。

02、常见断言方法

1、状态码断言

  • 判断接口响应的状态码:Status code: code is 200

pm.test("Status code is 200", function () {

//Status code is 200是断言名称,可以自行修改  pm.response.to.have.status(200);

//这里填写的200是预期结果,实际结果是请求返回结果

});

  • 判断接口响应码是否与预期集合中的某个值一致

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

//检查响应码是否为201或者202

});

  • 判断状态码名称(也就是状态码后面的描述)是否包含某个字符串:Status code:code name has string

pm.test("Status code name has string", function () {    pm.response.to.have.status("OK");  

//断言响应状态消息包含OK

});

2、响应内容断言

  • 断言响应体中包含XXX字符串:Response body:Contains string

pm.test("Body matches string", function () {    pm.expect(pm.response.text()).to.include("string_you_want_to_search");

//pm.response.text()

});

  • 响应结果如果是json,断言响应体(json)中某个键名对应的值:Response body : JSON value check

pm.test("Your test name", function () {    

var jsonData = pm.response.json();

//获取响应体,以json显示,赋值给jsonData .注意:该响应体必须返会是的json,否则会报错    pm.expect(jsonData.value).to.eql(100);

//获取jsonData中键名为value的值,然后和100进行比较

});

  • 断言响应体等于XXX字符串:Response body : is equal to a string

pm.test("Body is correct", function () {    pm.response.to.have.body("response_body_string");

//获取响应体等于response_body_string

});

3、响应头断言

  • 断言响应头包含:Response headers:Content-Type header check

pm.test("Content-Type is present", function () {    pm.response.to.have.header("Content-Type");

//断言响应头存在"Content-Type"

});

4、响应速度断言

  • 判断实际响应时间是否与低于预期时间:Response time is less than 200ms

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

实例:

针对上面的返回结果,我们设置断言如下

注意:

postman获取断言时,任何响应都必须转为JsonData 对象。例如我们想获取如下响应信息中键值为 name 的值:

{  

"reponse": {    

"person": {      

   "name": "hai",      

   "age": 18    

         }  

       }

}

此时我们应该:

//第一步将响应转为 jsonData 对象

jsonData = pm.response.json();

//第二步通过 . 获取到我们想要的 age 的值

var age = jsonData.reponse.person.age; 

除了单个接口断言外,postman还集合断言和模块断言,分别通过点击集合或者模块,然后点击Edit,进入Test标签进行断言即可

03、常用断言对应的脚本

清除一个环境变量

postman.clearEnvironmentVariable("variable_key");

断言响应数据中是否存在某个元素

tests["//断言返回的数据中是否存在__pid__这个元素"] = responseBody.has("pid");

断言response等于预期内容

tests["Body is correct"] = responseBody === "response_body_string";

断言json解析后的key的值等于预期内容

tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args

检查response的header信息是否有被测字段

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");

校验响应数据中,返回的数据类型

var jsonData = JSON.parse(responseBody);//第一步先转化为json字符串。其中变量(jsonData)可以自行定义......

tests["//data.category.name__valuse的值的类型是不是string"] = typeof(jsonData.data.category[0].name) == "string";

响应时间判断

tests["Response time is less than 200ms"] = responseTime < 200;

设置环境变量

postman.setEnvironmentVariable("variable_key", "variable_value");

断言状态码

tests["Status code is 200"] = responseCode.code != 400;

检查响应码name

tests["Status code name has string"] = responseCode.name.has("Created");

断言成功的post请求返回码

tests["Successful POST request"] = responseCode.code === 201 || responseCode.cod


学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….【下方qq群里】

postman断言详解相关推荐

  1. 2021-02-07 接口测试工具-Postman使用详解

    接口测试工具-Postman使用详解 1.安装postman 官网下载地址:https://www.postman.com/downloads/ 选择好对应的版本下载,下载完后直接安装即可. 2.po ...

  2. Postman 使用详解

    转自: http://blog.csdn.net/flowerspring/article/details/52774399 Postman 使用详解 阅读 6754收藏 3022016-6-9 作者 ...

  3. 正则表达式零宽断言详解

    在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了. 一.基本概念: 零宽断言正如它的名字一样,是一种零宽度的匹配,它匹配到的内容不会保存 ...

  4. 性能测试之JMeter中JSON断言详解

    JMeter中有个元件叫做断言(Assertion),它的作用和LoadRunner中的检查点类似.用于检查测试中得到的响应数据是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 若接口的返回 ...

  5. 接口测试(二)—— Postman用法详解、newman生成测试报告

    其他 接口自动化测试 知识参考:接口自动化测试 目录 一.Postman介绍和安装 1.简介 2.安装 3.安装Postman插件newman 二.Postman基本用法 1.案例一 2.案例二 三. ...

  6. JMeter响应断言详解

    响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter ...

  7. 接口测试--apipost接口断言详解

    在做接口测试的时候,会对接口进行断言,一个完整的接口测试,包括:请求->获取响应正文->断言. 一.apipost如何进行断言 apipost的断言设置实在后执行脚本中进行编写的.apip ...

  8. Jmeter常用断言之响应断言详解

    响应断言是最常用的一种断言方法,主要是对响应结果中的文本内容进行断言,比如响应结果是否包含指定的值,或者是否等于指定的值.响应断言可以适用各种返回类型的响应结果,如:Test.html.applica ...

  9. Jmeter接口测试之断言详解

    转载作者:吾非同 来源:吾非同http://www.51testing.com/html/35/n-4463035.html?nomobile=1 什么是断言? 断言,这是一个软件术语,简单来说,就是 ...

最新文章

  1. VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
  2. PHP自学4——通过函数将数组数据输出到html的Table标签中(使用函数的例子)
  3. UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接
  4. python os操作
  5. Python入门进阶篇(六)字典的介绍
  6. 2019.5.18-5.19 ACM-ICPC 全国邀请赛(西安)赛后总结
  7. 服务器托管常见问题纠纷与解决方法
  8. @贾跃亭,证监会喊你本周回国对乐视负责!
  9. bootstrap-table 树形结构
  10. knex 单表查询_sql 单表查询练习
  11. java丢硬币boolean_抛硬币模拟器
  12. 倒立摆 adams matlab,基于ADAMS与MATLAB联合仿真地倒立摆设计毕业论文.docx
  13. ASP.NET4.0尚未在Web服务器上注册
  14. 前端移动端端测试——显示控制台
  15. [pip安装]There was a problem confirming the ssl certificate
  16. rhel centos 源_Rhel centos 7的fips脚本
  17. row format delimited fields terminated by “,“含义是以‘,‘结尾的行格式分隔字段
  18. Pycharm使用远程服务器解释器
  19. 2022漂亮有质感的SummerAdmin后台模板+Layui内核
  20. 在线旅游市场的延进以及发展趋势访谈回顾

热门文章

  1. 2021年安全员-B证最新解析及安全员-B证新版试题
  2. 【全开源】装修行业小程序/支持工地/案例/团队/0元装修/装修计算器/预约
  3. 安装aptitude
  4. 彻底理解flex弹性布局,看这一篇就够了!
  5. 关于数据库中的delete,truncate,drop
  6. SAP黄骁俭就“厦门事件”公开释疑
  7. Qt使用QTextToSpeech进行语音播报
  8. 住房按揭贷款计算器更新
  9. 《教我兄弟学Android逆向11 动态调试init_array》
  10. 关于结构体初始化的自我小结