0


postman:Tests模块之断言

Part1 概念

在Tests模块中,使用 JavaScript 为 Postman API 请求编写测试脚本,来验证 API 是否按预期工作,服务之间的集成是否可靠地运行,以及新的开发是否未破坏任何现有功能(从官网看的)。总而言之,Tests模块的作用很多,比如接口依赖、断言。
Tests模块中写的脚本,是在请求运行后/前执行的。
在集合、文件夹、请求中,都有Tests模块,区别是他们的作用域不同。
这里主要介绍测试断言的一些脚本函数。

Part2 一个简单的测试脚本

比如,有一个登录请求,在Postman中打开请求,然后打开Tests页签,输入下面JS脚本:

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

这个JS脚本的作用是检查API请求返回的响应代码,如果响应代码为200,则代表测试通过,否则代表测试失败。
运行脚本之后,得到下面的结果,可以看到响应代码是200,测试通过:
在这里插入图片描述
如果改一下脚本中的值,将200改成404,再次运行脚本,就得到了FAIL,并且有提示信息,说我们断言中期望的是404,但实际结果是200:
在这里插入图片描述

Part3 使用多个断言

在写脚本时,可以将多个断言组合在一起:

pm.test("The response has all properties",  ()=>{
    pm.expect(pm.response.text()).to.include("10000");
    pm.response.to.have.status(200);
    //console.error(pm.response.text())});

运行的时候,所有的断言都通过,才算是通过,任何一个断言失败,整个测试都会失败:
在这里插入图片描述

Part4 常用断言介绍

1.验证返回状态码是不是200

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

在这里插入图片描述
2.验证返回body内是否含有某个值

pm.test("Body matches string", function(){
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");});

比如有一个请求,返回的body是下面的结构:
在这里插入图片描述
然后我们可以判断是否有“success”这个字符串,可以写成:

pm.test("Body matches string", function(){
    pm.expect(pm.response.text()).to.include("success");});

在这里插入图片描述
有时候为了更准确的判断,会判断指定的字段,比如直接判断"msg"是否包含"success":

var jsonData = JSON.parse(responseBody)
console.log(jsonData)

pm.test("Body matches string", function(){
    pm.expect(jsonData.msg).to.include("success");});

在这里插入图片描述
3.验证某个返回值是否等于XXX

pm.test("Your test name", function(){
    var jsonData = pm.response.json();
    console.log(jsonData)
    pm.expect(jsonData.value).to.eql(100);});

还是第2点的那个例子,判断"code"是否等于"0":
在这里插入图片描述
4.检查响应主体是否等于一个字符串

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

返回格式如下:
在这里插入图片描述
判断返响应主题是否等于:

pm.test("Body is correct", function(){
    pm.response.to.have.body('{\n"message": "登录成功",\n    "code": 200,\n    "data": {\n        "token": \nXXXX"    \n}\n}"');});

判断失败是因为token是不一样的。不过这个,我个人很少用到。
在这里插入图片描述
5.判断返回头类型

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

判断返回头是否包含"Content-Type"和"Transfer-Encoding"

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

实际的返回头:
在这里插入图片描述
判断结果:
在这里插入图片描述
6.请求时长是否小于XXXms

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

在这里插入图片描述
7.判断返回码是否在期望列表里

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

返回码是200,在列表里,就是通过:
在这里插入图片描述
8.判断响应代码里包含的字符串

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

比如请求成功,返回的字符串是OK:
在这里插入图片描述

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

在这里插入图片描述

标签: postman 测试工具

本文转载自: https://blog.csdn.net/c_xiazai12345/article/details/123554982
版权归原作者 进击的小陈 所有, 如有侵权,请联系我们删除。

“postman:Tests模块之断言”的评论:

还没有评论