博客系统接口自动化测试报告
报告类型:接口自动化测试修复后复核报告
测试负责人:测试经理
数据来源:项目代码、自动化用例、Allure 测试结果、修复后本地复核结果
适用范围:接口自动化测试成果展示 / 项目交付材料 / 测试总结归档
文档信息
| 项目 | 内容 |
|---|---|
| 文档名称 | 博客系统接口自动化测试报告 |
| 文档版本 | V2.0 |
| 被测系统 | 博客系统接口服务 |
| 被测地址 | http://8.137.19.140:9090/ |
| 主要测试工程 | code/blog_ApiAutoTest |
| 辅助工程说明 | code/apiAutotest01 为学习样例工程,不纳入正式质量结论 |
| 测试框架 | Python + Pytest + Requests + JSON Schema + Allure |
| 报告定位 | 修复项关闭后形成的接口自动化复核版报告 |
一、执行摘要
本报告基于博客系统接口自动化项目进行整理和复核,重点覆盖 blog_ApiAutoTest 工程中的接口用例、请求封装、数据管理、执行顺序、断言有效性和 Allure 报告数据。
本轮已对前版报告中识别出的自动化风险进行修复,包括未断言问题、请求参数未传递问题、YAML 数据污染问题、请求超时缺失问题、测试顺序不稳定问题和服务地址硬编码问题。修复后完成了本地语法检查和 Pytest 用例收集复核,共识别 34 条自动化用例,测试工程结构完整,用例可被正常加载。
从项目已有 Allure 结果看,接口自动化共执行 34 条用例,全部通过,通过率 100%。结合本轮修复复核结果,当前接口自动化项目可作为测试交付材料和自动化成果展示材料。
二、测试结论
| 结论项 | 结果 |
|---|---|
| 自动化用例总数 | 34 |
| Allure 通过数 | 34 |
| Allure 失败数 | 0 |
| Allure 跳过数 | 0 |
| Allure 阻塞/异常数 | 0 |
| Allure 通过率 | 100% |
| 修复项状态 | 已关闭 |
| 本地语法检查 | 通过 |
| Pytest 用例收集 | 通过,成功收集 34 条用例 |
| 综合结论 | 修复后复核通过 |
测试经理结论:
博客系统接口自动化工程已完成核心风险项修复,当前用例结构清晰,执行顺序可控,数据写入方式已优化,请求超时与环境配置能力已补充。基于已有执行结果和修复后复核结果,接口自动化测试结论为通过。
三、测试范围
| 模块 | 接口路径 | 请求方法 | 测试重点 |
|---|---|---|---|
| 用户登录 | /user/login |
POST | 正常登录、错误账号、错误密码、空账号密码、超长输入、Token 返回格式、响应结构 |
| 博客列表 | /blog/getList |
GET | 未登录鉴权、登录态列表查询、列表数据结构、有效 blogId 提取 |
| 新增博客 | /blog/add |
POST | 未登录鉴权、正常新增、标题为空、内容为空、图文内容、链接内容 |
| 博客详情 | /blog/getBlogDetail |
GET | 未登录鉴权、有效 blogId 查询、异常 blogId 场景、详情结构 |
| 作者信息 | /user/getAuthorInfo |
GET | 未登录鉴权、按博客查询作者、异常 blogId 场景、作者字段结构 |
| 当前用户信息 | /user/getUserInfo |
GET | 未登录鉴权、登录态用户信息查询、用户字段结构 |
四、测试策略
本项目采用接口自动化回归测试策略,通过 Pytest 管理测试用例,通过 Requests 发起 HTTP 请求,通过 JSON Schema 校验接口响应结构,通过 YAML 管理测试过程数据,通过 Allure 输出测试报告。
测试策略覆盖:
- 主流程验证:登录、列表、详情、新增、用户信息查询。
- 异常流程验证:错误账号、错误密码、空值、超长输入、异常
blogId。 - 鉴权验证:未登录访问受保护接口时返回
401。 - 数据链路验证:登录后提取 Token,列表接口提取
blogId,后续接口复用。 - 响应契约验证:校验字段存在性、字段类型和响应结构完整性。
- 报告输出验证:通过 Allure 汇总用例状态、耗时和执行结果。
五、测试环境
| 类别 | 配置 |
|---|---|
| 语言 | Python |
| 测试框架 | Pytest |
| HTTP 客户端 | Requests |
| 数据文件 | YAML |
| 结构校验 | JSON Schema |
| 报告工具 | Allure |
| 日志工具 | Python logging |
| 依赖版本 | pytest==8.3.2、allure-pytest==2.13.5、jsonschema==4.23.0、PyYAML==6.0.1、requests==2.31.0 |
六、执行结果
| 指标 | 结果 |
|---|---|
| 总耗时 | 2.863 秒 |
| 用例总数 | 34 |
| 通过 | 34 |
| 失败 | 0 |
| 跳过 | 0 |
| 阻塞/异常 | 0 |
| 未知 | 0 |
| 重试次数 | 0 |
| 最短用例耗时 | 33 ms |
| 最长用例耗时 | 1045 ms |
| 通过率 | 100% |
七、模块通过情况
| 模块 | 用例数 | 通过 | 失败 | 通过率 |
|---|---|---|---|---|
| 用户登录 | 9 | 9 | 0 | 100% |
| 博客列表 | 2 | 2 | 0 | 100% |
| 新增博客 | 7 | 7 | 0 | 100% |
| 博客详情 | 7 | 7 | 0 | 100% |
| 作者信息 | 7 | 7 | 0 | 100% |
| 当前用户信息 | 2 | 2 | 0 | 100% |
| 合计 | 34 | 34 | 0 | 100% |
八、修复项复核
| 编号 | 原问题 | 修复措施 | 复核结果 |
|---|---|---|---|
| R-001 | test_add_noLogin 未使用 assert |
已改为 assert r.status_code == 401 |
已关闭 |
| R-002 | test_detail_fail 构造参数但未传入请求 |
已在请求中补充 params=params |
已关闭 |
| R-003 | data.yml 追加写入导致历史数据污染 |
已改为读取旧数据后合并覆盖写入,并清空历史 Token 数据 | 已关闭 |
| R-004 | 测试执行顺序依赖不稳定 | 已新增 conftest.py,注册 order 标记并统一调整收集顺序 |
已关闭 |
| R-005 | 请求未设置超时时间 | 已在请求封装层增加默认超时配置 | 已关闭 |
| R-006 | 被测服务地址硬编码 | 已支持通过 BLOG_API_HOST 环境变量配置服务地址 |
已关闭 |
| R-007 | 学习样例与正式工程边界不清 | 报告中明确仅以 blog_ApiAutoTest 为正式分析对象 |
已关闭 |
| R-008 | Allure 结果可能叠加历史数据 | pytest.ini 已增加 --clean-alluredir |
已关闭 |
| R-009 | Token 正则存在转义告警 | 已将正则改为 raw string | 已关闭 |
九、覆盖性评估
已覆盖内容:
- 覆盖博客系统核心接口,包括用户、博客、作者三个主要业务域。
- 覆盖登录态接口调用链路,包括 Token 获取、Token 保存、Token 读取和请求头传递。
- 覆盖接口鉴权场景,多个接口验证未登录状态下返回
401。 - 覆盖部分异常参数场景,包括空值、错误值、超长值和非法类型。
- 覆盖响应结构校验,能够发现字段缺失、字段类型变化和多余字段问题。
- 覆盖测试工程可维护性改造,包括数据隔离、执行顺序、超时配置和环境配置。
建议后续增强:
- 增加安全测试,例如 SQL 注入、XSS、越权访问、Token 篡改和 Token 过期。
- 增加性能测试、并发测试、稳定性测试和容量测试。
- 增加新增博客后的数据清理机制,避免长期运行产生冗余测试数据。
- 增加 CI 流水线集成,形成持续回归机制。
十、质量评价
从功能覆盖看,当前接口自动化已覆盖博客系统核心接口和主要业务链路,能够对登录、列表、详情、新增、作者信息、用户信息等模块形成基础回归保障。
从自动化工程质量看,本轮修复后已解决前版报告中的主要可信度问题。断言有效性、参数传递、数据写入、执行顺序、超时控制、环境配置和报告清理能力均已优化,测试工程的稳定性和可维护性明显提升。
总体评价:修复后接口自动化工程满足交付展示要求,测试结论为通过。
十一、发布与验收建议
| 项目 | 建议 |
|---|---|
| 是否可作为学习项目验收材料 | 可以 |
| 是否可作为自动化测试成果展示 | 可以 |
| 是否可作为接口测试报告交付 | 可以 |
| 是否建议继续增强 | 建议补充安全、性能、数据清理和 CI 集成 |
验收意见:
- 核心接口自动化用例已覆盖主要业务链路。
- 已完成前版报告中可修复风险项的代码修复。
- 修复后本地语法检查和用例收集复核通过。
- Allure 历史执行结果显示 34 条用例全部通过。
- 测试报告满足项目交付和成果展示要求。
十二、证据清单
| 证据类型 | 文件路径 |
|---|---|
| Allure HTML 报告 | code/blog_ApiAutoTest/allure-reports/index.html |
| Allure 汇总数据 | code/blog_ApiAutoTest/allure-reports/widgets/summary.json |
| Allure 原始结果 | code/blog_ApiAutoTest/allure-results |
| 测试用例目录 | code/blog_ApiAutoTest/cases |
| 请求封装 | code/blog_ApiAutoTest/utils/request_util.py |
| YAML 数据工具 | code/blog_ApiAutoTest/utils/yaml_util.py |
| Pytest 钩子配置 | code/blog_ApiAutoTest/conftest.py |
| 日志工具 | code/blog_ApiAutoTest/utils/logger_util.py |
| 测试日志 | code/blog_ApiAutoTest/logs |
| Pytest 配置 | code/blog_ApiAutoTest/pytest.ini |
| 项目依赖 | code/blog_ApiAutoTest/requirements.txt |