首页 > 其他分享 >测试公开课资料系列02--Postman之chai.js断言应用

测试公开课资料系列02--Postman之chai.js断言应用

时间:2023-02-17 17:15:17浏览次数:39  
标签:02 tests 断言 js 公开课 expect pm response Postman



前言
如果要挖井,就要挖到水出为止。
明晚公开课给大家讲讲如何用chai.js断言,有用过postman只会右侧点来自动生成断言代码,或在公
司应用postman的朋友们都来听听。
一、chai.js断言介绍
是一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库
包含有3个断言库支持BDD风格的expect/should和TDD风格的assert
可以高效的和任何js测试框架搭配使用(支持在postman中应用)
二、postman设置断言的流程
在tests页签截取要对比的实际响应信息(响应头、响应正文、响应状态码等)
利用断言语句 tests[] 或 chai.js 形式把实际响应信息与期望结果对比
执行请求进行结果查看
三、截取实际响应信息的新老版本代码对比
截取名称 老版本 新版本
响应状态码 responseCode.code pm.response.code
响应状态信息 responseCode.name pm.response.status
响应头 postman.getResponseHeader('Content-Type') pm.response.headers
响应正文 responseBody pm.response.text()
json格式响应正文 JSON.parse(responseBody) pm.response.json()
四、tests断言基本语法

tests["case01 验证是否为true"] = true; //false
tests["case02 验证是否1+1=2"] = 1+1 === 2; //判断是否相等
tests["case03 验证是否包含123"] = "1234567hello".has("123"); //判断是否包含
tests["case04 验证是否3>5"] = 3 > 5 ; //判断是否相等
tests["case05 与运算"] = 3 > 2 && 3>1 ; //与运算
tests["case06 或运算"] = 3 > 2 || 3>5 ; //或运算
tests["case07 非运算"] = !(3 > 2); //非运算

 

五、chai.js断言语法
5.1 pm.expect()

pm.test("测试用例标题", function () {
pm.expect(true).to.be.true; //chai.js断言编写处
});
pm.expect(2<5 && 3<6).to.be.true; //判断是否为true
pm.expect('everything').to.be.ok; //判断是否为真值 非空、非0 即为真
pm.expect('hello').to.equal('hello'); //判断是否相等
pm.expect({ foo: 'bar' }).to.eql({ foo: 'bar' }); //判断是否深度相等
pm.expect('foobar').to.have.string('bar'); //判断是否包含字符串
pm.expect('foobar').to.match(/^foo/); //判断是否包含,支持正则表达式
......

 

5.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字

});

 

5.3 tv4(Tiny Validator for JSON data)
postman使用tv4和chai.js断言库可以进行json schema(结构)的断言

var schema ={
"type":"object", //表示当前节点的类型,最外层type代表json的最外层是什么样的类型
"properties":{ //代表当前节点的子节点信息。如 access_token 和 expires_in
"access_token":{
"type":"string"
},
"expires_in":{
"type": "integer"
}
},
"required": [ //一个数组类型,代表当前节点下必需的节点key
"access_token",
"expires_in"
]
}

pm.test('Json Schema is valid', function() {
var jsonData = pm.response.json();
pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});

六、总结及反思
实际工作中,断言库功能强大好用即可
json schema可以好好研究利用在接口测试过程中

标签:02,tests,断言,js,公开课,expect,pm,response,Postman
From: https://www.cnblogs.com/xmxit/p/17130825.html

相关文章

  • 2023年第一波超值活动来袭~
    注意注意是时候在新的一年开始奋斗啦!活动一G-LAB为大家精心准备了报名思科CCNA/华为HCIA课程赠送红帽RHCSA(本月2月25日思科CCNA/华为HCIA第一课)想学习的抓紧报......
  • 输出1到100的数据 循环 230217
    利用循环计数器可以完成这个功能publicclassTest{publicstaticvoidmain(String[]args){//循环变量inti=1;//循环条件whi......
  • 求1到100的总和 java 230217
    新增一个变量s保存总结果给这个s初始化值为0每次得到循环的数字后就给这个变量s进行累加代码:publicclassTest{publicstaticvoidmain(String[]args){//......
  • Photoshop 2022 for Mac(ps 2022) v23.5.2激活版
    Photoshop2022中文版是一款专业图像处理软件,PS2022此次更新软件可选择项目云服务生成更准确和高质量的图像;软件界面也有了新的中性UI颜色模式,视觉效果更加高级;对神经滤波器......
  • java的历史 230217
    Java是由SunMicrosystems公司于1995年5月推出的高级程序设计语言。它由JamesGosling和其他Sun工程师们一起研发,主要服务于消费电子产品,如智能手机、平板电脑、家用电器等......
  • 20230207模拟赛题解
    A-CF755D考虑每次加边产生的贡献。发现每次加边的贡献是这条边与别的边的交点数量加\(1\)。所以可以用线段树或树状数组等数据结构维护,注意要令\(k=\min(k,n-k)\)。B-......
  • Solid Edge 2020 安装包下载及图文安装教程​
    SolidEdge是最完整的混合2D/3DCAD系统,采用同步技术加速设计和编辑过程,增强了对重用导入几何的支持。SolidEdge是Velocity系列解决方案组合的关键组成部分。它是一个优秀的工......
  • Solid Edge 2021 安装包下载及图文安装教程​
    SolidEdge是最完整的混合2D/3DCAD系统,采用同步技术加速设计和编辑过程,增强了对重用导入几何的支持。SolidEdge是Velocity系列解决方案组合的关键组成部分。它是一个优秀的工......
  • 2023年跳槽,.NET工程师们,准备好了吗?
     经过三年疫情的洗礼,终于在2022年底解脱,在这三年里经历了新冠的风霜雪雨,作为.NET工程师的你是选择了躺平还是弯道超车呢?2023年在春节的欢声笑语和烟花爆竹声中开始,三年的......
  • 0210 模拟题解
    0210模拟题解t1直接枚举\(k\),考虑计算答案。首先发现这个限制等价于存在长度\(\gen-k\)的上升子段。那我们反过来,计算所有上升子段长度都\(\len-k-1\)的方案数......