chai.js断言介绍

  1. 是一套TDD(测试驱动开发)/BDD(行为驱动开发)的断言库

  2. List item包含有3个断言库支持BDD风格的expect/should和TDD风格的assert

  3. List item可以高效的和任何js测试框架搭配使用(支持在postman中应用

获取断言方式

语法一:
tests[‘测试用例名称’] = 表达式;
语法二:
Chai.js断言库, 可以通过右侧页签点击生成代码

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

获取相应状体码:
var code = responseCode.code; //旧式做法
tests[code] = true;
var code1 = pm.response.code; //新式做法
tests[code] = true;获取响应信息:
var info = responseCode.name;
var info1 = pm.response.status;获取响应时间:
var time = responseTime;
tests['case_demo_02:验证响应时间是否再100-500以内返回'] = time>=100 && time<=500;
var time1 = pm.response.responseTime获取响应头:
var value = postman.getResponseHeader('Content-Type');
var v1 = pm.response.headers;获取响应正文:
var body_info = responseBody;
var b1 = pm.response.text();

匹配正则表达式 match()


> <title>这是一个标题</title>var title_info = body_info.match(new RegExp('<title>(.+?)</title>'))[1];
tests[title_info] = true;
//[]只能填0和1。0为"<title>这是一个标题</title>",1为"这是一个标题",去除[]为"<title>这是一个标题"
//.匹配一个字符  +表示匹配前面的子表达式1次或多次  ?懒惰字符 首次遇到右边界就停止匹配

test断言基本语法

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);    //非运算

把响应正文解析为json对象

var jsondata = JSON.parse(responseBody);//旧版本写法
var token = jsondata.expires_in;
tests[token] = true;var jd = pm.response.json(); //新版本写法
tests[jd.access_token] = true;

> {"tags":[{"id":2,"name":"星标组","count":0},{"id":100,"name":"广东","count":0}]}
var jd = pm.response.json();
var v = jd.tags[0].name;
tests[v] = true;

chai.js断言语法

//chai,js断言新写法
pm.test('case_demo_01 测试用例名称', function () {pm.expect(true).to.be.true;   //chai.js断言编写处
});pm.test('case_demo_02 相等', function () {pm.expect(1+1==2).to.be.true;    //判断是否相等
});pm.test('case_demo_02 测试用例名称', function () {pm.expect(2 < 5 && 3 < 6).to.be.true;    //判断是否为true
});pm.test('case_demo_03 测试用例名称', function () {pm.expect('').to.be.ok;    //判断是否为真值  非空、非0 即为真
});pm.test('case_demo_04 测试用例名称', function () {pm.expect('hello').to.equal('hello');  //判断是否相等
});pm.test('case_demo_05 测试用例名称', function () {pm.expect({ 'list': 'aaa' }).to.eql({ 'list': 'aaa' });    //判断是否深度相等{'list':'aaa'}
});pm.test('case_demo_06 测试用例名称', function () {pm.expect('foobar').to.have.string('bar');    //判断是否包含字符串
});pm.test('case_demo_07 测试用例名称', function () {pm.expect('foobar').to.match(/^foo/);    //判断是否包含,支持正则表达式  ^表示以什么开头
});

chai.js断言语法

pm.test("case_demo_01 200", function () {pm.expect(pm.response.code).to.equal(200)
})pm.test("case_demo_0", function () {pm.expect(pm.response.text()).to.have.string('文本');
})

部分基础语法

设置环境变量token,供后面的接口引用
var data = JSON.parse(responseBody);
postman.setGlobalVariable("token_id", value) //旧方法
pm.globals.set("token_id", data.access_token); //新

学IT,上博学谷
https://m.boxuegu.com/inviteShare/invited?id=8a2c9bed6aa1c063016ab53099d00037&source=1&from=singlemessage

