Postman 中常见的断言方式及使用场景
发布时间: 2024-05-02 23:49:19 阅读量: 81 订阅数: 42
Postman如何实现参数化执行及断言处理
![Postman 中常见的断言方式及使用场景](https://img-blog.csdnimg.cn/direct/3c37bcb3600944d0969e16c94d68709b.png)
# 1. 断言的基本概念**
断言是 Postman 中用于验证 API 响应是否符合预期的一项重要功能。它允许您对响应的各个方面进行检查,例如状态码、响应头和响应体。通过使用断言,您可以确保 API 按预期工作,并及时发现任何问题。
断言基于以下原理:您定义一个期望值,然后将实际响应与此期望值进行比较。如果实际响应与期望值匹配,则断言通过;否则,断言失败。Postman 提供了多种断言类型,每种类型都针对不同的响应方面。
# 2. 断言类型
断言是 Postman 中用于验证 API 响应是否符合预期的一种机制。Postman 提供了多种断言类型,每种类型都针对不同的验证场景进行了优化。
### 2.1 状态码断言
状态码断言用于验证 HTTP 响应的状态码是否与预期值匹配。
#### 2.1.1 等于断言
```
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
```
**逻辑分析:**该断言检查响应的状态码是否等于 200。如果状态码匹配,则断言通过;否则,断言失败。
**参数说明:**
* `status(expectedStatusCode)`:要匹配的预期状态码。
#### 2.1.2 不等于断言
```
pm.test("Status code is not 404", function () {
pm.response.to.not.have.status(404);
});
```
**逻辑分析:**该断言检查响应的状态码是否不等于 404。如果状态码不匹配,则断言通过;否则,断言失败。
**参数说明:**
* `status(expectedStatusCode)`:要匹配的预期状态码。
### 2.2 响应头断言
响应头断言用于验证 HTTP 响应头中是否存在特定键值对。
#### 2.2.1 包含断言
```
pm.test("Response header contains 'Content-Type'", function () {
pm.response.to.have.header("Content-Type");
});
```
**逻辑分析:**该断言检查响应头中是否存在 "Content-Type" 键。如果存在,则断言通过;否则,断言失败。
**参数说明:**
* `header(headerName)`:要匹配的预期响应头键。
#### 2.2.2 不包含断言
```
pm.test("Response header does not contain 'X-RateLimit-Limit'", function () {
pm.response.to.not.have.header("X-RateLimit-Limit");
});
```
**逻辑分析:**该断言检查响应头中是否存在 "X-RateLimit-Limit" 键。如果不存在,则断言通过;否则,断言失败。
**参数说明:**
* `header(headerName)`:要匹配的预期响应头键。
### 2.3 响应体断言
响应体断言用于验证 HTTP 响应体中是否存在特定字符串或模式。
#### 2.3.1 包含断言
```
pm.test("Response body contains 'Hello, world!'", function () {
pm.response.to.have.body("Hello, world!");
});
```
**逻辑分析:**该断言检查响应体中是否存在 "Hello, world!" 字符串。如果存在,则断言通过;否则,断言失败。
**参数说明:**
* `body(expectedBody)`:要匹配的预期响应体字符串。
#### 2.3.2 不包含断言
```
pm.test("Response body does not contain 'Error'", function () {
pm.response.to.not.have.body("Error");
});
```
**逻辑分析:**该断言检查响应体中是否存在 "Error" 字符串。如果不存在,则断言通过;否则,断言失败。
**参数说明:**
* `body(expectedBody)`:要匹配的预期响应体字符串。
#### 2.3.3 正则表达式断言
```
pm.test("Response body matches regex /.*Hello, world!.*/", function () {
pm.response.to.have.body(/.
```
0
0