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

PostMan使用自带js库base64编码、sha256摘要、环境变量的使用 PostMan使用自带js库base64编码、sha256摘要、环境变量的使用 在请求调试接口的过程中,因为要使用大量相同的参数,使用变量的方式能很大程度上减轻接口调用的工作量 版本说明:Postman for Windows,Version:10.23.5 1、环境变量的使用 环境变量其实就是代码中的变量是一样的,声明一个变量赋值然后在其他地方使用这个变量。 阅读详情

前言

 如果要挖井,就要挖到水出为止。
   明晚公开课给大家讲讲如何用chai.js断言,有用过postman只会右侧点来自动生成断言代码,或在公司应用postman的朋友们都来听听。 

一、chai.js断言介绍

  • 是一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库
  • 包含有3个断言库支持BDD风格的expect/should和TDD风格的assert
  • 可以高效的和任何js测试框架搭配使用(支持在postman中应用)

二、postman设置断言的流程

  1. 在tests页签截取要对比的实际响应信息(响应头、响应正文、响应状态码等)
  2. 利用断言语句 tests[] 或 chai.js 形式把实际响应信息与期望结果对比
  3. 执行请求进行结果查看

三、截取实际响应信息的新老版本代码对比

截取名称老版本新版本
响应状态码responseCode.codepm.response.code
响应状态信息responseCode.namepm.response.status
响应头postman.getResponseHeader('Content-Type')pm.response.headers
响应正文responseBodypm.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可以好好研究利用在接口测试过程中
csdn--接口自动化测试之postman如何设置断言 目录 一、前言 二、postman为啥要设置断言 三、postman设置断言的流程 四、在postman设置断言,存在新老版本的断言语法不一致的情况下,目前两种语法都可以使用。 一、前言 hello呀!各位铁子们大家好呀,我叫涂九一个在软件测试行业摸爬滚打十几年的老江湖了,今天呢来和大家唠唠postman接口自动化测试中怎么去设置断言。 二、postman为啥要设置断言 作为一款接口测试工具,postman需要对发送请求后返回的结果是否正确做验证,在postman中通过 tests页签做 阅读详情

相关推荐

CryptoJS-postman内置加密函数用法

去postman官网查询内置的函数或者支持的lib库的时候, 通过国内的互联网无法访问,现在下载了之后, 共享出来, 供使用。

前端自动化测试之chai.js断言库

chai.js简介chai.js 是一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库。包含有3个断言库支持BDD风格的expect/should和TDD风格的assert,这里主要说明expect/should库,BDD风格说简单的就是你的测试代码更加的语义化,让你的断言可读性更好,expect/should库都支持链式调用可以在node和浏览器环境运行,可以高效的和任何js测试框架搭配使

fly_home_ysc的博客 7201

详解Chai.js断言库API中文文档

Chai.js断言库API中文文档 基于chai.js官方API文档翻译。仅列出BDD风格的expect/should API。TDD风格的Assert API由于不打算使用,暂时不放,后续可能会更新。 BDD expect和should是BDD风格的,二者使用相同的链式语言来组织断言,但不同在于他们初始化断言的方式:expect使用构造函数来创建断言对象实例,而should通过为Object.prototype新增方法来实现断言(所以should不支持IE);expect直接指向chai.expect,而should则是chai.should()。 个人比较建议使用expect,should

在Postman中引用JS库

在做接口测试时,出于安全因素,请求参数需要做加密或者加上签名才能正常请求,例如:根据填写的请求参数进行hash计算进行签名。postman作为主流的接口调试工具也是支持请求预处理的,即在请求前使用JavaScript脚本对参数进行一些预处理然后再进行引用。

C'mon的博客 3543

计算机图形学入门30:动画与模拟介绍

计算机图形学入门,动画与模拟,物理模拟,质点弹簧系统,运动学,粒子系统,动作捕捉。

YanisWu的博客 1484

保姆级教程:在STM32H750VBT6上跑起来CMSIS-DSP库(基于CubeMX+Keil)

本文详细介绍了在STM32H750VBT6微控制器上配置和运行CMSIS-DSP库的全过程,包括开发环境搭建、CubeMX工程配置、Keil工程设置以及DSP库的实际应用示例。通过FFT频谱分析和音频均衡器等实战案例,展示了如何利用STM32H750VBT6的硬件FPU加速DSP运算,提升实时信号处理性能。

weixin_30236595的博客 455

Postman 脚本的奥秘:JavaScript 的内置对象和方法

