2. JSON响应结构验证:validate_schema()
场景痛点: 传统的断言往往只校验 code 和 msg。但作为中高级测试,我们需要确保后端返回的 JSON 结构没有发生“偷偷摸摸”的变更(比如 data 里的某个字段类型从 int 变成了 str)。
进阶做法: 引入 jsonschema 库,封装一个结构校验函数。
from jsonschema import validate, ValidationErrordef validate_schema(response_json, schema): """ 校验接口返回的JSON结构是否符合预期 :param response_json: 接口返回的字典 :param schema: 定义的JSON Schema结构 """ try: validate(instance=response_json, schema=schema) return True except ValidationError as e: print(f"❌ 结构校验失败: {e.message}") return False# 定义预期的结构user_schema = { "type": "object", "required": ["code", "data"], "properties": { "code": {"type": "integer"}, "data": { "type": "object", "properties": { "id": {"type": "integer"}, "username": {"type": "string"} } } }}# validate_schema(resp.json(), user_schema)