Postman中的断言
Postman设置断言
一、断言的定义
1、什么是断言?
2、postman中在哪里设置断言?
(1)设置断言的操作栏位置

(2)自动生成断言代码

(3)断言的流程
- 在postman的tests页签中截取要对比的响应信息;
- 利用断言语句tests[]或chai.js形式把实际响应信息与期望结果对比;
- 执行请求进行结果查看;
二、Postman断言的语法
1、语法一:tests[‘测试用例名称’] = 逻辑表达式;
//获取响应行信息
var code = responseCode.code //获取响应状态码
tests["case_demo_01: 验证响应状态码是否为200"] = code === 200 //做断言
var name = responseCode.name //获取响应状态信息
tests["case_demo_02: 验证响应的状态信息是否正确"] = name === "OK" //做断言

2、语法二:chai.js断言语法
//新版本写法------chai.js语法
pm.test("TestcaseTitle", function () {
pm.expect(true).to.be.true; //chai.js断言编写处
}); pm.test("case_demo_01", function () {
pm.expect(2<5 && 3<6).to.be.true //判断是否为true
}); pm.test("case_demo_02", function () {
pm.expect("everything").to.be.ok //判断是否为真值 非空、非0 即为真
});

三、Postman中chai.js断言常用语法
1、pm.expect
pm.test("测试标题",function(){
pm.expect(true).to.be.true;//chai.js断言编写
});
pm.expect(2<5 && 3<6).to.be.true;//判断是否为true
2、pm.response
pm.test("Status code is 200",function(){
pm.response.to.have.status(200); //判断状态码是否为200
});
pm.test("Content-Type is present",function(){
pm.response.to.have.header("Content-Type");、、判断响应头是否有Content-Type字段
});
3、tv4(Tiny Validator for JSON data)--postman断言库可以进行json schema(结构)的断言
var schema ={
"type":"object", //表示当前节点的类型,最外层type代表json的最外层是什么样的类型
"properties":{ //代表当前节点的子节点信息。如 access_token 和 expires_in
"access_token":{
"type":"string"
},
"expires_in":{
"type":"integer"
}
}
"required":{ //一个数组类型,代表当前节点下必须的节点key
"accsee_token",
"expires_in"
}
}
4、其他的常用断言脚本
(1)清除一个环境变量
postman.clearEnvironmentVariable("variable_key");
(2)断言响应数据中是否存在某个元素
tests["//断言返回的数据中是否存在__pid__这个元素"]=responseBody.has("pid");
(3)断言response等于预期内容
tests["Body is correct"] = responseBody === "response_body_string";
(4)断言json解析后的key的值等于预期内容
tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
(5)检查response的header的信息是否有被测字段
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
(6)校验响应数据中,返回的数据类型
var jsonData = JSON.parse(responseBody);//第一步先转化为json字符串。其中变量(jsonData)可以自行定义...... tests["//data.category.name__valuse的值的类型是不是string"] = typeof(jsonData.data.category[0].name) == "string";
(7)响应时间判断
tests["Response time is less than 200ms"] = responseTime < 200;
(8)设置环境变量
postman.setEnvironmentVariable("variable_key", "variable_value");
(9)断言状态码
tests["Status code is 200"] = responseCode.code != 400;
(10)检查响应码name
tests["Status code name has string"] = responseCode.name.has("Created");
(11)断言成功的post请求返回码
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
Postman中的断言的更多相关文章
- 『政善治』Postman工具 — 9、在Postman中使用断言
目录 1.Tests的介绍 2.常用SNIPPETS(片段)说明 (1)常用变量相关 (2)状态码相关 (3)响应结果断言: (4)Header : (5)响应速度: 3.示例 (1)响应码断言 (2 ...
- 利用 Postman 中 Tests 断言校验返回结果
前言 Postman目前是一款很火的接口测试工具,它有着非常强大结果判断能力.为什么说强大呢,因为Postman有自带的校验脚本,根本不需要我们去学习JS脚本语言,对于代码能力为0的各位测试小伙伴来说 ...
- Postman系列二:Postman中get接口实战讲解(接口测试介绍,接口测试流程,头域操作)
一:接口测试介绍 接口测试:就是针对软件对外提供服务的接口输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能和接口描述文档的一致性. 接口测试好处:接口测试通常能对系统测试的更为彻底,更高的保障 ...
- Postman中get
:Postman中get接口实战讲解(接口测试介绍,接口测试流程,头域操作) Postman的使用 postman工具是软件开发和测试人员常用的一种工具,常用来做接口测试,它虽然也有抓取接口等功能,但 ...
- postman—Sandbox和断言
Postman沙盒 Postman Sandbox是一个JavaScript执行环境,您可以在编写预请求脚本和测试脚本(在Postman和Newman中)时可用.在这个沙箱中执行您在预请求/测试脚本部 ...
- 4、postman的常见断言
推荐我的另一篇文章 浅谈JSONObject解析JSON数据,这篇文章原理类似,使用java或者beanshell进行断言解析json数据 介绍断言之前,我们先测试1个接口: 接口地址:https: ...
- 『政善治』Postman工具 — 7、Postman中保存请求(Collections集合)
目录 1.创建Collection 2.保存Request请求 3.查看保存的请求 4.Collection下还可以创建文件夹 5.补充:Postman中的变量 6.总结 1.创建Collection ...
- 『政善治』Postman工具 — 8、Postman中Pre-request Script的使用
目录 1.Pre-request Script介绍 2.常用SNIPPETS(片段)说明 (1)获取变量脚本: (2)设置变量脚本: (3)清空变量脚本: (4)Send a request代码片段 ...
- 『政善治』Postman工具 — 12、Postman中实现数据驱动
目录 1.什么是数据驱动? 2.测试集说明 3.创建请求与准备数据文件 (1)新增学院结果文档内容如下 (2)编写数据文件 (3)在Postman中创建请求 4.实现Postman中的数据驱动 步骤1 ...
随机推荐
- 前端3JS1
内容概要 溢出属性 定位属性 z-index JavaScript简介 变量与注释 数据类型 内容详情 溢出属性 # 文本内容超出了标签的最大范围 overflow: hidden; 接隐藏文本内容 ...
- 【SignalR全套系列】之在.Net Core 中实现SignalR实时通信
微信公众号:趣编程ACE 关注可了解更多的.NET日常实战开发技巧,如需源码 请公众号后台留言 源码 [如果觉得本公众号对您有帮助,欢迎关注] 前文回顾 [SignalR全套系列]之在.NetCo ...
- c++ 超长整数乘法 高精度乘法
c++ 超长整数乘法 高精度乘法 解题思路 参考加法和减法解题思路 乘法不是一位一位的按照手算的方式进行计算,而是用循环用一个数的某一位去乘另外一个数 打卡代码 #include<bits/st ...
- 使用PowerShell校验文件MD5
更新记录 2022年4月16日:本文迁移自Panda666原博客,原发布时间:2021年7月14日. 方法1:使用Get-FileHash命令 (Get-FileHash ".\SQLSer ...
- netty系列之:HashedWheelTimer一种定时器的高效实现
目录 简介 java.util.Timer java.util.concurrent.ScheduledThreadPoolExecutor HashedWheelTimer 总结 简介 定时器是一种 ...
- Vue最新防抖方案
函数防抖(debounce):当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时.举个栗子,持续触发scroll事件时,并 ...
- 【万字长文】从零配置一个vue组件库
简介 本文会从零开始配置一个monorepo类型的组件库,包括规范化配置.打包配置.组件库文档配置及开发一些提升效率的脚本等,monorepo 不熟悉的话这里一句话介绍一下,就是在一个git仓库里包含 ...
- NC20439 [SHOI2017]期末考试
NC20439 [SHOI2017]期末考试 题目 题目描述 有 \(n\) 位同学,每位同学都参加了全部的 \(m\) 门课程的期末考试,都在焦急的等待成绩的公布.第 \(i\) 位同学希望在第 \ ...
- 基于后端和爬虫创建的代理ip池
搭建免费的代理ip池 需要解决的问题: 使用什么方式存储ip 文件存储 缺点: 打开文件修改文件操作较麻烦 mysql 缺点: 查询速度较慢 mongodb 缺点: 查询速度较慢. 没有查重功能 re ...
- mysql实现两个字段合并成一个字段查询
[需求]实现国际化I18N语言切换功能,例如菜单列表.字典等. 主要是个辅助表进行管理语言的配置: 单个字段很简单,直接通过字典配置的数据标签(key)- 表名, 数据键值(value)-表字段名[默 ...