feat: update tester
This commit is contained in:
@@ -35,4 +35,5 @@ python3 <skill-dir>/scripts/catalog.py next-id --root <root> --category <CAT>
|
||||
- 为了能在默认风险下跑而把 `risk` 改低
|
||||
- 一次塞进无关的一批用例
|
||||
- 手改 `runs/` 冒充执行记录
|
||||
- 手改 `cases.csv`(必须从 `cases/*.yaml` 生成)
|
||||
- 手改 `cases.csv`(必须从 `cases/*.yaml` 生成;`last_*` 列来自最近一次 `runs/*.yaml`)
|
||||
- 手改 `runs/*.csv`(必须从对应 yaml 用 `generate_run_csv.py` 生成)
|
||||
|
||||
@@ -35,7 +35,7 @@ python3 <skill-dir>/scripts/catalog.py select --root <root> \
|
||||
|
||||
## 4. 执行
|
||||
|
||||
按 select 返回的顺序,一条一条来。默认失败即停(产品 `fail` 或探测到的不安全状态)。用户说继续 / keep-going 才往后跑。
|
||||
按 select 返回的顺序,一条一条来。select 按 `catalog.yaml` 的 `categories` 顺序,同一分类内按该 yaml 列表顺序(不是文件名字母序)。默认失败即停(产品 `fail` 或探测到的不安全状态)。用户说继续 / keep-going 才往后跑。
|
||||
|
||||
**script**
|
||||
|
||||
@@ -57,7 +57,13 @@ python3 <skill-dir>/scripts/catalog.py run-script --root <root> --id <id>
|
||||
|
||||
每条:`id, result, evidence, notes`。`result` 只能是 `pass` / `fail` / `environment-fail` / `skipped`。
|
||||
|
||||
写入 `.pouch/tester/runs/<UTC时间>-<范围>.yaml`,包含筛选条件、HOST 是否已设(可以写 HOST 值)、session 是否复用、逐条结果。
|
||||
写入 `.pouch/tester/runs/<UTC时间>-<范围>.yaml`,包含筛选条件、HOST 是否已设(可以写 HOST 值)、session 是否复用、逐条结果。立刻用同一快照生成 CSV,不要手改:
|
||||
|
||||
```bash
|
||||
python3 <skill-dir>/scripts/generate_run_csv.py --root <root> --run <yaml>
|
||||
```
|
||||
|
||||
这会写出 `.pouch/tester/runs/<UTC时间>-<范围>.csv`(`executed=yes|no`),并刷新 `cases.csv` 的 `last_result` / `last_executed` 列。对话里两个路径都报。
|
||||
|
||||
对话报告:
|
||||
|
||||
@@ -70,6 +76,7 @@ session: browser=复用|新开|未用;mobile=…
|
||||
计数: pass=N fail=N environment-fail=N skipped=N
|
||||
失败: id + 一句证据
|
||||
跳过: id + 原因
|
||||
快照: .pouch/tester/runs/<file>
|
||||
快照: .pouch/tester/runs/<file>.yaml
|
||||
成绩单: .pouch/tester/runs/<file>.csv
|
||||
下一步: 一句话
|
||||
```
|
||||
|
||||
@@ -7,15 +7,16 @@ catalog.yaml 分类、风险阶梯、session、变量
|
||||
local.yaml.example HOST 与授权开关模板
|
||||
local.yaml 本机覆盖,不提交
|
||||
cases/<category>.yaml 一个分类一个文件(执行源)
|
||||
cases.csv 给人看的扁平清单;skill 的 generate_cases_csv.py 读 cases/*.yaml 生成
|
||||
runs/ 每次运行快照
|
||||
cases.csv 给人看的扁平清单;generate_cases_csv.py 读 cases/*.yaml,并拼最近一次运行的 last_* 列
|
||||
runs/*.yaml 每次运行快照(执行源)
|
||||
runs/*.csv 同一次运行的成绩单;generate_run_csv.py 从对应 yaml 生成
|
||||
```
|
||||
|
||||
## catalog.yaml
|
||||
|
||||
| 字段 | 含义 |
|
||||
|------|------|
|
||||
| `categories` | `{id, title}` 列表,id 与 `cases/<id小写>.yaml` 对应 |
|
||||
| `categories` | `{id, title}` 列表,id 与 `cases/<id小写>.yaml` 对应;列表顺序即 `select` / 执行顺序 |
|
||||
| `risks` | 从低到高,只能是 `safe` → `act` → `harm` 的一段,且以 `safe` 开头。含义见 [levels.md](levels.md) |
|
||||
| `default_max_risk` | 未指定时的运行上限,必须是 `risks` 里的值 |
|
||||
| `vars` | 可替换变量,如 `API_BASE: http://${HOST}:8095` |
|
||||
@@ -36,7 +37,7 @@ runs/ 每次运行快照
|
||||
| `category` | 是 | 必须等于文件声明的 category |
|
||||
| `title` | 是 | 短名 |
|
||||
| `what` | 是 | 一句可观察的「测什么」 |
|
||||
| `status` | 是 | `active` / `retired` |
|
||||
| `status` | 是 | `active` / `pending` / `retired`。`pending` = 暂缓,仍保留在目录里但不执行,原因写在 `notes` |
|
||||
| `suite` | 是 | `smoke` / `full` / `slow`,判定见 [levels.md](levels.md) |
|
||||
| `risk` | 是 | `safe` / `act` / `harm` |
|
||||
| `gate` | 否 | 项目细分闸,必须在 catalog `gates` 里 |
|
||||
|
||||
Reference in New Issue
Block a user