|
159 | 159 |
|
160 | 160 | ## 规则11:截图策略(省钱省时) |
161 | 161 |
|
162 | | -截图会消耗视觉大模型费用和测试时间,必须精确控制使用场景。 |
163 | | - |
164 | | -### 断言 vs 截图能力对比 |
165 | | - |
166 | | -| Bug类型 | 检测方式 | 需要截图? | |
167 | | -|---------|---------|-----------| |
168 | | -| 文本值错误(价格、状态) | `assert_text` | ❌ 不需要 | |
169 | | -| 元素缺失/隐藏 | `assert_visible` | ❌ 不需要 | |
170 | | -| 计算逻辑错误(优惠、运费) | `assert_text` | ❌ 不需要 | |
171 | | -| **布局溢出**(文字超出容器) | 视觉检查 | ✅ 需要 | |
172 | | -| **元素遮挡/重叠** | 视觉检查 | ✅ 需要 | |
173 | | -| **样式错乱**(颜色、字号) | 视觉检查 | ✅ 需要 | |
174 | | -| **响应式适配崩坏** | 视觉检查 | ✅ 需要 | |
175 | | -| **图片加载失败** | 视觉检查 | ✅ 需要 | |
176 | | - |
177 | | -### 截图使用规则 |
178 | | - |
179 | | -- ❌ **禁止**在每个场景末尾无脑加 `screenshot` |
180 | | -- ✅ 只在以下3种场景使用: |
181 | | - 1. **断言失败时**:引擎自动截图留证,蓝本不用写 |
182 | | - 2. **关键业务流程最终结果页**:如下单成功页,每个模块最多1张 |
183 | | - 3. **专门的视觉测试场景**:布局溢出、遮挡、适配——这类Bug只有截图能发现 |
184 | | - |
185 | | -## 规则12:蓝本按功能拆分 |
186 | | - |
187 | | -- 项目超过3个页面时,必须按功能模块拆分为多个蓝本文件 |
188 | | -- 命名规范:`testpilot/<模块名>.testpilot.json`(如 `auth.testpilot.json`、`cart.testpilot.json`) |
189 | | -- 每个蓝本文件独立可运行,场景开头都要从 `navigate` 开始 |
| 162 | +截图用于发现**视觉Bug**(布局溢出、元素遮挡、样式错乱、响应式崩坏、图片加载失败),断言无法检测这类问题。 |
| 163 | + |
| 164 | +### 截图规则 |
| 165 | + |
| 166 | +- **每个蓝本模块的第1个场景末尾加1张 `screenshot`**,其余场景不加 |
| 167 | + - `auth.testpilot.json` 第1个场景末尾 → `screenshot`(覆盖登录页视觉) |
| 168 | + - `cart.testpilot.json` 第1个场景末尾 → `screenshot`(覆盖购物车视觉) |
| 169 | + - 同模块的第2、3、4…个场景 → 不加 |
| 170 | +- 断言失败时引擎会自动截图留证,蓝本不用额外写 |
| 171 | +- ❌ **禁止**每个场景末尾都加 `screenshot`(浪费视觉大模型费用和时间) |
| 172 | + |
| 173 | +## 规则12:蓝本按功能模块拆分 |
| 174 | + |
| 175 | +- 按**业务功能模块**拆分蓝本,不要把所有场景塞进一个文件 |
| 176 | +- 拆分原则:**一个功能模块 = 一个蓝本文件**,改了哪个功能就只跑哪个蓝本 |
| 177 | + - 例:`auth`(登录注册)、`cart`(购物车)、`checkout`(结算支付)、`profile`(个人中心) |
| 178 | + - 跨页面的端到端流程归属到终点功能模块(如"加购→结算→下单"归入 `checkout`) |
| 179 | +- 命名规范:`testpilot/<模块名>.testpilot.json` |
| 180 | +- 每个蓝本独立可运行,场景开头都要从 `navigate` 开始 |
190 | 181 | - 全量测试时通过 `run_blueprint_batch` 批量运行所有蓝本 |
191 | 182 |
|
192 | 183 | ## 规则13:蓝本增量修改(省Token) |
|
0 commit comments