API断言功能允许您对API响应进行自动化验证,确保API返回的数据符合预期。每次API请求执行完成后,系统会自动执行配置的断言规则,并在日志中显示断言结果。
- 用途: 验证HTTP响应状态码
- 期望值格式: 数字,如
200,500,404 - 示例:
- 期望状态码为200:
200 - 期望状态码为500:
500
- 期望状态码为200:
- 用途: 检查响应体是否包含指定的关键字
- 期望值格式: 字符串
- 示例:
- 检查成功响应:
success - 检查错误信息:
error - 检查特定字段:
"status":"ok"
- 检查成功响应:
- 用途: 使用JSONPath表达式检查响应体中的特定字段值
- 期望值格式: JSONPath表达式
- 示例:
- 检查根字段:
$.code - 检查嵌套字段:
$.data.status - 检查数组元素:
$.users[0].name - 检查消息字段:
$.msg
- 检查根字段:
- 编辑任务: 在任务管理页面,点击任务的"编辑"按钮
- 添加断言: 在任务编辑表单中,找到"断言配置"部分
- 配置断言规则:
- 点击"添加断言"按钮
- 选择断言类型
- 输入期望值
- 设置排序(可选)
- 保存任务: 保存任务时会同时保存断言配置
断言类型: HTTP_CODE
期望值: 200
断言类型: JSON_PATH
期望值: $.code
断言类型: JSON_CONTAINS
期望值: success
断言类型: HTTP_CODE
期望值: 400
断言类型: JSON_PATH
期望值: $.error
断言类型: JSON_CONTAINS
期望值: Invalid parameter
-
日志列表: 在执行日志页面,每个请求记录都会显示断言结果
-
断言状态:
- ✅ 绿色: 所有断言通过
- ❌ 红色: 存在断言失败
- ⚪ 灰色: 无断言配置
-
断言摘要: 显示断言总数、通过数、失败数
- 点击详情: 在日志记录中点击"详情"按钮
- 查看断言: 在详情页面点击"查看详细断言"按钮
- 断言详情: 显示每个断言的
- 断言类型
- 期望值
- 实际值
- 通过/失败状态
- 错误信息(如果失败)
- API请求执行: 系统执行API请求
- 获取响应: 获取HTTP状态码和响应体
- 执行断言: 根据配置的断言规则逐一验证
- 保存结果: 将断言结果保存到数据库
- 更新日志: 在API响应日志中更新断言结果
$- 根节点.- 子节点操作符..- 递归下降*- 通配符[]- 数组索引
{
"code": 200,
"msg": "success",
"data": {
"user": {
"name": "张三",
"age": 25
},
"items": [
{"id": 1, "name": "商品1"},
{"id": 2, "name": "商品2"}
]
}
}对应的JSONPath表达式:
$.code→ 200$.msg→ "success"$.data.user.name→ "张三"$.data.items[0].name→ "商品1"$.data.items[*].id→ [1, 2]
- 明确性: 断言应该有明确的通过/失败标准
- 必要性: 只添加必要的断言,避免过度验证
- 稳定性: 避免依赖可能变化的动态数据
- 状态码 + 内容: 通常建议同时验证HTTP状态码和响应内容
- 关键字 + 路径: 可以结合使用关键字和路径断言提高准确性
- 预期失败: 对于可能失败的API,配置相应的失败断言
- 错误信息: 使用JSON_CONTAINS验证特定的错误信息
- 断言数量: 避免添加过多断言影响执行性能
- 复杂表达式: 简化JSONPath表达式提高执行效率
-
JSON解析失败
- 检查响应体是否为有效JSON格式
- 确认Content-Type是否正确
-
JSON路径不存在
- 验证JSONPath表达式语法
- 检查响应数据结构是否发生变化
-
断言不执行
- 确认任务是否配置了断言
- 检查任务是否正常执行
- 查看响应体: 在日志详情中查看完整的响应体
- 测试JSONPath: 使用在线JSONPath测试工具验证表达式
- 简化断言: 从简单的断言开始,逐步增加复杂性
id: 断言IDtask_id: 关联的任务IDresponse_id: 关联的响应ID(执行结果)assertion_type: 断言类型expected_value: 期望值actual_value: 实际值passed: 是否通过error_message: 错误信息sort_order: 排序顺序
assertion_result: 断言结果汇总all_assertions_passed: 所有断言是否通过
- 新增HTTP状态码断言
- 新增JSON包含关键字断言
- 新增JSON路径断言
- 支持断言结果查看和详情展示
- 集成到任务执行流程中