QA测试
回归测试
质量保障
OpenClaw 生态正在爆炸式增长——44万+ downloads, 2000+ Skills。但 Skill 的质量参差不齐:
没有测试链的 Skill,就像没有安全气囊的车。
# skills/tests/test_web_search.yaml
name: "Web Search Skill 单元测试"
tests:
- name: "基础搜索功能"
input: "OpenClaw 最新版本"
expected:
- output_contains: "openclaw"
- output_type: "json"
- required_fields: ["title", "url", "snippet"]
- min_results: 3
- name: "空查询处理"
input: ""
expected:
- error_type: "validation_error"
- error_message_contains: "请输入搜索关键词"
- name: "超时处理"
input: "a" * 1000
timeout: 5000ms
expected:
- error_type: "timeout_error"
- logs_contain: "查询过长"
# 运行单个技能测试
openclaw skill test --skill web-search --tests tests/web_search.yaml
# 输出
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OpenClaw Skill Test Runner
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Skill: web-search (v1.2.0)
Running 3 tests...
✓ PASS 基础搜索功能 (1.2s)
✓ PASS 空查询处理 (0.3s)
✗ FAIL 超时处理 (5.1s)
→ 期望: timeout_error
→ 实际: validation_error
──────────────────────────────────────
2/3 passed | 1 failed
# 运行所有技能全量测试
openclaw skill test --all --parallel 4
# 24个技能,6秒完成全量测试
# regression-suite.yaml
name: "每日回归测试"
schedule: "0 6 * * *" # 每天早上6点
suites:
- name: "核心功能回归"
skills:
- web-search
- web-fetch
- content-writer
test_cases:
- baseline: "2026-05-15" # 基准版本
- compare_output: true # 与基准对比输出差异
- drift_threshold: 15% # 输出变化超过15%触发告警
- name: "性能基准回归"
skills:
- web-fetch
- code-analyzer
metrics:
- response_time: max 3000ms # 响应时间不超过3秒
- token_efficiency: min 65% # token利用率不低于65%
- error_rate: max 1% # 错误率不超过1%
- name: "API 兼容性测试"
skills:
- openclaw-web-search
- openclaw-github-automation
check:
- "所有外部 API 端点可访问"
- "返回格式与文档一致"
- "认证令牌未过期"
# 使用 AI 做智能断言
test:
- name: "内容质量检查"
input: "写一篇关于 OpenClaw 的介绍"
ai_assess:
- criteria: "内容是否包含OpenClaw核心功能"
- criteria: "语言风格是否符合目标受众"
- criteria: "是否有清晰的结构和分段"
score_threshold: 0.85 # 评分低于0.85标记为失败
# 版本间输出差异对比
openclaw skill diff \
--skill content-writer \
--from-version 1.1.0 \
--to-version 1.2.0 \
--test-cases tests/suite.yaml
# 差异报告示例
# ⚠️ 输出变化检测:
# - 新增: "# 小节标题" (版本1.2.0新增了Markdown标题)
# - 移除: "------------" (分隔线被移除)
# - 变化: 平均响应时间 1.2s → 0.8s ✅
# GitHub Actions 集成
# .github/workflows/skill-qa.yml
name: Skill QA Pipeline
on:
push:
paths: ["skills/**", "tests/**"]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Skill Tests
run: |
openclaw skill test --all --junit-output test-results.xml
- name: Check Performance Regression
run: |
openclaw skill benchmark --compare-to main
- name: Publish Results
uses: dorny/test-reporter@v1
if: always()
with:
name: Skill Test Results
path: test-results.xml
reporter: java-junit
妙趣AI | OpenClaw 教程合集 | 最后更新:2026-05-22