SuperAPI AI 工具集

resilience-review

编程与开发

查看项目

更新于 10-16 09:28

技能介绍

用途:评估应用在异常条件下的行为,包括错误处理、优雅降级、API 契约合规、空数据与边界状态、失败恢复,重点测试真实用户会遇到的非理想路径(网络失败、API 错误、慢连接、数据缺失)。

适用时机:面向用户的新功能上线前;新增 API 集成或数据源后;可靠性要求高的场景(医疗、金融、电商结算);发生未处理错误导致的生产事故后;从原型转向生产质量时。引用标准包括 Google SRE、Netflix 混沌工程、OWASP 错误处理、Nielsen Norman Group 错误信息可用性。

工作流程分 5 个阶段:Educate(说明韧性意义)、Scope(从代码库自动检测 API 调用、错误边界、加载状态、重试逻辑、离线支持等,并向用户询问目标 URL、关键用户流程、关键 API 依赖、已知脆弱区域)、Analyze(用 new_session 并设置 record_evidence: true 开启浏览器会话,执行各检查类别)、Report(生成结构化报告)、Remediate(修复指导与 YAML 回归测试)。

检查类别共 5 类:ERR 错误处理(500 显示友好信息、超时状态、404 页面、JS 错误不崩溃、错误信息可操作、不泄露技术细节、表单校验、可重试、并发错误、不记录 PII);DEG 优雅降级(禁用 JS、慢速 3G、第三方脚本失败、离线状态、图片/字体失败回退、特性检测);EDGE 空与边界(空数据提示、分页零结果、长文本溢出、特殊字符、大数据量、重复提交、前进后退状态、刷新保持、多标签会话、超大文件上传);API 契约与数据处理(各 HTTP 错误码、null/undefined、空集合、错误类型、加载状态、竞态、429 限流、会话中认证过期);REC 恢复与沟通(自动重试、手动重试、进度不丢失、降级提示、恢复操作、后台状态指示)。

主要用法:在浏览器会话中使用 page.route() 拦截请求模拟故障,例如: // Example: Mock API 500 error await page.route('/api/', route => { route.fulfill({ status: 500, body: JSON.stringify({ error: 'Internal Server Error' }) }); }); 用 get_browser_console_logs 检查 JS 错误与未捕获的 Promise 拒绝;用 CDP 模拟网络条件;禁用 JS 验证基础内容。

输出:报告保存到 shiplight/reports/resilience-review-{date}.md,含总分、各分类评分、失败矩阵与带证据的发现;置信度低于 50% 不报告。修复阶段给出行号级问题定位、当前代码、问题说明与修复步骤,并生成 YAML 回归测试保存到 shiplight/tests/resilience-review.test.yaml。结束时用 close_session 关闭会话,并用 generate_html_report 输出证据。

限制:依赖浏览器故障注入与代码库自动检测;白屏一律视为严重发现;边缘案例测试通常单位时间发现最多 bug;具体价格、平台支持范围、安装步骤等资料暂未提供。