用途
华为云技能测试器是一个独立、可重复的华为云技能测试框架,不依赖 skill-creator,可测试任意已有的华为云技能。它聚焦真实环境功能测试与多技能编排场景,提供“三轨八阶段”标准化测试流水线。
主要能力
框架采用三层结构,共八个阶段(阶段0~6为执行,阶段7为最终报告):
- 第一层:单技能单元测试(阶段0~4)——逐项验证每个技能:安装、特性提取、技术调研、测试用例生成、执行。
- 第二层:集成测试(阶段5~6)——多技能编排场景推导 + 端到端真实环境流程验证。
- 第三层:最终报告(阶段7)——合并所有阶段输出为统一报告。
各阶段要点:
- 阶段0 安装验证:目录完整性(必备三件套 SKILL.md、references 文件夹、iam-policies 文档,scripts 文件夹为软性要求),安装/卸载/重装(同路径/符号链接保护)。
- 阶段1 特性提取:metadata/triggers/commands/capabilities/resource_types + doc_checks(引用一致性、禁止 .bak/.template 文件)。
- 阶段2 技术调研:CLI→SDK→API 三级可用性;纯本地工具自动标记 not_applicable。
- 阶段3 测试用例生成:正向 + 边界(limit=1)+ 负向(未知参数)用例;占位符替换;模板/交互式命令过滤。
- 阶段4 执行:自动执行 + 输出质量判定;负向用例错误质量;文档缺口分析;缺失依赖标记。
- 阶段5 编排:多技能触发冲突扫描 + 数据流候选;单技能降级自检。
- 阶段6 全流程:多技能场景推导;单技能降级全功能闭环(创建→查询→更新→删除)。
- 阶段7 报告:合并阶段0~6,输出 verdict + pass_rate + issues_found + 各阶段原因,生成 test-report.json/md。
核心设计原则:链式校验(执行前检查上一阶段 JSON 是否存在,缺失则拒绝执行)、防代理绕过(写操作逐项需用户确认,不允许自动绕过门禁)、三轨分层(层间设清晰门禁,第一层完成后才能进入第二层)、批量可重复(支持 --skills "skill-a,skill-b" 或 --all-installed)、回退策略(仅1个技能时阶段5/6自动降级为单技能生命周期测试;同级自动扫描默认开启,可用 --no-siblings 关闭)、标准化 JSON 输出、真实环境优先(无模拟)。
使用方式
前置条件:
- hcloud CLI 已安装并认证(用于第二层 CLI 模式测试)。
- Python 3.8+ 与 huaweicloudsdk 包(用于 SDK 模式测试)。
- 华为云 AK/SK——自动扫描所有以 HUAWEI / HW / HWC 为前缀的环境变量。若缺失,框架向 stderr 输出环境变量设置模板并以退出码 77 退出;绝不能在聊天中要求用户输入 AK/SK,用户需在 shell 配置中离线设置后重跑。
- 目标技能须位于 $SKILL_INSTALL_DIR/ 下或用户指定路径。
- jq 命令(所有 JSON 处理依赖它)。
- skill-quality-cli——由 bash scripts/ensure_cli.sh 确保(幂等,已存在则跳过)。升级需手动运行 skill-quality-cli upgrade。设置 SKILL_QUALITY_REPORT=0 可禁用遥测报告。
核心命令:
# 指定技能运行完整流水线
bash scripts/run-test-pipeline.sh --skills "huawei-cloud-bss-voucher-manage"
# 指定多个技能(逗号分隔)
bash scripts/run-test-pipeline.sh --skills "huawei-cloud-bss-voucher-manage, huawei-cloud-ecs-manage"
# 扫描所有已安装
bash scripts/run-test-pipeline.sh --all-installed
# 从特定阶段开始(仅恢复场景)
bash scripts/run-test-pipeline.sh --skills "bss-voucher" --phase 4
# 全新模式
bash scripts/run-test-pipeline.sh --skills "bss-voucher" --fresh
单阶段运行(调试):
bash scripts/tier1/phase-0-install-check.sh --skill "huawei-cloud-bss-voucher-manage"
bash scripts/tier1/phase-1-skill-analysis.sh --skill "huawei-cloud-bss-voucher-manage"
bash scripts/tier2/phase-5-orchestration.sh --skills "skill-a, skill-b"
bash scripts/tier3/phase-7-final-report.sh --skills "skill-a, skill-b"
多技能编排与端到端:
bash scripts/tier2/phase-5-orchestration.sh --skills "ecs-manage, vpc-manage, eip-manage"
bash scripts/tier2/phase-6-full-flow.sh --skill "huawei-cloud-rds-intelligent-service"
主要参数:--skills(与 --all-installed 互斥)、--all-installed、--phase、--fresh(归档而非删除已有 phase-*.json)、--output、--skill-path、--no-siblings、--sibling-limit <N>。
环境变量:SKILL_INSTALL_DIR(自动检测 ~/.agents/skills → ~/.hermes/skills → 默认)、SKILL_PATH_HERMES(旧别名)、SKILL_INSTALL_CMD(默认 hermes skills)、ALLOW_WRITES(默认0,为1时阶段4/6写用例真实执行)、HUAWEI_REGION(默认 cn-north-4)、HUAWEI_ACCESS_KEY / HUAWEI_SECRET_KEY。
适用场景
- 对已有华为云技能进行独立、可重复的功能测试。
- 单技能安装、特性、技术可用性与真实环境执行验证。
- 多技能编排场景推导与端到端资源生命周期验证。
- 生成标准化测试报告用于审计与回归对比。
限制
- 三轨八阶段严格按顺序执行,链式校验防止跳过。
- API 端点严禁推断,只能从 SDK _http_info 或 API Explorer 获取。
- 凭据从环境变量读取,禁止硬编码;缺失时退出码 77,不得静默跳过需凭据的步骤。
- 测试中创建的资源必须跟踪,若有遗留需输出手动清理说明。
- 编排场景自动推导,执行前需用户审阅确认;写操作需逐步用户确认。
- 多技能阶段6当前仅推导场景计划,不真实执行;单技能阶段6运行真实创建→查询→更新→删除闭环。
- 测试产物保存在被测技能同级目录 <skill-name>-test-files/,跨运行保留,不自动清理。
输出格式
阶段0~6输出 phase-N-summary.json 到 <skill-name>-test-files/phases/;阶段7合并为 <skill-name>-test-files/reports/report-<timestamp>/test-report.{json,md}。阶段5和6额外输出含真实 CLI/SDK 响应的场景执行日志。