postman--断言写法

Posted 刘那个慧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postman--断言写法相关的知识,希望对你有一定的参考价值。

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;
//[]只能填010"<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--断言写法的主要内容,如果未能解决你的问题,请参考以下文章

postman接口测试篇- 数组内json value check断言写法及输出log方法

postman常用断言

postman测试实例--断言

postman测试实例--断言

postman断言作用及怎么使用

postman断言总结