Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Postman中的断言

Postman中的断言

作者头像
伤心的辣条
发布于 2022-12-14 06:30:24
发布于 2022-12-14 06:30:24
88400
代码可运行
举报
文章被收录于专栏:伤心的辣条伤心的辣条
运行总次数:0
代码可运行

作者:伤心的辣条

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。

Postman设置断言

一、断言的定义

1、什么是断言?

一般一个完整的接口测试,包括:请求->获取响应正文->断言,请求和获取响应正文很常见。断言一般是对请求的响应结果做操作,判断预期结果与实际结果是否一致。

2、postman中在哪里设置断言?

(1)设置断言的操作栏位置

(2)自动生成断言代码

(3)断言的流程

①在postman的tests页签中截取要对比的响应信息;

②利用断言语句tests[]或chai.js形式把实际响应信息与期望结果对比;

③执行请求进行结果查看;

二、Postman断言的语法

1、语法一:tests[‘测试用例名称’] = 逻辑表达式;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//获取响应行信息
var code = responseCode.code  //获取响应状态码
tests["case_demo_01: 验证响应状态码是否为200"] = code === 200 //做断言

var name = responseCode.name  //获取响应状态信息
tests["case_demo_02: 验证响应的状态信息是否正确"] = name === "OK" //做断言

2、语法二:chai.js断言语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//新版本写法------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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pm.test("测试标题"function(){
      pm.expect(true).to.be.true;//chai.js断言编写});
pm.expect(2<5 && 3<6).to.be.true;//判断是否为true
代码语言:javascript
代码运行次数:0
运行
复制

2、pm.response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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(结构)的断言

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)清除一个环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postman.clearEnvironmentVariable("variable_key");

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["//断言返回的数据中是否存在__pid__这个元素"]=responseBody.has("pid");

(3)断言response等于预期内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Body is correct"] = responseBody === "response_body_string";

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var jsonData = JSON.parse(responseBody);//第一步先转化为json字符串。其中变量(jsonData)可以自行定义......

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

(7)响应时间判断

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Response time is less than 200ms"] = responseTime < 200;

(8)设置环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
postman.setEnvironmentVariable("variable_key", "variable_value");

(9)断言状态码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Status code is 200"] = responseCode.code != 400;

(10)检查响应码name

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Status code name has string"] = responseCode.name.has("Created");

(11)断言成功的post请求返回码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伤心的辣条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速上手postman测试
1. pm.response.to.have.status(code:Number)
跑马溜溜的球
2020/12/07
5860
快速上手postman测试
浅谈接口测试—初步认识postman
 我们如果在命令行发送post请求,会很麻烦,效率不高。同时也不方便接口的管理,所以一些优秀的接口测试工具应运而出,postman就是绕不开的话题之一
