Postman中断言的使用以及断言常用代码片段详解

首先,如果有开发经验或者测试的一些经验的话,对postman的使用情况都会有一些了解的:

  • 在开发接口的时候需要快速的去调用接口,以便调试
  • 在测试的时候需要非常方便的去调用接口,来通过各种不同的参数去测试接口的输出
  • 有时有的接口调用是需要保存下来进行反复执行的
  • 在接口测试的过程中添加一些断言(预期和真实运行的结果进行对比)

目录

1、对Postman界面进行简单的了解

2、断言界面介绍

3、发送GET请求并增加请求状态和对返回结果内容的断言并执行

4、对断言中的打印结果进行查看

5、常用断言代码片段介绍


Postman的实用资料:

postman官网及下载地址:https://www.getpostman.com/downloads/  (有MAC版和WIN版的,具体的安装步骤略过,安装完成后启动时会让注册账号和密码,可以点击下方的免费使用,如果想了解postman的更多功能的话,建议注册下,我已经注册,嘿嘿)

postman官方文档:https://learning.getpostman.com/docs/postman/launching-postman/installation-and-updates/

Postman中断言的使用以及断言常用代码片段详解

1、对Postman界面进行简单的了解

Postman中断言的使用以及断言常用代码片段详解

  • 1、为历史记录,可以查看当天的以及以前调试的接口
  • 2、为保存调试的接口
  • 3、为邀请其他人加入
  • 4、为新建一个api接口请求界面
  • 5、为选择访问请求的方式
  • 6、为输入api的url
  • 7、为根据不同的情况设置不同的环境
  • 8、发送请求
  • 9、为发送请求时设置不同的参数
  • 10、为获取API接口请求的结果
  • 其中在10的地方有四种不同方式可以查看API接口请求的结果(Pretty、Raw、Preview、Visualize四种不同的模式)

2、断言界面介绍

Postman中断言的使用以及断言常用代码片段详解

  • ① 为增加断言的区域
  • ② 为常用的一些断言的代码片段(双击其中的一条后就会在 ① 中的区域出现)
  • ③ 为发送get请求后返回的内容

3、发送GET请求并增加请求状态和对返回结果内容的断言并执行

Postman中断言的使用以及断言常用代码片段详解

调试的结果是:其中对返回内容条数的断言失败,但是中间有对返回内容的条数的打印情况可以进行查看

4、对断言中的打印结果进行查看

操作如下:

Postman中断言的使用以及断言常用代码片段详解

此时就会调出postman的调试结果窗口

Postman中断言的使用以及断言常用代码片段详解

发现返回的数据一共只有9条数据,红色框的窗口就是上一步操作出来的窗口

注:“===” 在js里面会看到

Postman中断言的使用以及断言常用代码片段详解

两个红色框中的断言内容其实都是一个意思,实现的功能是一样的,红色框 1 中的是以前的写法;红色框 2 中的内容是根据右面的常用断言的代码片段写出来的,既方便又快捷,只需要在里面添加代码就可以,常用的代码片段下面有详细的介绍哈

注:上面的红色框框中的断言写法(就是 1 中注释掉的那种写法),根据官方的介绍,1 中有的已经弃用了,有的不建议使用,建议大家采用 2 中写法

5、常用断言代码片段介绍

常用代码断言片段 含义 代码片段示例
get an environment variable 获取环境变量 pm.environment.get("variable_key")
get a global variable 获取全局变量 pm.globals.get("variable_key")
get a variable 获取变量 pm.variables.get("variable_key")
set an environment variable 设置环境变量 pm.environment.set("variable_key", "variable_value")
set a global variable 设置全局变量 pm.globals.set("variable_key", "variable_value")
clear an environment variable 清除环境变量 pm.environment.unset("variable_key")
clear a global variable 清除全局变量 pm.globals.unset("variable_key")
Send a request 发送一个异步请求 pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
})
Status code : Code is 200 检查请求的状态码是否为200 pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
})
Response body: Contains string 检查响应中是否包含 string pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
})
Response body: JSON value check 检查JSON某个字段的值 pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
})
Response body: Is equal to a string 检查响应body中等于指定的 string pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
})
Response headers: Content-Type header check 检查Content—Type是否包含在header的返回值中 pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
})
Response time is less than 200ms 检查请求的耗时时间是否为200ms pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
Status code: Successful POST request 检查post请求成功的状态码 pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
})
Status code: Code name has string 检查code name 的值是否为指定的 string pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
})
Response body: Convert XML body to a JSON Object 将XML格式的响应体转换成JSON对象 var jsonObject = xml2Json(responseBody)
Use Tiny Validator for JSON data 对响应的结构使用TV4进行JSON模式验证

var schema = {
  "items": {
    "type": "boolean"
  }
};

var data1 = [true, false];
var data2 = [true, 123];

pm.test('Schema is valid', function() {
  pm.expect(tv4.validate(data1, schema)).to.be.true;
  pm.expect(tv4.validate(data2, schema)).to.be.true;
})