Skill 发布前压测工具 🛡️
一句话:在你把 Skill 交给用户之前,先用它折腾一遍自己。
基于"8点虾聊AI"公众号文章《我的AI助手,被一个引号干趴了》中的方法论实现。
核心原则
压测不是写单元测试,不需要懂代码。 本质上就是——用你预想不到的方式使劲折腾你的 Skill,看它什么时候撑不住。
每次新 Skill 上线前,至少花 30 分钟 过一遍这三板斧。
使用流程
第一步:指定目标 Skill
明确你要压测的目标 Skill 名称,例如 ppt-nano-master、wx-article-qa 等。
第二步:运行三把斧头
按顺序执行三轮压测,每一轮产出检测报告。
🪓 第一斧:边界输入压测
把所有"极端输入"全部试一遍。
测试项目
| # | 输入类型 | 测试用例 | 预期表现 |
|---|---|---|---|
| 1 | 空内容 | 只发一个空格 / 直接回车 | 有明确提示,不闷头处理 |
| 2 | 超长内容 | 粘贴 2000 字以上的文章 | 截断或分段,不超时报错 |
| 3 | 特殊字符 | 输入 【】《》「」%&*#@ 等 |
不崩溃,正常过滤或转义 |
| 4 | 非预期格式 | 本应传文字,传了图片/链接/代码 | 有格式检测,有友好提示 |
| 5 | 乱码/HTML | 粘贴 <br> 等 HTML 片段 |
不把原始标签吐给用户 |
操作步骤
- 逐个测试上述 5 种输入类型
- 观察目标 Skill 的反应
- 记录每一项:✅ 通过 / ❌ 失败 / ⚠️ 部分通过
- 对失败项:明确修复方案
🪓 第二斧:输出一致性压测
AI 的天然缺陷——相同的输入,不一定给出相同的输出。付费用户产品必须格式稳定。
操作步骤
- 同一条输入,连发 5 次
- 检查每次输出的结构是否一致
- 检查字段是否完整(无缺失)
- 检查有无乱码或截断
判定标准
| 结果 | 说明 |
|---|---|
| ✅ 5 次格式完全一致 | 合格 |
| ⚠️ 轻微格式差异(如序号有无) | 需加强 SKILL.md 格式约束 |
| ❌ 输出结构完全不同 | 必须修复,关键输出段加 JSON 约束 |
常见修复
在目标 Skill 的 SKILL.md 中添加更严格的格式约束:
- 使用
必须输出 JSON,字段包含 ... - 使用
输出格式:每行一条,编号 1-5 - 使用
字段缺失扣分/报错
🪓 第三斧:并发连续压测
真实用户发消息不会等你。他们会在 5 秒内连发 3 条,会在 API 响应慢的时候不停重发。
操作步骤
- 准备 5-8 条不同内容的测试输入
- 在 10 秒内 连续发送
- 检查返回结果是否:乱序、串号、超时、丢消息
- 如果 Skill 调用了外部 API,重点检查超时兜底
判定标准
| 结果 | 说明 |
|---|---|
| ✅ 全部正确响应,不乱序 | 合格 |
| ⚠️ 偶尔超时但有兜底提示 | 可接受,优化响应速度 |
| ❌ 回复张冠李戴 / 无限沉默 | 必须修!用户 A 的内容不能返回用户 B 的结果 |
超时兜底模板
正在处理,请稍候……
当前繁忙,请重试……
✅ 发布前检查清单
每次新 Skill 上线前,对着这张清单勾一遍:
边界输入
- 空内容 / 只有空格
- 超长内容(1000 字以上)
- 特殊字符(中英文标点混排)
- HTML / Markdown 代码片段
- 非预期格式(如图片传给文字 Skill)
输出一致性
- 同一输入连测 5 次,输出格式一致
- 字段完整,无缺失
- 无乱码 / 截断
并发稳定性
- 10 秒内连发 5 条,不乱序
- API 超时场景下,有兜底提示
- 高频使用下,响应时间可接受
用户体验
- 错误场景有友好提示(不能是技术报错)
- 边界情况下,用户知道"下一步怎么做"
自动化脚本
本 Skill 附带自动化压测脚本 scripts/stress-test.py,可以快速生成边界测试用例和执行一致性检测。运行方式:
# 生成边界测试用例
python scripts/stress-test.py generate-boundary
# 输出一致性检测(相同输入发 N 次)
python scripts/stress-test.py check-consistency --skill-name <skill_name> --input "你的测试输入" --count 5
报告格式
每次压测完成后,输出如下报告:
## 压测报告
**目标 Skill**:<skill_name>
**测试日期**:<date>
**测试人**:<name>
### 🪓 第一斧:边界输入(5/5 项)
- [x] 空内容 → ✅
- [x] 超长内容 → ✅
- [x] 特殊字符 → ✅
- [x] 非预期格式 → ✅
- [x] HTML/乱码 → ✅
### 🪓 第二斧:输出一致性
- 5 次结果格式一致:✅ / ❌
- 字段完整:✅ / ❌
- 无乱码截断:✅ / ❌
### 🪓 第三斧:并发连续
- 不乱序:✅ / ❌
- 有超时兜底:✅ / ❌
### 结论
- 🟢 可发布 / 🟡 需修复后复查 / 🔴 不可发布
参考
本 Skill 方法论源自:
- 公众号:8点虾聊AI
- 文章:《我的AI助手,被一个引号干趴了》
