0


Postman中的断言

🚀 优质资源分享 🚀

学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。💛Python量化交易实战💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

Postman设置断言

一、断言的定义

1、什么是断言?

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

2、postman中在哪里设置断言?
(1)设置断言的操作栏位置


(2)自动生成断言代码

(3)断言的流程

  • 在postman的tests页签中截取要对比的响应信息;
  • 利用断言语句tests[]或chai.js形式把实际响应信息与期望结果对比;
  • 执行请求进行结果查看;

二、Postman断言的语法

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

  1. //获取响应行信息
  2. var code = responseCode.code //获取响应状态码
  3. tests["case\_demo\_01: 验证响应状态码是否为200"] = code === 200 //做断言
  4. var name = responseCode.name //获取响应状态信息
  5. tests["case\_demo\_02: 验证响应的状态信息是否正确"] = name === "OK" //做断言


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

  1. //新版本写法------chai.js语法
  2. pm.test("TestcaseTitle", function () {
  3. pm.expect(true).to.be.true; //chai.js断言编写处
  4. });
  5. pm.test("case\_demo\_01", function () {
  6. pm.expect(2<5 && 3<6).to.be.true //判断是否为true
  7. });
  8. pm.test("case\_demo\_02", function () {
  9. pm.expect("everything").to.be.ok //判断是否为真值 非空、非0 即为真
  10. });

三、Postman中chai.js断言常用语法

1、pm.expect

  1. pm.test("测试标题"function(){
  2. pm.expect(true).to.be.true;//chai.js断言编写
  3. });
  4. pm.expect(2<5 && 3<6).to.be.true;//判断是否为true

2、pm.response

  1. pm.test("Status code is 200",function(){
  2. pm.response.to.have.status(200); //判断状态码是否为200
  3. });
  4. pm.test("Content-Type is present",function(){
  5. pm.response.to.have.header("Content-Type");、、判断响应头是否有Content-Type字段
  6. });

3、tv4(Tiny Validator for JSON data)–postman断言库可以进行json schema(结构)的断言

  1. var schema ={
  2. "type":"object", //表示当前节点的类型,最外层type代表json的最外层是什么样的类型
  3. "properties":{ //代表当前节点的子节点信息。如 access\_token 和 expires\_in
  4. "access\_token":{
  5. "type":"string"
  6. },
  7. "expires\_in":{
  8. "type":"integer"
  9. }
  10. }
  11. "required":{ //一个数组类型,代表当前节点下必须的节点key
  12. "accsee\_token",
  13. "expires\_in"
  14. }
  15. }

4、其他的常用断言脚本

(1)清除一个环境变量

  1. postman.clearEnvironmentVariable("variable\_key");

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

  1. tests["//断言返回的数据中是否存在\_\_pid\_\_这个元素"]=responseBody.has("pid");

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

  1. tests["Body is correct"] = responseBody === "response\_body\_string";

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

  1. tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args

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

  1. tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");

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

  1. var jsonData = JSON.parse(responseBody);//第一步先转化为json字符串。其中变量(jsonData)可以自行定义......
  2. tests["//data.category.name\_\_valuse的值的类型是不是string"] = typeof(jsonData.data.category[0].name) == "string";

(7)响应时间判断

  1. tests["Response time is less than 200ms"] = responseTime < 200;

(8)设置环境变量

  1. postman.setEnvironmentVariable("variable\_key", "variable\_value");

(9)断言状态码

  1. tests["Status code is 200"] = responseCode.code != 400;

(10)检查响应码name

  1. tests["Status code name has string"] = responseCode.name.has("Created");

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

  1. tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

本文转载自: https://blog.csdn.net/u013190417/article/details/126515755
版权归原作者 虚幻私塾 所有, 如有侵权,请联系我们删除。

“Postman中的断言”的评论:

还没有评论