关于 configure-load-tests
用于审查和配置项目负载与性能测试的技能,适合搭建压力测试、基准测试和容量规划的团队。它检查场景覆盖、阈值、报告和 CI 集成,并可按需修复配置。
主要功能
- 01检测 k6、Artillery 和 Locust 配置
- 02检查冒烟、负载、压力、突发和耐久测试
- 03审查阈值、环境与报告设置
- 04配置测试脚本和 CI 工作流
- 05支持仅检查和自动修复
适用场景
- 01评估现有项目的负载测试覆盖
- 02在 CI 中设置性能回归检查
- 03将项目迁移到其他负载测试框架
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill configure-load-tests安装后在 Claude Code 中输入/configure-load-tests确认已加载。
附带文件REFERENCE.md
详细介绍
/configure:load-tests
检查并配置负载与性能测试基础设施,用于压力测试、基准测试和容量规划。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下采用其他方式…… |
|---|---|
| 从头开始设置负载测试基础设施(k6、Artillery、Locust) | 运行现有负载测试——直接使用 k6 run 或 artillery run |
| 审查当前负载测试覆盖情况(冒烟、压力、突发、耐久) | 编写单元或集成测试——使用 /configure:tests |
| 添加用于检测性能回归的 CI/CD 流水线 | 分析应用的内存用量——使用 /configure:memory-profiling |
| 在负载测试框架之间迁移 | 对单个函数进行基准测试——使用特定语言的基准测试工具 |
| 确保负载测试阈值和报告配置正确 | 测试 API 契约——使用 /configure:api-tests |
上下文
- 项目根目录:!
pwd - k6 测试:!
find . -maxdepth 3 \( -name '*.k6.js' -o -name '*.k6.ts' \) - 负载测试目录:!
find . -maxdepth 2 -type d -name 'load' - Artillery 配置:!
find . -maxdepth 2 -name 'artillery.yml' -o -name 'artillery.yaml' - Locust 文件:!
find . -maxdepth 2 -name 'locustfile.py' - 包文件:!
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' \) - CI 工作流:!
find . -path '*/.github/workflows/*' -maxdepth 3 -name '*load*' -o -name '*perf*' - k6 二进制文件:!
k6 version
参数
从 $ARGUMENTS 中解析:
--check-only:报告负载测试合规状态,不做任何修改--fix:自动应用所有修复,无需提示--framework <k6|artillery|locust>:覆盖检测到的框架
框架选择建议:
| 框架 | 最适用于 |
|---|---|
| k6(推荐) | 复杂场景、CI/CD 集成、TypeScript 支持 |
| Artillery | 快速配置 YAML、简单的 API 测试 |
| Locust | Python 团队、分布式测试、自定义行为 |
执行
执行此负载测试配置检查:
第 1 步:检测现有负载测试基础设施
读取上面的上下文值并识别:
| 指标 | 组件 | 状态 |
|---|---|---|
k6 二进制文件或 @grafana/k6 | k6 | 已安装 |
*.k6.js 或 load-tests/ | k6 测试 | 已存在 |
artillery.yml | Artillery 配置 | 已存在 |
locustfile.py | Locust 测试 | 已存在 |
.github/workflows/*load* | CI 集成 | 已配置 |
如果设置了 --framework 标志,则无论检测结果如何,都使用指定框架。
第 2 步:分析当前负载测试设置
检查设置覆盖是否完整:
**安装:**已安装 k6(二进制文件或 npm);如适用,支持 TypeScript。
**测试场景:**检查现有测试类型:
- 冒烟测试(最低负载验证)
- 负载测试(正常负载)
- 压力测试(峰值负载)
- 突发测试(突发流量)
- 耐久测试(长时间运行)
**配置:**阈值、特定环境的配置、数据文件。
**报告:**控制台输出、JSON/HTML 报告、趋势跟踪。
**CI/CD:**GitHub Actions 工作流、定期运行、PR 门禁。
第 3 步:生成合规报告
输出合规报告,涵盖:
- 框架安装状态和版本
- 测试场景覆盖情况(冒烟、负载、压力、突发、耐久)
- 阈值配置(响应时间、错误率)
- 环境配置(预发布、生产)
- CI/CD 集成(工作流、计划、PR 门禁)
- 报告设置(控制台、JSON、HTML、Grafana Cloud)
最后汇总问题总数并给出建议。
如果设置了 --check-only,则在此处停止。
步骤 4:配置负载测试框架(如果指定了 --fix 或用户确认)
使用 REFERENCE.md 中的模板应用配置:
- 安装 k6(或所选框架)
- 创建目录结构:
tests/load/{config,scenarios,helpers,data} - 创建包含共享阈值和标头的基础配置
- 创建测试场景(冒烟、负载、压力、突增)
- 添加用于运行测试的 npm/package 脚本
步骤 5:配置 CI/CD 集成
- 创建
.github/workflows/load-tests.yml,其中包含:- 在 PR 上运行冒烟测试
- 通过 workflow_dispatch 运行完整负载测试
- 每周定期运行
- 上传结果制品
- 使用 k6-reporter 添加 HTML 报告
- 使用 REFERENCE.md 中的模板
步骤 6:更新标准跟踪
更新 .project-standards.yaml:
components:
load_tests: "2025.1"
load_tests_framework: "k6"
load_tests_scenarios: ["smoke", "load", "stress"]
load_tests_ci: true
load_tests_thresholds: true
步骤 7:打印最终合规报告
打印摘要,列出已安装的框架、已创建的场景、已添加的脚本、已配置的 CI/CD、已设置的阈值,以及给用户的后续步骤。
有关详细的 k6 测试脚本、CI 工作流模板和报告配置,请参阅 REFERENCE.md。
Agent 优化
| 场景 | 命令 |
|---|---|
| 快速合规检查 | /configure:load-tests --check-only |
| 自动修复所有问题 | /configure:load-tests --fix |
| 快速运行冒烟测试 | k6 run --vus 1 --duration 10s tests/load/scenarios/smoke.k6.js |
| 以 JSON 格式输出结果 | k6 run --out json=results.json tests/load/scenarios/load.k6.js |
| 检查 k6 版本 | k6 version |
| 列出测试场景 | find tests/load -name '*.k6.js' -type f |
标志
| 标志 | 说明 |
|---|---|
--check-only | 报告状态,但不提供修复方案 |
--fix | 无需提示,自动应用所有修复 |
--framework <framework> | 指定其他框架(k6、artillery、locust) |
示例
# Check compliance and offer fixes
/configure:load-tests
# Check only, no modifications
/configure:load-tests --check-only
# Auto-fix all issues
/configure:load-tests --fix
# Force specific framework
/configure:load-tests --fix --framework artillery
错误处理
- 未安装 k6:提供适用于该平台的安装说明
- 没有目标 URL:提示配置 BASE_URL
- Docker 不可用:建议在本地启动应用
- 缺少 CI 密钥:提供 k6 Cloud 的设置说明
另请参阅
/configure:tests- 单元测试配置/configure:integration-tests- 集成测试/configure:api-tests- API 契约测试/configure:all- 运行所有合规检查- k6 文档:https://k6.io/docs
- k6 示例:https://github.com/grafana/k6/tree/master/examples
- Grafana k6 Cloud:https://grafana.com/products/cloud/k6
评论
支持 Markdown