接口自动化——响应体断言

一、接口断言使用场景

  • 问题:
    1. 如何确保请求可以发送成功。
    2. 如何保证符合业务需求。
  • 解决方案:
    • 通过获取响应信息,验证接口请求是否成功,是否符合业务需求。

二、响应结果对象

# Response就是一个响应对象
r: Response = requests.get('http://www.example.com')

三、响应结果类型

属性 含义
r=requests.request() 响应Response对象(可以使用任意的变量名)
r.status_code HTTP响应码
r.headers 返回一个字典,包含所有响应头信息
r.text 返回响应的内容,是一个字符串
r.url 编码之后请求的url
r.content 返回响应的内容,是一个字节流
r.raw 返回原始的内容
r.json() 如果响应的内容是json格式,可以使用该方法将其解析成python对象

四、json响应体断言

4.1、什么是 JSON 响应体

  • JSON格式的响应体指的是HTTP响应中的消息体(message body),它是以JSON格式编码的数据。

4.2、断言 JSON 格式响应体使用场景

  • 验证API接口的返回结果是否符合预期。
    • 业务场景上是否符合预期。
    • 格式是否符合文档规范。

4.3、断言 JSON 格式响应体

  • r.json():返回 python 字典。
def test_res_json():
    r = requests.get("https://httpbin.ceshiren.com/get")
    assert r.status_code == 200
    assert r.json()["url"] == "https://httpbin.ceshiren.com/get"

4.4、若碰到复杂断言应该如何处理?

  • 多层嵌套的数据提取与断言: JSONPath
  • 整体结构响应断言: JSONSchema
  • 自行编写解析算法