第6章 报告查看与常见报错排查
本章目标
学会看报告、看日志、快速定位失败原因,尤其能独立处理"参数关联/鉴权"类问题。
1. 报告在哪里看
html_report/report.html:基础 HTML 报告(优先)html_report/index.html:Allure 报告(若生成)
2. 日志在哪里看
logs/目录下最新日志文件- 重点看:请求 URL、请求参数、响应内容、断言失败信息
3. 典型报错与处理
报错1:status_code 不是 200
常见原因:地址不对、参数不对、鉴权失败。
处理:先确认 base_url_key 和请求参数。
报错2:json.code 断言失败
常见原因:业务规则变化、测试数据失效。
处理:查看最新接口返回结构,更新断言。
报错3:变量替换失败 ${auth_token}
常见原因:登录用例没执行或 extract 失败。
处理:先单跑登录用例,检查 config/extract.yaml。
报错4:报告为空
常见原因:pytest 没跑起来。
处理:直接执行 python3 -m pytest -s -v 看原始输出。
4. 参数关联失败专项排查
当你遇到以下现象时,按这个流程排查:
${auth_token}、${order_no}没有替换need_auth: true但接口仍提示未登录- 后置接口提示参数为空(如
orderNo is required)
排查流程:
- 先看前置接口是否成功
- 登录/下单等前置用例必须通过(通常看
json.code == 0)。
- 登录/下单等前置用例必须通过(通常看
- 再看是否真的发生提取
- 日志中应出现"提取变量"相关信息。
config/extract.yaml中应看到对应变量(如auth_token、order_no)。
- 检查提取路径是否匹配响应结构
- 例如应写
data.auth,不要写错层级。
- 例如应写
- 检查后置接口引用变量名是否一致
- 提取
order_no,引用必须是${order_no},不能写${orderNo}。
- 提取
- 检查执行顺序
- 登录类 YAML 文件名建议加前缀(如
01_login_test.yaml),确保先执行。
- 登录类 YAML 文件名建议加前缀(如
5. Jenkins 场景下怎么排查
如果本地能过、Jenkins 失败,优先看这 3 处:
- Jenkins Console 输出(先确认失败在哪个 stage)
- 构建产物里的
logs/(对照本地日志看差异) - Jenkins 工作空间中的
config/extract.yaml(确认变量是否落盘)
常见差异点:
- Jenkins 环境地址与本地不一致
- Jenkins 凭据未配置完整(Git/SMTP/业务账号)
- 网络策略导致接口在服务器上不可达
6. 排错建议流程(通用)
- 先看日志,不先改代码
- 先确认"环境是否可用",再确认"数据是否正确"
- 最后再改断言或 YAML 模板
- 每次只改一处,改完立刻复测
本章验收标准
- 能独立定位 1 次普通失败用例
- 能独立定位 1 次参数关联失败(提取/替换/顺序任一问题)