用途:为 Bruno 请求添加可读、稳健、适合本地与 CI 运行的测试和断言,避免过度拟合模拟数据或泄露密钥。
主要能力:生成状态码、必填字段、类型检查、错误响应结构等核心测试;在需要时添加请求链式调用,用 bru.setVar 保存 token、ID、游标等运行时变量;补充边界用例,如缺失字段、非法数据、未授权、404、空数组、分页边界、写接口的幂等与清理。测试使用 Bruno 的 Chai expect 风格,推荐 res.getStatus()、res.getBody()、res.getHeader()、res.getResponseTime(),避免脆弱的整体响应体精确比较。
使用方式:先收集或推断现有请求文件、端点描述、期望状态码与响应结构、示例响应体、测试类型(冒烟、回归、契约/Schema、边界)以及是否需要保存变量。可参考 references/testing-patterns.md 与 references/script-api-quick-reference.md。当用户提供示例 JSON 响应时,可用 python scripts/generate_tests.py --sample response.json --status 200 --name "Get User" --out tests.js 生成起始测试脚本;该脚本默认不覆盖已有 --out 文件,除非加 --force。
限制与安全:不执行测试或发起真实请求,除非用户明确同意;对非本地 base URL 需提示确认;破坏性写测试需明确标注并附清理指引,且不自动运行。不得把真实 token、API key、密码、cookie 等复制进断言或 .bru 文件,应使用 {{var}} 或 bru.getSecretVar 并只断言其形态;不得硬编码真实 PII,应断言类型或正则。生成脚本须为合法 JavaScript 并符合 OpenCollection 测试 Schema,无法确认时需标注人工复核。不臆造文档、代码、Schema 或示例中未体现的字段。