mcpField
P
performance-testing

performance-testing

github.com/aj-geddes测试与质量374606 次安装34 周前更新
代码仓库

关于 performance-testing

用于规划性能测试并分析系统负载表现的参考技能,涵盖 API、数据库和算法测量,并提供多种测试工具的指南。

主要功能

  1. 01API 负载与延迟测试
  2. 02数据库查询性能分析
  3. 03k6、JMeter、pytest-benchmark 和 JMH 指南
  4. 04监控与瓶颈分析

适用场景

  1. 01验证响应时间和吞吐量要求
  2. 02测试并发用户承载能力
  3. 03比较优化前后的性能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill performance-testing

安装后在 Claude Code 中输入/performance-testing确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
apache-jmeter.md
database-query-performance.md
jmh-for-java-benchmarking.md
k6-for-api-load-testing.md
pytest-benchmark-for-python.md
real-time-monitoring.md
scripts/
validate-api.sh
templates/
api-scaffold.yaml

详细介绍

性能测试

目录

概述

性能测试用于衡量系统在各种负载条件下的表现,包括响应时间、吞吐量、资源利用率和可扩展性。它有助于发现瓶颈、验证性能要求,并确保系统能够处理预期负载。

适用场景

  • 验证响应时间要求
  • 衡量 API 吞吐量和延迟
  • 测试数据库查询性能
  • 发现性能瓶颈
  • 比较算法效率
  • 比较优化前后的性能
  • 验证缓存效果
  • 测试并发用户承载能力

快速入门

最简可用示例:

// load-test.js
import http from "k6/http";
import { check, sleep } from "k6";
import { Rate, Trend } from "k6/metrics";

// Custom metrics
const errorRate = new Rate("errors");
const orderDuration = new Trend("order_duration");

// Test configuration
export const options = {
  stages: [
    { duration: "2m", target: 10 }, // Ramp up to 10 users
    { duration: "5m", target: 10 }, // Stay at 10 users
    { duration: "2m", target: 50 }, // Ramp up to 50 users
    { duration: "5m", target: 50 }, // Stay at 50 users
    { duration: "2m", target: 0 }, // Ramp down to 0
  ],
  thresholds: {
    http_req_duration: ["p(95)<500"], // 95% of requests under 500ms
    http_req_failed: ["rate<0.01"], // Error rate under 1%
    errors: ["rate<0.1"], // Custom error rate under 10%
  },
};

// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
k6 用于 API 负载测试k6 用于 API 负载测试
Apache JMeterApache JMeter
用于 Python 的 pytest-benchmark用于 Python 的 pytest-benchmark
用于 Java 基准测试的 JMH用于 Java 基准测试的 JMH
数据库查询性能数据库查询性能
实时监控实时监控

最佳实践

✅ 应该做
  • 明确性能要求(SLA)
  • 使用符合实际情况的数据量进行测试
  • 监控资源利用率
  • 测试缓存效果
  • 使用百分位数(P95、P99),而非平均值
  • 测量前先预热
  • 在接近生产环境的环境中运行测试
  • 发现并修复 N+1 查询问题
❌ 不应该做
  • 只使用小型数据集进行测试
  • 忽略内存泄漏
  • 在不符合实际情况的环境中测试
  • 只关注平均响应时间
  • 跳过数据库索引分析
  • 只测试正常流程
  • 忽略网络延迟
  • 未考虑统计显著性就进行比较

评论

支持 Markdown