接口响应断言
接口响应断言
简介
接口响应断言是在进行接口测试时用于验证接口返回结果的方法。断言主要是用来检查代码或测试中的期望条件是否满足。在接口测试中,断言通常用于验证 API 的响应是否符合预期,确保接口按照预定的规范工作。
使用场景
做接口测试的时候我们需要对我们的接口进行校验,比如,判断一下我返回的响应结果有没有包含地址。
那么我们就可以通过响应断言来进行判断我们的接口是否符合我们的预期。
Response对象
响应对象
import requests
from requests import Response
# Response就是一个响应对象,可以随意定义名称
Response = requests.get('http://www.example.com')
了解下响应对象包含了什么
属性 | 含义 |
---|---|
r |
响应 Response 对象(可以使用任意的变量名) |
r.status_code |
HTTP 响应状态码 |
r.headers |
返回一个字典,包含响应头的所有信息。 |
r.text |
返回响应的内容,是一个字符串。 |
r.url |
编码之后的请求的 url |
r.content |
返回响应的内容,是一个字节流。 |
r.raw |
响应的原始内容 |
r.json() |
如果响应的内容是 JSON 格式,可以使用该方法将其解析成 Python 对象。 |
响应断言
断言用到的是assert关键字>预期的结果和实际结果做对比:
- 判断xx为真
assert xx
- 判断xx不为真
assert not xx
- 判断b包含a
assert a in b
- 判断a等于b
assert a == b
基础断言:
- r.status_code
import requests
def req():
r = requests.get("https://httpbin.ceshiren.com/get")
#判断我们的接口返回的状态码是否是200
assert r.status_code == 200
- 判断a不等于b
assert a != b
响应断言(Java)
响应断言方式
类型 | 断言方法 |
---|---|
状态码 | then().statusCode() |
响应头 | then().header() |
内容 | then().body() |
响应状态码断言
- 环境:httpbin.org
then().statusCode()
package com.ceshiren.response.status;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given; // 引入RestAssured框架的given方法,用于构建HTTP请求
/**
* 测试响应状态码的类
*/
public class TestStatusCode {
/**
* 测试GET请求的响应状态码是否为200
*/
@Test
void testStatusCode(){
given() // 开始构建HTTP请求
.when() // 指定请求的发送时机
.get("https://httpbin.ceshiren.com/get") // 发起GET请求到指定URL
.then() // 定义响应的预期行为
.log().all() // 打印完整的响应结果,包括头信息和主体
.statusCode(200); // 断言响应的状态码应该是200,即成功响应
}
}
总结
- 接口断言
- 接口断言方式
- 响应状态码断言