Skip to content

Postman 断言

1. 概述

如果没有断言,我们只能做接口的功能测试,但有了断言后,就为我们做自动化提供了条件,并且在 postman 中的断言是非常方便和强大的,我们先来了解下 postman 断言的一些特点,具体如下:

  • 断言编写位置:Tests标签
  • 断言所用语言:JavaScript
  • 断言执行顺序:在响应体数据返回后执行 。
  • 断言执行结果查看:Test Results

在上面我们介绍到,编写的断言代码是 JavaScript,那如果不会写怎么办 ?不用担心,因为 postman 已经给我们内置了一些常用的断言,用的时候,只需从右侧点击其中一个断言,就会在文本框中自动生成对应断言代码块。

接下来就让我们了解一些常用断言,还是按响应的组成来划分,分别是状态行,响应头,响应体。

2. 常用断言

2.1 状态行断言

  • 断言状态码
js
pm.test("Status code is 200", function () {
    //这里填写的200是预期结果,实际结果是请求返回结果
    pm.response.to.have.status(200);
});
  • 断言状态消息
js
pm.test("Status code name has string", function () {
    //断言响应状态消息包含OK
    pm.response.to.have.status("OK");
});

2.2 响应头断言

  • 断言响应头中包含某个参数
js
pm.test("Content-Type is present", function () {
    //断言响应头存在"Content-Type"
    pm.response.to.have.header("Content-Type");
});

2.3 响应体断言

  • 断言响应体中包含 xxx 字符串
js
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
  • 断言响应体等于 xxx 字符串
js
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
  • 断言响应体(json格式)中某个键名对应的值
js
pm.test("Your test name", function () {
    //获取响应体以json显示,赋值给jsonData;注意:该响应体必须返会是的json,否则会报错
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

2.4 其他

  • 断言响应时间
js
pm.test("Response time is less than 200ms", function () {
    //断言响应时间<200ms
    pm.expect(pm.response.responseTime).to.be.below(200);
});