AideBuddy后端接口自动化测试
Find a file
2026-10-13 19:48:17 +08:00
docs 完善接口自动化测试:新增订阅模块,适配协作独立状态与循环规则,修正通知校验并补充分组排序用例 2026-10-13 19:48:17 +08:00
tests 完善接口自动化测试:新增订阅模块,适配协作独立状态与循环规则,修正通知校验并补充分组排序用例 2026-10-13 19:48:17 +08:00
任务模块 完善接口自动化测试:新增订阅模块,适配协作独立状态与循环规则,修正通知校验并补充分组排序用例 2026-10-13 19:48:17 +08:00
埋点模块/埋点 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
备忘录模块/备忘录 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
好友模块 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
对话模块/对话 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
用户模块 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
第三方模块 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
订阅模块 完善接口自动化测试:新增订阅模块,适配协作独立状态与循环规则,修正通知校验并补充分组排序用例 2026-10-13 19:48:17 +08:00
通知模块/通知 完善接口自动化测试:新增订阅模块,适配协作独立状态与循环规则,修正通知校验并补充分组排序用例 2026-10-13 19:48:17 +08:00
鉴权模块 调整第三方模块测试:跳过渠道机器人回调接口,保留README说明并同步测试方案 2026-10-10 19:48:51 +08:00
.gitignore 统一添加Windows平台请求头,完善注销账号关联数据库校验,忽略数据库导出 2026-10-07 23:01:28 +08:00
batch_runtime.py 完善接口测试校验与报告:适配看板筛选与用户资料id,修正好友查库及可选字段断言,展示原始时间和请求范围容差 2026-10-09 15:15:44 +08:00
README.md 完善接口自动化测试:新增订阅模块,适配协作独立状态与循环规则,修正通知校验并补充分组排序用例 2026-10-13 19:48:17 +08:00
run_batch.py 新增埋点测试与模块批量运行,精简失败报告并调整看板筛选样例 2026-10-08 17:47:28 +08:00

后端接口自动化测试

按模块、分组和接口组织 Python 测试脚本,核验接口响应及相关数据库表、字段。接口契约以 当前接口文档 为准,数据库校验参考 docs/数据库 下最新导出;后端源码作为实现参考,发现差异时按最新接口文档和数据库结构判断。

当前覆盖范围

以下根据当前接口文档和实际 test_*.py 文件统计。脚本数量表示已编写,不代表所有样例已运行通过;最终结果以测试报告为准。

模块 文档接口数 已有接口测试脚本数
任务模块 27 27
分享模块 5 0
埋点模块 2 2
备忘录模块 4 4
好友模块 15 15
对话模块 9 9
用户模块 6 6
第三方模块 8 5
订阅模块 21 16
通知模块 5 5
鉴权模块 13 11
合计 115 100

原支付相关接口已合并到订阅模块,会员与额度、订单、Apple 购买与交易验证、支付回调及发票相关接口统一按 订阅模块文档 管理,不再将支付、积分和发票列为独立模块。订阅模块已有16个接口、29个样例;仅微信扫码支付启用,Apple及支付宝暂不执行。微信支付回调通过人工扫码后的数据库结算结果联动核验,不独立模拟官方回调。

第三方模块已有5个前端接口脚本,3个官方回调接口跳过。分享模块目前无测试脚本。项目中保留的 AI模块 目录没有测试脚本,当前接口文档中没有独立的 AI 模块文档,因此不计入上表。

订阅模块可运行 python .\run_batch.py --modules 订阅模块。GET只复用现有数据库记录,缺数据记未测试。创建订单第三例需人工扫码;提交开票申请需在数据集填写真实订单ID、抬头ID并在终端输入submit确认。不要将示例企业资料用于真实开票。取消订单严格要求文档规定的PENDING前置,创建后若为PAYMENT_IN_PROGRESS则未测试。详细样例见本地 订阅模块/测试方案.md。