顾翔
2020/11/03
5350
浅谈接口测试—初步认识postman
Postman高级用法
可以方便在不同的工作场景或者项目中切换,每个Workspace设置不同的环境,不同的请求集合Collections
十毛
2019/03/27
1.3K0
Postman高级用法
接口测试|Postman设置断言
作为一款接口测试工 具,postman需要对发送请求后返回的结果是否正确做验证,在postman中通过 tests页签做请求的验证,也称为断言。
霍格沃兹测试开发Muller老师
2023/01/31
9910
接口测试
是对系统或组件之间的接口进行测试,主要是校验数据是否正确、传递和控制管理过程,以及相互逻辑依赖关系
用户11097514
2024/05/30
1450
接口测试
postman日记之断言篇
上帝:我记得有个故事,讲的是一个邮递员杀人的事情I remembered a particular story about a postman who was a murderer
测试小兵
2019/07/24
1.4K0
postman日记之断言篇
Postman教程-Pre-request Script和Tests脚本进阶
等价于response.text,表示接口请求的响应体,类型为string,如果返回的字符串是json格式的,可以使用JSON.parse()进行解析。
小博测试成长之路
2021/04/29
1.4K0
Postman教程-Pre-request Script和Tests脚本进阶
Postman系列之Tests断言
以下,主要介绍如何用Postman的Tests这个模块进行断言,包括Tests断言原理介绍、常用断言方法以及Tests断言实例。
可可的测试小栈
2020/03/31
9820
Postman系列之Tests断言
postman使用教程8-设置断言(Tests脚本编写)
当一个接口发送请求有返回结果后,如何知道返回的结果符合预期?可以在 postman 里面的 Tests 写脚本断言符合结果符合预期。 Tests 是接口返回 response 之后的脚本操作,可以使用 JavaScript 为 Postman API 请求编写 Tests 脚本。
上海-悠悠
2021/05/17
1.5K0
postman使用教程8-设置断言(Tests脚本编写)
API测试之Postman使用全指南(三)
Postman Tests在请求中添加JavaScript代码来协助验证结果,如:成功或失败状态、预期结果的比较等等。 通常从pm.test开始。它可以与断言相比较,验证其他工具中可用的命令。 接下来创建一个包含Tests的请求: Step 1) 创建一个Get请求 1、切换到Tests选项,右边是代码片段选项。 2、从右边的代码片段选项里面选中 “Status code: Code is 200” 3、JS代码就自动出现在窗口中
软测小生
2020/07/02
6560
使用postman进行API自动化测试
使用postman进行API自动化测试 最近在进行一个老项目的升级,第一步是先将node版本从4.x升级到8.x,担心升级会出现问题,所以需要将服务的接口进行验证; 如果手动输入各种URL,人肉check,一个两个还行,整个服务。。大几十个接口,未免太浪费时间了-.-; 因为是一个纯接口服务的项目,所以打算针对对应的API进行一波自动化测试; 所以就开始寻找对应的工具,突然发现,平时使用的PostMan貌似也是支持写测试用例的-.-,所以就照着文档怼了一波; 一下午的时间,很是激
贾顺名
2018/04/12
1.4K0
使用postman进行API自动化测试
Postman 使用教程:从基础到高级
Postman 是一款强大的 API 开发和测试工具,它能够帮助开发人员和测试人员高效地与各种 API 进行交互、发送请求并分析响应。无论是简单的 RESTful API 测试,还是复杂的 API 集成工作,Postman 都提供了丰富的功能和便捷的操作界面。本文将详细介绍 Postman 的基础使用和高级使用方法,帮助读者快速上手并熟练运用该工具。
恩爸编程
2024/12/08
1.7K0
Postman 使用教程:从基础到高级
Postman API测试工具 - 断言 基本使用(二)
PostMan工具断言 断言:诊断语言,检查点。检查返回的结果是否是正确。 怎么用利用Postman工具添加断言 常见的验证: 验证返回码必须是200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); 响应时间验证: pm.test("Response time is less than 200ms", function () { pm.expect(pm.respo
EXI-小洲
2022/12/19
4910
Postman API测试工具 - 断言 基本使用(二)
接口调试神器:Postman 从入门到进阶教程(万字长文)!
松哥最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦。 ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 来源:www.toutiao.com/i6913538714060800515 postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。 无论是开发人员进行接口调试,还是测试人员做接口测试,po
江南一点雨
2022/06/13
5.7K1
接口调试神器:Postman 从入门到进阶教程(万字长文)!
Postman接口测试工具详解
Postman可以在官方页面下载,支持Windows、macOS和Linux系统。下载并安装后,注册并登录Postman账号以便使用云端功能。
洛秋_
2024/07/11
2660
关于postman你知道这些就够用了
postman一直都有在用,只是没系统地学过,正好生产有问题需要我传不同的参数调用同一个接口的方式去处理,于是周末花了三个多小时系统地学习了一下。
小小明童鞋
2020/03/23
1.9K0
关于postman你知道这些就够用了
接口02_精通Postman接口测试
一、接口关联,接口依赖 下一个接口的参数是使用的上一个接口的返回值? 接口测试,接口自动化。 1.JSON提取器。(都是从返回值里面提取) 1 //javascript脚本,var定义变量 2 //打印responseBody返回值 3 console.log(responseBody) 4 //使用json提取器把responseBody返回值转化成一个字典。 5 var jd = JSON.parse(responseBody) 6 //提取access_token,并且设置为全局变量(就是在任何接口
测试小能手
2022/11/07
1K0
Postman变量与断言
在这么情况下,按照常规思路要么你需要维护两套环境的API,要么每次都手动一个个去修改URL,不管哪种选择都比较麻烦且低效,那么有没有比较的好的方法来解决这个问题呢?
清风穆云
2021/08/09
8590
快速掌握接口测试利器Postman
Postman是谷歌开发的一款网页调试和接口测试工具,能够发送任何类型的http请求,支持GET/PUT/POST/DELETE等方法。Postman非常简单易用,可以直接填写URL,header,body等就可以发送一个请求,用来测试api接口非常方便。
吾非同
2020/10/23
9070
Postman使用完全指南
可以看到我的请求url中有个{{domain}},这是什么东西呢?这其实是环境变量,我们可以在如下设置环境变量
诺浅
2020/08/20
1.2K0
相关推荐
快速上手postman测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验