postman 的前后置脚本中是完全支持 JavaScript 编写代码,JavaScript 有很多内置的对象和方法,可以帮助我们完成各种任务,比如生成随机数和测试响应数据

伤心的辣条 531

ROS应用之如何配置RTOS满足机器人系统中的实时要求

实时操作系统(RTOS)基本概念实时操作系统(RTOS)是设计用于实时应用的操作系统,其主要目标是在确定的时间内完成任务。RTOS的任务调度算法和优先级控制机制能够确保高优先级任务按时完成。精确的传感器数据采集:传感器数据需要在规定时间内采集并传输给控制系统。快速响应外部事件:对于控制系统,需要确保指令在最短的时间内得到响应。任务的调度周期:任务的周期可以通过公式计算,其中 ftask 是任务的调度频率。优先级分配。

weixin_68094467的博客 1007

Chai.js断言库expect常用API

Chai.js断言库API中文文档:https://www.jianshu.com/p/f200a75a15d2 // equal 相等或不相等 expect(4 + 5).to.be.equal(9); expect(4 + 5).to.be.not.equal(10); expect('hello').to.equal('hello'); expect(42).to.equal(42...

飞扬的博客 6587

隐藏技巧!用ArcGIS Pro像素编辑器实现PS级影像编辑(附地貌伪装案例)

本文深入探讨ArcGIS Pro像素编辑器的创意应用,从基础操作到高级影像处理实战,展示了其在城市规划、环境分析等领域的独特价值。通过详细的功能解析和地貌伪装等案例,帮助用户实现媲美专业图像处理软件的精细操作,提升GIS工作效率。

weixin_28520495的博客 335

Zemax非序列模式新手入门:从零搭建一个抛物面反射镜系统(含灯丝光源与探测器设置)

本文详细介绍了如何在Zemax非序列模式下从零搭建抛物面反射镜系统,包括灯丝光源配置、反射镜建模和探测器设置等关键步骤。通过实战指南,帮助光学设计新手快速掌握非序列模式的应用技巧,特别适合处理复杂光线传播场景如反射镜系统和杂散光分析。

weixin_28717431的博客 436

单元测试断言库:chai.js中文文档

原文档地址:https://www.chaijs.com/api/bdd/ BDD风格包含expect和should。它们以相同的链式结构进行断言,它们的不同之处在于初始的断言构造。可以查看风格指南来进行比较。 API参照: 链式语言结构 使用以下的链式供给(getter)来提高你断言的可阅读性啊。 Chains to be been is that which and has have wi...

riddle1981的博客 5857

浅析MOS管导通过程及RC吸收电路设计要点

RC吸收电路 米勒电容 MOS导通过程

liangbo1999的博客 2万+

postman--断言写法