postman--断言写法相关推荐

  1. postman断言作用及怎么使用

    这段时间一直在学习postman,在请求中使用断言,很多人不是很了解postman断言,其实呢,postman断言是JavaScript语言编写的,在postman客户端指定区域编写即可. 1.设置环 ...

  2. 接口自动化测试第三篇—postman断言

    Postman断言:让Postman工具代替人工 自动判断预期结果和实际结果是否一致 用法:Test后置脚本标签页编写JavaScript断言代码 断言结果(PASS/FAIL)在'Test Resu ...

  3. postman断言测试脚本二 (对数据格式和内容匹配测试)

    1.如何判断接口响应体的数据格式是否和预期一致 //先将想要的数据格式赋值给定义的变量,如下(举例JSON格式): var schema = {"permissionNames": ...

  4. postman断言之常用函数

    1.设置全局变量与环境变量 postman右侧函数 Setting an environment variable:pm.environment.set("variable_key" ...

  5. postman断言--数据比对

    背景: 因工作需要,在对接第三方的H5,SDK时,测试需要和第三方的数据比对,时间上,人员配置上,且响应结果都是代码,可理解性不高,导致效率不是很高,考虑到以后版本更新迭代,仍然需要测试这块,所以需要 ...

  6. postman断言使用总结

    一.断言的概念 一个完整的接口测试包括:请求-->获取响应结果-->断言 断言:实际结果与预期结果的校验 二.断言的作用 通过实际结果与预期结果的对比,来判断接口测试用例是否通过: 对比结 ...

  7. postman断言详解

    01.断言 在 postman 中我们是在Tests标签中编写断言,同时右侧封装了常用的断言,当然 Tests 除了可以作为断言,还可以当做后置处理器来编写一些后置处理代码,经常应用于: 获取当前接口 ...

  8. 接口自动化测试工具- 基础篇:postman 断言

    1.断言的作用 2. Postman中 添加断言 点击请求里面的Test,可以写JavaScript脚本,但是不需要自己写,右侧postman已经帮忙写好了脚本. 3. Postman中 添加断言的思 ...

  9. postman断言测试脚本一

    1. 清除一个全局变量      Clear a global variable     对应脚本:     postman.clearGlobalVariable("variable_ke ...

  10. postman断言—Chai.js语法总结

    一.名词解释 BDD(行为驱动开发) Behavior Driven Development,一种敏捷开发技术: 灰盒测试.黑盒测试属于BDD,主要测试代码是否符合产品需求,更偏于代码的功能逻辑: T ...

最新文章

  1. iOS下载历史版本APP
  2. 打印所有低于平均分的分数(数组)
  3. js判断fck编辑器内容是否为空并获得焦点
  4. 手写识别底层原理_LinkedList底层原理和手写单链表
  5. c语言编手机蓝牙软件的代码,51单片机C语言的简易蓝牙锁代码
  6. C语言标识符、关键字和注释
  7. 2022-03-21 转载办公室之常用职位(英汉)
  8. UVA10025 The ? 1 ? 2 ? ... ? n = k problem【数学规律】
  9. gitbook 配置
  10. 莫让“专业对口”俘虏了你
  11. cse214 HOMEWORK - SPRING 2022
  12. Intel微处理器Uncore架构简介
  13. [UGUI源码剖析]—Rebuild 网格重建(画布刷新)系统
  14. (29)Verilog实现倍频【方法二】
  15. 从文本文件读取数据方法
  16. jsp如何使用layerui
  17. 清华大学的同学,究竟有多难?
  18. ctfshow XSS漏洞web316-328
  19. js截取最后一个特定字符后面的字符串
  20. css html 对错号,HTML_DIV+CSS编码时易犯的错误,CSS+DIV是网站标准(或称“WEB - phpStudy...

热门文章

  1. 编程5分钟,命名2小时:聊聊命名规范!
  2. Redis基础-下载安装、配置、数据类型、指令、Jedis、持久化
  3. echarts 无数据时提示文字
  4. Class16:初学python之练习题
  5. 无人机实验平台(七) 实验平台的坐标转换(上)
  6. 宽带连接错误的处理办法651、691、623、678、645、720、721、718、734、769
  7. MatLab专用变量
  8. oracle rownum left join,SQL常用指令集(Oracle)
  9. 883. 三维形体投影面积
  10. fluent瞬态计算终止条件在哪里设置_fluent模拟表面喷涂