Skill: superchao9/web-test-reporter (version 1.0.0)

--- name: web-test-reporter description: Web功能测试自动化执行与报告生成。使用 agent-browser CLI 对 Web 系统进行完备的功能测试，并生成标准 Word (.docx) 测试报告。激活时机：(1) 用户要求测试某个页面或模块的功能，(2) 用户要求生成功能测试报告，(3) 用户要求对 Web 系统做走查/验证/自动化测试。 --- # Web 功能测试规范 ## 启动流程 ### 第一步：询问前后端代码路径 开始测试前，**先询问用户是否可以提供前后端项目代码路径**： **可以提供代码路径** → 获取前后端代码路径，先通读目标模块代码（见"代码阅读"章节），再进行测试 **无法提供代码路径** → 跳过代码阅读，直接按黑盒测试流程执行 ### 第二步：获取前端地址与登录信息 1. **已提供前端地址 + 登录信息** → 直接开始 2. **只提供了前端地址** → 先访问页面判断是否需要登录： - 需要登录 → 询问租户（如有）、用户名、密码，获取后登录 - 不需要登录 → 直接开始 3. **未提供前端地址** → 询问前端地址，再按上述流程处理 --- ## 代码阅读（有代码路径时必须执行） 拿到代码路径后，**先通读再测试**，阅读顺序： **前端代码**（`src/views/<模块>/`）： - 列表页 `index.vue`：搜索字段、表格列、操作按钮、分页 - 表单页 `XxxForm.vue`：所有字段、必填校验、子表结构、多标签页 - 详情页 `detail.vue`：展示字段、子表展示 - API 文件 `src/api/<模块>.ts`：接口路径、参数、响应结构 **后端代码**（`<后端项目>/<模块>/`）： - DO/Entity：字段定义、类型、约束 - Controller：接口路径、参数 - Service/ServiceImpl：业务逻辑、状态流转、关联操作 - BPM Listener（如有）：审批流程、状态变更 - 建表 SQL（如有）：字段约束、枚举值、索引 **阅读目标**： - 理解所有功能点和业务规则（哪些字段必填、哪些有枚举约束、哪些有唯一性限制） - 理解状态流转逻辑（草稿→审核中→已通过/已驳回） - 识别边界值（字段长度限制、数值范围、格式要求） - 识别关联关系（主子表、外键约束） **基于代码理解，测试时额外关注**： - 前端校验与后端校验是否一致 - 枚举值是否完整展示 - 状态流转是否按业务逻辑正确变更 - 子表数据是否正确关联保存 - 接口异常时前端是否有友好提示 --- ## 测试类型判断 拿到页面后，先判断页面类型，再选择对应测试策略： **增删改查类页面**（有列表 + 新增/编辑/删除/搜索等按钮） → 严格按照下方"每个模块的标准测试步骤"执行完备闭环测试 **非增删改查类页面**（如数据看板、图表展示、配置项、流程审批、详情只读页等） → 枚举页面上所有可交互元素（按钮、链接、筛选器、标签页、下拉框等），逐一测试： - 每个按钮/链接点击后验证响应结果 - 每个筛选/切换操作验证数据变化 - 每个跳转验证目标页是否正确加载 - 关键数据展示是否正常（无空白、无报错、无乱码） - 全程截图留证，记录异常 --- ## 工具要求 **必须使用 agent-browser**，不用内置 browser 工具（动态弹窗在 accessibility tree 中不可见）。 ```bash agent-browser open <url> agent-browser snapshot -i --json agent-browser click @eN agent-browser fill @eN "内容" agent-browser press Enter agent-browser wait --load networkidle agent-browser screenshot <名称>.png ``` 截图统一保存到报告目录的 `screenshots/` 子目录，命名格式：`模块-操作-状态.png` --- ## 每个模块的标准测试步骤 ### 1. 页面初始化 - 导航到目标页面，截图 - 验证：标题/面包屑、列表数据、搜索栏字段、操作按钮 ### 2. 搜索/筛选 - 有效关键词搜索 → 截图 → 验证结果匹配 - 重置 → 截图 → 验证恢复全量 - 无效关键词 → 截图 → 验证空状态提示 ### 3. 新增（完整闭环） 1. 点击新增 → 截图（弹窗打开） 2. 不填直接提交 → 截图（必填校验） 3. 填写所有必填字段 → 截图（填写中） 4. 如有子表/多标签页，逐一填写 → 截图 5. 点击确定 → 等待加载 → 截图 6. 回列表验证新记录存在 → 截图 7. 核对字段展示与填写内容一致 **边界值测试**（不可省略）： - 必填项为空 → 验证报错 → 截图 - 文本超长 → 验证截断或报错 → 截图 - 特殊字符（`<script>` `'` `"` `@#￥`）→ 截图 - 数字字段输入字母/负数/超大值 → 截图 - 重复数据 → 验证提示 → 截图 ### 4. 编辑（完整闭环） 1. 点击编辑 → 截图（原数据回填） 2. 验证原数据正确回填 3. 修改至少一个字段 → 截图 4. 保存 → 回列表验证修改生效 → 截图 ### 5. 详情 - 点击详情 → 截图 - 核对关键字段与列表一致 - 验证只读字段不可编辑 ### 6. 审核/提交（双路径，必须） **取消路径**：点击提交审核 → 截图确认框 → 点取消 → 截图验证状态未变 **确认路径**：再次提交 → 截图确认框 → 点确认 → 等待 → 截图状态变更 → 若出现"查看审批"则继续点击 → 截图审批页 ### 7. 删除（双路径，必须） > ⚠️ 只删除自己新增的测试数据 **取消路径**：点删除 → 截图确认框 → 取消 → 截图验证记录仍存在 **确认路径**：再次删除 → 确认 → 截图 → 回列表验证记录消失 → 截图 ### 8. 导出 - 点击导出 → 截图 - 验证文件下载、格式、内容与列表一致 --- ## 报告格式规范 报告为 Word .docx，用 Python `python-docx` 生成。 详见 `references/report-format.md`，生成脚本模板见 `scripts/build_report.py`。 **报告结构**： ``` 封面（大标题居中 + 测试日期/对象/范围/规范说明） 目录（Word TOC 域，1-3级，右键更新域） 1. 测试概述 2. 测试环境 3. 总体结论 4. 登录过程（截图） 5. 分模块测试记录 5.1 模块A（Heading 2） 5.1.1 基础验证（Heading 3） 5.1.2 闭环样本A（Heading 3） 5.2 模块B ... 6. 缺陷汇总 7. 最终结论 ``` **字体**：全文微软雅黑，正文 10.5pt，H1 16pt，H2 13.5pt，H3 12pt，图注 9.5pt 居中 **截图**：宽度 6.0 英寸，下方紧跟图注 `图N 描述`，缺图标注 `【缺图】文件名` --- ## 执行原则 > 入口 → 操作 → 取消分支 → 确认分支 → 加载完成 → 结果验证 → 截图留证 → 报告记录 1. 每个功能必须测到最终结果，不能只验证弹窗能打开 2. 所有确认类操作必须走双路径（取消 + 确认） 3. 每个关键步骤必须截图 4. 边界值测试不可省略 5. 测试完成后清理自己新增的测试数据 6. 发现问题立即记录，不跳过


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)