01-Postman断言-常用断言

一、在使用postman的过程中必不可少的会使用的断言,这里可以将断言分为2大类,其中一种就是:postman自带断言脚本,另外就是根据自己的测试需求进行一个断言脚本的编写。

我使用的postman是9.0.8的版本
在这里插入图片描述

1、首先了解一下postman的断言模块

在这里插入图片描述
比如常用断言
①、判断接口响应时间是否超过200ms
在这里插入图片描述

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

其中“Response time is less than 200ms”是你为这个断言所起的名字,可以自定义在运行接口测试的时候会在test的结果中显示出来如图
在这里插入图片描述
②、请求的响应码是不是200,同样Status code is 200为这个断言的名称

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

③、检查响应结果中的某个值是否和预期相同

pm.test("Check value is 100", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(100);
});

其中pm.test意为postman中的test模块
pm.test(“assert name”, function()‘{*****}’)可以理解为是其固定格式而{****}就是断言的主要内容;
{ var jsonData = pm.response.json();——–①
pm.expect(jsonData.code).to.eql(100);}————②
①主要是对响应做一个json格式的转换,先把响应转换为json格式
②通过取值jsonData.code 取响应结果中key键为code的值 与100进行等值比较
pm.expect(jsonData.code).to.epl(100)

④、响应状态码的名称中含有某个字符串,比如判断是否含有“OK”字符串,如果含有此断言就成功

pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK");
});

⑤、成功的post请求状态码,判断该请求状态码是不是在201和202这两个之中,因为在post请求中存在响应码是201和202或者200的时候都是表示成功只是代表的具体含义不同,这里和断言响应码是不是200有相似之处不同的地方在于这里断言的是to.be.oneOf([list]),看响应码是不是在这个list里面,多了一个范围

pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});

状态码:200(请求成功成功的含义取决于HTTP方法如POST:描述动作结果的资源在消息体中传输)
状态码:201(该请求已成功,并因此创建了一个新的资源。通常源于POST或某些PUT请求。)
状态码:202(该请求已被接受进行处理,但是处理尚未完成。最终有可能会被处理也可能不会。)

⑥、响应体中是否与预期相同这里需要注意只有响应体与预期的完全相同才会断言成功

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

其中response_body_string对应的是响应体的全部内容,这种断言方式在响应体内容比较多的时候是不建议使用的,在获取响应体内容的时候我们可以在响应体中查看Raw格式的响应体,然后通过json转义 一下,最后填写到断言脚本中,如下图的响应体:
在这里插入图片描述
切换为Raw格式之后显示为
在这里插入图片描述
经过转义之后为:
在这里插入图片描述
把转义之后的消息体填写到断言脚本中,运行后可以看到test的结果:
在这里插入图片描述
⑦、对响应头进行断言,判断响应头中关键key是否存在,比如断言响应中Content-Type这个key是不是存在

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

我们来看一个响应头
在这里插入图片描述根据这个思路我们把断言脚本中的Content-Type替换成Date,就是断言响应头中是不是存在Date这个key值(json是以Key-Value键值对的形式存储的)

在postman中断言也属于比较重要的一块内容了,因为关系到如何准确的判断我们测试的接口是否达到我们的期许和要求,断言脚本语言除了系统自带的一部分外还有很多可以灵活自己编写的,在不断的学习中还会不断的总结。

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。


版权声明:本文为weixin_44325114原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。