项目结构

接口自动化测试/
├── README.md
├── run_batch.py             # 按模块批量运行入口
├── batch_runtime.py         # 登录复用、验证码间隔和失败报告
├── docs/
│   ├── 当前接口/            # 最新接口契约
│   ├── 数据库/              # 本地数据库导出,Git 忽略
│   ├── 接口测试编写规范.md
│   └── 批量运行说明.md
├── 各业务模块/分组/单个接口/
│   ├── test_*.py            # 独立测试入口
│   ├── cases.json           # 测试数据、账号和预期
│   ├── config.py            # 接口地址等配置
│   ├── db_check.py          # 需要查库的接口使用
│   └── reports/             # 本地运行报告
├── tests/                   # 批量运行机制的离线测试
└── reports/                 # 批量运行汇总

不同接口按实际需求组织文件,并非每个目录都有上述全部文件。新增或调整测试前阅读 接口测试编写规范。

运行准备

使用 Python 3.10 或更高版本,在项目根目录安装当前脚本使用的第三方依赖:

python -m pip install requests "psycopg[binary]" openpyxl

检查对应接口 config.py 中的服务地址、数据库配置及所需密钥。手机号和新手机号等测试输入填写在该接口 cases.json 中;enabled=1 执行,enabled=2 跳过。接口所需业务前置由对应脚本执行,运行会产生或修改测试环境数据。

桌面用户请求使用 X-Client-Platform: WINDOWS,登录和后续受保护请求保持一致。验证码按终端提示输入;数据库密码等交互以各脚本提示为准。

单接口运行

进入目标接口目录运行脚本,例如:

cd .\备忘录模块\备忘录\01_GET_获取备忘录列表
python .\test_list_memos.py

批量运行

在项目根目录执行,--modules 必填,可选择一个或多个已有脚本的模块:

python .\run_batch.py --modules 任务模块
python .\run_batch.py --modules 任务模块 备忘录模块 通知模块
python .\run_batch.py --modules 任务模块 --list-only
python .\run_batch.py --help

--list-only 只显示计划,不登录、不调用业务接口或数据库。模块内按脚本路径顺序串行运行,样例仍由各自数据集控制。

  • 登录作为前置时,同一服务地址、手机号和平台复用本轮成功登录结果;缓存仅保存在进程内存中。
  • 登录接口本身的测试实际发送验证码并登录,不使用缓存代替测试;执行前后清空前置登录缓存。
  • 同一手机号两次发送验证码尝试至少间隔60秒,未到时间自动等待。不同进程之间不共享计时。
  • 鉴权模块当前仅登录接口参与批量执行,其他鉴权接口在计划中标为排除,继续单独运行。
  • 401会清除对应共享登录缓存,本次请求不自动重试;403不会被当作Token过期。

详细行为及退出码见 批量运行说明。

测试报告

支持结构化报告的接口在自己的 reports 目录保存完整报告;存在“不通过”样例时,额外生成 不通过_*.md,复用正常报告格式,仅保留失败检查项的预期值、实际值和定位信息,省略通过项及完整数据库快照。

批量运行还会在根目录 reports/批量运行_时间/ 保存:

  • 批量测试汇总报告.md:各接口的通过、不通过、未测试、部分测试、跳过数量及报告链接。
  • 批量不通过测试报告.md:有失败样例时生成,汇集各接口失败报告。

未测试、部分测试及执行异常不会计为通过。少数旧鉴权脚本保留终端输出方式;具体以对应脚本为准。

离线验证

python -m unittest discover -s tests -p test_batch_runtime.py

验证登录缓存、验证码间隔、失败报告及批量命令参数等运行机制,不调用真实业务接口。

Git 文件管理

具体规则见 .gitignore。根目录及 docs 内的 Markdown 文档保留,其他目录下的 Markdown 文档忽略;docs/数据库、运行报告和缓存等按忽略规则保存在本地。