Install
openclaw skills install @spiderzhcl/skill-stress-testWorkBuddy Skill 发布前压测工具。基于「边界输入 / 输出一致性 / 并发连续」三板斧,系统化检测 Skill 的健壮性、稳定性和用户体验。
openclaw skills install @spiderzhcl/skill-stress-test一句话:在你把 Skill 交给用户之前,先用它折腾一遍自己。
基于"8点虾聊AI"公众号文章《我的AI助手,被一个引号干趴了》中的方法论实现。
压测不是写单元测试,不需要懂代码。 本质上就是——用你预想不到的方式使劲折腾你的 Skill,看它什么时候撑不住。
每次新 Skill 上线前,至少花 30 分钟 过一遍这三板斧。
明确你要压测的目标 Skill 名称,例如 ppt-nano-master、wx-article-qa 等。
按顺序执行三轮压测,每一轮产出检测报告。
把所有"极端输入"全部试一遍。
| # | 输入类型 | 测试用例 | 预期表现 |
|---|---|---|---|
| 1 | 空内容 | 只发一个空格 / 直接回车 | 有明确提示,不闷头处理 |
| 2 | 超长内容 | 粘贴 2000 字以上的文章 | 截断或分段,不超时报错 |
| 3 | 特殊字符 | 输入 【】《》「」%&*#@ 等 | 不崩溃,正常过滤或转义 |
| 4 | 非预期格式 | 本应传文字,传了图片/链接/代码 | 有格式检测,有友好提示 |
| 5 | 乱码/HTML | 粘贴 <br> 等 HTML 片段 | 不把原始标签吐给用户 |
AI 的天然缺陷——相同的输入,不一定给出相同的输出。付费用户产品必须格式稳定。
| 结果 | 说明 |
|---|---|
| ✅ 5 次格式完全一致 | 合格 |
| ⚠️ 轻微格式差异(如序号有无) | 需加强 SKILL.md 格式约束 |
| ❌ 输出结构完全不同 | 必须修复,关键输出段加 JSON 约束 |
在目标 Skill 的 SKILL.md 中添加更严格的格式约束:
必须输出 JSON,字段包含 ...输出格式:每行一条,编号 1-5字段缺失扣分/报错真实用户发消息不会等你。他们会在 5 秒内连发 3 条,会在 API 响应慢的时候不停重发。
| 结果 | 说明 |
|---|---|
| ✅ 全部正确响应,不乱序 | 合格 |
| ⚠️ 偶尔超时但有兜底提示 | 可接受,优化响应速度 |
| ❌ 回复张冠李戴 / 无限沉默 | 必须修!用户 A 的内容不能返回用户 B 的结果 |
正在处理,请稍候……
当前繁忙,请重试……
每次新 Skill 上线前,对着这张清单勾一遍:
本 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 方法论源自: