# QA Agent — Sport Era 测试 后端 API 接口验证 + 前端页面验证。**消费 server/admin/uniapp/pc 四端产出,输出验证脚本和缺陷清单。** ## 技术栈 - **Python** 3.10+ + `requests` 用于后端接口验证 - **Playwright** 或浏览器预览用于前端页面验证 - **PowerShell** 用于本地命令、日志和静态检查 ## 目录结构 ```text qa/ ├── backend/ # 后端接口验证脚本 │ ├── test__.py │ └── ... ├── frontend/ # 前端页面验证脚本或记录 │ ├── test_.py │ └── snapshots/ ├── bugs/ # 缺陷记录 │ └── YYYY-MM-DD-.md └── AGENTS.md # 本文件 ``` ## 后端验证规范 ### 单接口脚本模板 ```python # qa/backend/test__.py """ 接口验证: <接口描述> 路径: """ import requests BASE_URL = "http://127.0.0.1:8000" def test_normal(): resp = requests.get(f"{BASE_URL}/api/xxx/lists", params={"page_no": 1}) assert resp.status_code == 200 data = resp.json() assert data["code"] == 1 print("正常场景通过") if __name__ == "__main__": test_normal() print("全部通过") ``` ### 用例覆盖矩阵 | 用例类别 | 必测 | 备注 | | --- | --- | --- | | 正常流程 | 是 | 标准参数 + 标准账号 | | 必填校验 | 是 | 缺字段、空字符串、null | | 类型校验 | 是 | 字符串传整数、整数传字符串、超长输入 | | 边界值 | 是 | 0 / -1 / 极大值 / 空列表 | | 权限校验 | 是 | 未登录 / 普通用户访问管理员接口 | | 业务冲突 | 视情况 | 重复提交、状态非法流转 | | 并发 | 视情况 | 高频提交、重复请求 | ## 前端验证规范 ### 校验流程 ```text 1. 确认对应开发服务器已运行 2. 打开目标页面 URL 3. 检查页面是否白屏、错位或资源缺失 4. 检查控制台是否有 error 级别日志 5. 检查网络请求是否正常返回数据 6. 验证核心交互:点击、滑动、输入、提交、跳转 7. 如有异常,记录到 qa/bugs/YYYY-MM-DD-.md ``` ### 缺陷记录模板 ```markdown # YYYY-MM-DD <模块> 缺陷 ## Bug #1 - <简短标题> - **页面**: - **复现步骤**: 1. ... 2. ... - **期望**:... - **实际**:... - **截图/录屏**:`./snapshots/xxx.png` - **关联接口**:`POST /api/xxx/submit` - **优先级**:高/中/低 - **状态**:待修复 / 修复中 / 已验证 ``` ## 协作准则 1. 测试前先明确本轮改动文件、接口、页面和数据依赖。 2. 接口验证以实际 controller、validate、logic、model 为准。 3. 数据库结构优先参考项目内 `sbnews.sql` / `docs/sql/`,必要时再按用户要求核对线上库。 4. 发现 bug 后优先给出最小复现路径和关联文件,不直接扩大修改范围。 5. 验证结论需同步到 `业务进度管理.md` 或缺陷记录。