Postman系列之Tests断言
——————·今天距2021年276天·——————
这是ITester软件测试小栈第104次推文
在上一篇:Collections集合管理,主要介绍了如何新建Collections、新建Folder以及运行Collections。
以下,主要介绍如何用Postman的Tests这个模块进行断言,包括Tests断言原理介绍、常用断言方法以及Tests断言实例。
一
Tests断言介绍
1
简介
一个完整的接口测试,包括:请求>获取响应正文>断言。所谓断言,就是结果和预期对比,如果一致,则用例通过,如果不一致,断言失败,用例执行失败。
2
原理
Postman中的断言通过JavaScript
语言编写,在Tests下方给出可以选择的一些断言内容,断言会在请求返回之后显示,并根据断言的PASS
、Fail
情况体现在最终测试结果中。
3
常用断言方法
Setting an environment variable :设置一个环境变量
pm.environment.set("variable_key", "variable_value");
Setting a nested object as an environment variable : 将嵌套对象设置为环境变量
var array = [1, 2, 3, 4];
pm.environment.set("array", JSON.stringify(array, null, 2));var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
pm.environment.set("obj", JSON.stringify(obj));
Getting an environment variable : 获取环境变量
pm.environment.get("variable_key");
Getting an environment variable (whose value is a stringified object) :获取一个环境变量,其值是一个字符串化的对象
// These statements should be wrapped in a try-catch block if the data is coming from an unknown source.var array = JSON.parse(pm.environment.get("array"));
var obj = JSON.parse(pm.environment.get("obj"));
Clear an environment variable : 清除一个环境变量
pm.environment.unset("variable_key");
Set a global variable :设置一个全局变量
pm.globals.set("variable_key", "variable_value");
Get a global variable :获取一个全局变量
pm.globals.get("variable_key");
Clear a global variable : 清除全局变量
pm.globals.unset("variable_key");
Get a variable : 获取一个变量
pm.variables.get("variable_key");
Check if response body contains a string : 检查响应主体是否包含字符串
pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
Check if response body is equal to a string :检查响应主体是否等于一个字符串
pm.test("Body is correct", function () {pm.response.to.have.body("response_body_string");
});
Check for a JSON value :检查JSON值
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);
});
Content-Type is present :内容类型存在
pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type");
});
Response time is less than 200ms :响应时间小于200ms
pm.test("Response time is less than 200ms", function () {pm.expect(pm.response.responseTime).to.be.below(200);
});
Status code is 200 :状态码是200
pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});
Code name contains a string :代码名称包含一个字符串
pm.test("Status code name has string", function () {pm.response.to.have.status("Created");
});
Successful POST request status code : 成功的POST请求状态码
pm.test("Successful POST request", function () {pm.expect(pm.response.code).to.be.oneOf([201,202]);
});
Send an asynchronous request :发送异步请求
pm.sendRequest("https://postman-echo.com/get", function (err, response) {console.log(response.json());
});
Convert XML body to a JSON object :将XML正文转换为JSON对象
var jsonObject = xml2Json(responseBody);
二
Tests断言实例
1
环境准备
接口地址:https://www.v2ex.com/api/nodes/show.json?name=python
Method: GET
Authentication: None
2
场景
1.状态码等于200;
2.断言 id=90;
3.url = "http://www.v2ex.com/go/python";
3
示例
1.在SNIPPETS中,找到"status code:Code is 200",此断言方法即判断HTTP状态码是否为200,点击此断言方法,断言代码自动添加至Tests下。
2.依次添加其他断言条件,点击Send发送请求。
断言条件:
pm.test("Status code is 200", function () {//断言状态码是否为200pm.response.to.have.status(200);
});var jsonData = JSON.parse(responseBody);//断言id是90
tests["Check respose id value"] = jsonData.id === 90;//断言url
tests["Check respose url value"] = jsonData.url === "https://www.v2ex.com/go/python";
如图所示:
3.查看断言结果,在响应区内可以看TestResults一共有3个断言;如下所示,3个断言全部通过。
以上
That‘s all
更多Postman系列文章
敬请期待
ITester软件测试小栈
往期内容宠幸
叮—这有一打让你666的测试终极资料包,请查收!
PyCharm2020年最新永久激活锦囊
QQ空间面试题放送,速度教科书式扑街补救offer!
金九银十加薪季,测试题预热一波
Selenium系列文章汇总
Fiddler基本使用
Fiddler抓包介绍
速看,APP测试之ADB最全指南!
APP测试之Monkey压力测试(一)
APP测试之Monkey压力测试(二)
Python接口自动化-接口基础(一)
Python接口自动化-接口基础(二)
Postman系列之安装及简介
快来星标 置顶 关注我
后台 回复资源取干货
回复答题挑战玩转答题
回复2020与我共同成长
想要获取相关资料和软件 ?
测试交流Q群:727998947
点亮一下小花花,我就知道你“在看”
Postman系列之Tests断言相关推荐
- 2020 软件测试 Postman高级使用——Tests 断言校验返回结果
文章目录 1.引言 2.对接口进行Tests测试 3.简单实例测试(检查百度搜猫返回请求情况) 4.环境变量管理使用 5.实例二:将微信获取token的返回值提取token出来,在后面的接口中进行引用 ...
- 【4】Postman之Tests(断言)
简介:使用postman完成请求后,验证返回结果,会用到tests断言.官方提供了很多可以直接使用的方法~ 接下来主要介绍这些方法是如何使用. 1. 变量相关: Get an environment ...
- Postman系列之安装及简介
------·今天距2021年287天·------ 这是ITester软件测试小栈第100次推文 从分层测试角度来说,接口测试是相对来说性价比最高的,且是功能测试进阶的必备技能.接口测试可以用Jme ...
- 妙用postman系列——postman建组、分享
妙用postman系列--postman建组.分享 添加新的组和请求. 3.生成分享链接 4.导入分享链接
- Postman系列之Collections集合管理
------·今天距2021年279天·------ 这是ITester软件测试小栈第102次推文 在上一篇:Postman基本操作及设置,主要介绍了Postman基本设置.Postman新建请求操作 ...
- Postman系列之基本操作及设置
------·今天距2021年281天·------ 这是ITester软件测试小栈第102次推文 在上一篇:Postman系列之发送不同HTTP类型请求,介绍了HTTP接口请求以及响应,并利用Pos ...
- Postman系列之发送不同HTTP类型请求
------·今天距2021年283天·------ 这是ITester软件测试小栈第101次推文 在上一篇:Postman系列之安装及简介,介绍了Postman的特点及其工作原理.Postman下载 ...
- GoLang之interface底层系列二(类型断言)
文章目录 GoLang之interface底层系列二(类型断言) 1.抽象类型.具体类型 2.断言的作用类型与目标类型 3.空接口.(具体类型) 4.非空接口.(具体类型) 5.空接口.(非空接口) ...
- Postman系列(一)-下载地址与安装
Postman 分为原生应用版和Postman Chrome插件版,本篇详解仅介绍PC版本.在官方文档中,已经将Chrome插件版标为弃用.本篇详细介绍的为原生应用版. 1.postman下载 PC版 ...
最新文章
- 全网首款PHP宝塔IDC分销系统,全网首款PHP宝塔IDC分销系统
- 第十二周项目4-点、圆的关系
- 有空时深入阅读这两篇文章
- DL之LSTM之UvP:基于TF利用LSTM基于DIY时间训练1200个数据预测后200个数据状态
- Linux线程时间片如何修改,请教如何修改线程时间片
- iOS push新的调用方法
- C语言开发笔记(三)自加和自减
- Linux网络编程常见面试题
- 原来AI可以这样学?让人欲罢不能的AI学习神器!
- 手写数字识别代码,可以跑通
- 学计算机专业能上国家电网吗,高考结束后,选择什么专业能进入国家电网?这些专业考生应该知道...
- Android 数据库 在使用 update更新的时候,总是无法更新,还没有异常抛出!
- 如何为自己找到合适的销售工作?
- oracle实验7 pl/sql编程基础
- 计算机word虚线在哪里,在word中画虚线的五种方法
- 文件服务器 tmp文件夹,Linux管理临时文件tmpfiles
- 血与泪的教训: JavaWeb中文乱码问题整合
- ngx之日志切割 、ngx信号
- java 护眼背景,设置Eclipse配色方案--设置不同背景色,有效护眼
- 无法打开这个应用,查看Microsoft store, 了解有关Nahimic的详细信息
热门文章
- openjdk替换java_ubuntu中将java环境由安装版的openjdk替换为Oracle的jdk
- python编程(redis操作)
- 多线程的那点儿事(之优先级反转)
- pythonhelloworld项目,10分钟搭建一个小型网页(python django)(hello world!)
- 计算机二级考试改错题技巧
- qq浏览器插件_惊艳与吐槽:QQ浏览器升级到 Chromium70 内核以后
- oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作
- 为什么vue-loader设置transformasseturls无效_拓展训练中“常见的无效提问”
- 车牌识别程序python_车牌检测和识别的Python应用软件实现
- java鼠标点击暂停程序_java – LWJGL抓取鼠标 – 如果应用程序挂起或使用抓取的鼠标点击断点时调试...