chai.js断言介绍 是一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库 List item包含有3个断言库支持BDD风格的expect/should和TDD风格的assert List item可以高效的和任何js测试框架搭配使用(支持在postman中应用 chai.js获取断言方式 语法一: tests[‘测试用例名称’] = 表达式; 语法二: Chai.js断言库, 可以通过右侧页签点击生成代码 截取实际响应信息的新老版本代码对比 获取相应状体码: var code =

weixin_44436964的博客 1102

Android车载蓝牙开发全攻略:从基础到高级优化

本文系统介绍了Android车载蓝牙开发的核心技术与实践指南。文章首先阐述了蓝牙在智能汽车中的关键作用,包括免提通话、音频流媒体等应用场景。随后详细解析了蓝牙协议基础,重点介绍了HFP、A2DP等车载常用协议。开发实战部分提供了设备发现、连接、数据传输的完整代码示例,并融入多线程和内存优化技巧。通过真实车载案例,展示了启动时间、流畅度和资源使用的优化策略。最后针对面试需求,提供了专业的技术问答,涵盖蓝牙开发全流程。全文紧密结合Android车载开发职位要求,为开发者提供了一套完整的蓝牙技术解决方案。

郑伟强dev的专栏 117

数字IC行业笔试面试全攻略

数字IC行业迎来快速发展,国产替代加速,技术创新活跃,应用领域持续扩展,但人才缺口扩大。职业发展路径清晰,从初级到首席工程师/架构师的技术路线,或转向管理岗位。薪资待遇优厚,应届生起薪25-35W,5-10年经验可达70-110W,架构师年薪超百万。薪资受公司平台、技术方向、学历背景、项目经验和地域因素影响。AI芯片、汽车电子等热门方向溢价明显,成功流片经验尤其重要。

2301_79143213的博客 759

postman进阶篇之测试断言

小伙伴们好,欢迎来到小葵花课堂第二课。大家都知道不管什么用例都有一个3A原则,没有assert的用例是不完整的,测试宝宝我今天就给大家来介绍postman中断言的使用。写在前面:断言其实就是对预期结果与实际结果的判断,预期==实际,就通过;预期!=通过则失败。Postman的断言是JavaScript语言编写的,写在tests标签页里,在sandbox中运行,postman预置了很多公共库,如ch...

zh123a的专栏 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

mysql接口测试,postman接口自动化测试之利用node.js和xmysql连接、操作数据库

一、背景使用postman进行接口自动化测试时,除了要验证接口的返回,有时候还要同时验证数据库的数据,或者将接口返回的数据与数据库的数据做对比,检验数据的正确性。有的时候还需要在执行自动化case之前,造一些测试数据,或者在跑完自动化之后,删除测试数据。所以,我们需要在postman里连接并操作数据库,才能实现真正的完全自动化。经查阅资料,可以通过安装node.js和xmysql,实现Postma...

weixin_35987118的博客 444

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

最强PostMan使用教程(3)- script

postman中的script Pre-request scripts 递增的url参数 变化的request body test script 在test suite中运行 之前都两篇文章都是一年多之前的事情了。最开始的初衷是想把各种细节都写了,中途因为忙其他事情,就忘记了,放弃了。但我这个博客好像最火的就是这个系列,一直有人评论。针对问的最多的问题,我还是试着看看写下一些东西,看看是否有用吧。

点火三周的专栏 2万+

实用!使用Node.js创建接口,使用postman测试接口

开发环境说明: 要安装mysql数据库,安装方法自行百度,可参考菜鸟教程里面的安装步骤:安装MySQL数据库,也可安装一下可视化工具Navicat for MySQL。 安装Node.js、npm,安装方法自行百度。 编辑器VSCode或WebStorm,或其他前端编辑器。 接口能被成功访问的条件:打开mysql服务,node服务(即运行js文件)。 一、创建一个js文件,引入开发需要的各个模...

清颖的博客 2362

在Postman中添加脚本(Pre-request Script)

Postman是谷歌浏览器插件中,发送http请求的代表性产品。平时用Postman测试Restful接口是很平常很方便的事情。 填入服务地址,选择请求类型,添上必要的Headers和Body参数就可以发送请求了。如果需要在发送请求之前做一些处理(如数据构造),可以添加脚本: 该脚本遵循JS语法,本例子中的用法是: 1、假定taskAnalyze接口接收一组订单号,返回订单的状态 2、在

绝望的生鱼片 1万+

你应该学会的接口调试神器——Postman高级用法

postman这个神器相信大家都用过,程序员作为非专业的测试人员,非常需要这么一款简单轻量级的restful测试工具,但是不知道你是否知道,postman的强大之处不只是测试一下接口,还有其他非常赞的使用方式。 批量执行接口 入门级功能,但是被很多人忽略。postman左侧有个collections的ta...

weixin_34358092的博客 1283

postman脚步语法大全,JS脚步常用语法

官方语法例子:https://learning.postman.com/docs/writing-scripts/script-references/test-examples/ 官方语法库:https://www.chaijs.com/api/bdd/ 官方动态变量库:Dynamic variables | Postman Learning Center 一、基础语法使用 变量生效顺序,本地变量》迭代变量》环境变量》集合变量》全局变量,具有最接近作用域的变量将覆盖任何其他变量 1、pm.va

mogexiuluo的博客 2504

指纹识别传感器驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】

本文详述在RK3568平台使用私有二进制协议指纹模组的调试要点:以亮灯确认通信为首要步骤,波特率固定为57600,通过tcflush(TCIFLUSH)清除缓冲避免旧应答干扰;严格按“连接→亮灯→录入→比对”顺序操作,依赖包头F11FE22E锚定帧,校验标记与状态(成功为0E,0F为已存在);以灯亮为准选择正确TTY(如ttyS8非ttyS7),禁用CRTSCTS,应用层采用异步poll机制,避免误判。强调硬件层面断电重连、权限配置及单路排针原则,确保通信稳定可靠。

wanwuzhineng_01的博客 347
上一篇: 更全面的记录缺陷,你需要了解这些
下一篇: 测试公开课资料系列02--Postman之chai.js断言应用
Meryoufdd
博客等级 码龄5年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值