mcpField
P
performance-testing

performance-testing

github.com/404kidwiz测试与质量125 次安装
代码仓库

关于 performance-testing

performance-testing 是一项指导应用、API 和基础设施性能测试的技能,涵盖负载、压力和耐久性测试。内容还包括指标分析、瓶颈定位及测试自动化。

主要功能

  1. 01负载、压力与耐久性测试
  2. 02工作负载和场景设计
  3. 03延迟与吞吐量分析
  4. 04资源与瓶颈分析
  5. 05性能回归自动化

适用场景

  1. 01按 SLA 测试 API 延迟
  2. 02在流量高峰前测定容量上限
  3. 03通过长时间测试发现内存泄漏
  4. 04在 CI/CD 中加入性能检查

安装

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

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill performance-testing

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

详细介绍

性能测试技能

目的

提供全面的性能测试专业知识,专攻应用、API 和基础设施系统的负载测试、压力测试和耐久性测试。验证系统在各种负载条件下的行为,并找出容量限制。

适用场景

  • 开展负载测试,模拟并发用户
  • 执行压力测试,找出系统崩溃点
  • 运行耐久性测试,检测内存泄漏
  • 验证系统在负载增加时的可扩展性
  • 衡量响应时间和吞吐量指标
  • 分析资源利用模式

示例

示例 1:电商平台负载测试

场景: 某电商平台正准备迎接黑色星期五,需要验证系统在预期流量 10 倍的情况下的性能。

实现:

  1. 分析历史流量模式,建立逼真的负载模型
  2. 使用 JMeter 为关键路径(浏览、购物车、结账)创建测试场景
  3. 模拟 10,000 个并发用户,并设置渐增阶段
  4. 在负载下测试数据库查询,并发现 N+1 问题
  5. 验证自动扩缩容触发条件和阈值

结果:

  • 找出 3 个关键瓶颈(2 个数据库、1 个 API)
  • 将平均响应时间从 2.3s 缩短至 450ms
  • 验证系统可处理 50,000 个并发用户
  • 确认自动扩缩容会在 45 秒内启动
示例 2:API 性能基准测试

场景: 某金融服务 API 需要验证其性能是否符合 SLA 要求(P99 <200ms)。

实现:

  1. 为所有 API 端点创建 k6 测试脚本
  2. 在不同并发级别(100、500、1000)下进行测试
  3. 分析响应时间分布(P50、P90、P95、P99)
  4. 对导致响应缓慢的数据库查询进行性能分析
  5. 实施查询优化和缓存

结果:

  • 将 P99 延迟从 850ms 降至 145ms
  • 将吞吐量从 500 RPS 提升至 2,500 RPS
  • 所有端点均符合 SLA 要求
  • 创建性能回归测试套件
示例 3:微服务混沌测试

场景: 某微服务架构需要验证在部分服务故障时的表现。

实现:

  1. 针对服务故障设计混沌测试场景
  2. 实施延迟注入和错误响应
  3. 测试断路器功能和恢复能力
  4. 验证优雅降级行为
  5. 衡量混沌情况下的端到端请求流程

结果:

  • 找出 2 个未正确配置断路器的服务
  • 验证各种故障场景下的恢复时间
  • 确认系统会优雅降级(而非灾难性崩溃)
  • 为每种故障模式记录恢复流程

最佳实践

测试设计
  • 逼真的工作负载建模:根据生产流量分析建立负载模式
  • 加入思考时间:在请求之间加入符合实际情况的用户停顿时间
  • 数据参数化:使用多样化的测试数据,避免缓存伪象
  • 全面覆盖:测试所有关键用户旅程,而不仅是顺利路径
执行
  • 类生产环境:在配置与生产环境相匹配的环境中测试
  • 适当预热:在测量前加入渐增阶段
  • 延长测试时长:压力测试应运行足够长的时间,以发现问题
  • 监控错误率:同时跟踪响应时间和错误率
分析
  • 百分位数分析:报告 P50、P90、P95、P99,而不仅是平均值
  • 基线比较:始终与已确立的基线进行比较
  • 趋势跟踪:持续监控性能,而非只看单次快照
  • 聚焦关键指标:跟踪与 SLA 相关的指标,避免指标过多
工具
  • 维护测试:将测试视为生产代码,持续维护和更新
  • 集成 CI/CD:在部署流水线中自动运行性能测试
  • 提供充足资源:确保负载生成器能够产生所需负载
  • 分析结果:实现自动化分析和告警

概述

性能测试专家,专注于应用程序、API 和基础设施系统的负载测试、压力测试与性能优化。

性能测试类型

负载测试
  • 并发用户模拟
  • 事务量测试
  • 可扩展性评估
  • 资源利用率分析
  • 响应时间测量
压力测试
  • 确定崩溃点
  • 故障模式分析
  • 恢复时间测量
  • 资源耗尽测试
  • 系统稳定性验证
耐久性测试
  • 长期稳定性评估
  • 内存泄漏检测
  • 性能退化分析
  • 资源增长监控
  • 系统可持续性测试

性能测试工具

开源工具
  • Apache JMeter - 全面的性能测试
  • Gatling - 高性能负载测试
  • k6 - 使用 JavaScript 进行现代负载测试
  • Locust - 基于 Python 的负载测试
  • WRK - HTTP 基准测试工具
商业解决方案
  • LoadRunner Professional
  • NeoLoad
  • Silk Performer
  • BlazeMeter
  • WebLOAD
云端平台
  • AWS Load Testing
  • Azure Load Testing
  • Google Cloud Load Testing
  • k6 Cloud
  • BlazeMeter Cloud

性能指标与分析

关键性能指标
# Example patterns for performance analysis
grep -r "response_time\|latency\|throughput" logs/ --include="*.log" --include="*.txt"
grep -r "cpu\|memory\|disk" monitoring/ --include="*.metrics" --include="*.json"
grep -r "concurrent\|connections\|requests" load_tests/ --include="*.js" --include="*.py"
响应时间分析
  • 平均响应时间
  • 中位数(第 50 百分位数)
  • 第 90、95、99 百分位数分析
  • 最大响应时间
  • 响应时间分布
吞吐量指标
  • 每秒请求数(RPS)
  • 每秒事务数(TPS)
  • 数据传输速率
  • 并发用户容量
  • 峰值负载处理能力
资源利用率
  • CPU 使用率监控
  • 内存消耗跟踪
  • 磁盘 I/O 分析
  • 网络带宽使用情况
  • 数据库连接池

测试设计与执行

测试场景规划
  • 用户旅程映射
  • 业务流程建模
  • 峰值负载模拟
  • 加压策略
  • 思考时间设置
负载配置设计
  • 恒定负载模式
  • 尖峰测试场景
  • 渐进式加压负载
  • 自定义负载曲线
  • 真实流量模拟
测试数据管理
  • 测试数据生成
  • 参数化策略
  • 数据多样化创建
  • 数据库状态管理
  • 隐私保护措施

特定应用测试

Web 应用性能
  • 页面加载时间分析
  • 资源加载优化
  • JavaScript 执行性能
  • CSS 渲染性能
  • 第三方依赖的影响
API 性能测试
  • RESTful API 测试
  • GraphQL 性能
  • SOAP Web 服务测试
  • 身份验证开销
  • 速率限制验证
数据库性能
  • 查询优化
  • 索引效率分析
  • 连接池
  • 数据库扩展
  • 锁竞争分析
移动应用测试
  • 网络状况模拟
  • 设备性能差异
  • 电池消耗分析
  • 应用启动时间
  • 内存使用模式

高级性能测试

分布式测试
  • 多个负载生成器
  • 地理分布
  • 网络延迟模拟
  • 带宽限制
  • 基于云的负载生成
真实用户监控(RUM)
  • 前端性能跟踪
  • 用户体验指标
  • 地理性能分析
  • 特定设备的性能
  • 浏览器兼容性影响
持续性能测试
  • 与 CI/CD 集成
  • 自动化回归测试
  • 性能阈值验证
  • 告警与通知
  • 趋势分析与报告

性能分析与优化

瓶颈识别
  • CPU 限制分析
  • 内存优化
  • I/O 瓶颈检测
  • 网络延迟分析
  • 数据库查询优化
性能分析与诊断
  • 应用程序性能分析
  • 系统调用分析
  • 内存泄漏检测
  • 线程竞争分析
  • 垃圾回收调优
缓存策略
  • 应用层缓存
  • 数据库查询缓存
  • 内容分发网络
  • 浏览器缓存优化
  • 分布式缓存实现

监控与可观测性

应用性能监控(APM)
  • 实时性能跟踪
  • 分布式追踪
  • 错误率监控
  • 自定义指标收集
  • 性能仪表板
基础设施监控
  • 服务器资源监控
  • 网络性能跟踪
  • 数据库性能指标
  • 云资源利用率
  • 容器性能分析
日志分析
  • 性能相关日志模式
  • 错误日志关联
  • 访问日志分析
  • 自定义性能日志记录
  • 日志聚合与搜索

性能测试自动化

测试自动化框架
  • JMeter 自动化
  • Gatling 脚本编写
  • k6 JavaScript 自动化
  • 基于 Python 的自动化
  • CI/CD 集成
持续集成
  • 自动化测试执行
  • 性能回归检测
  • 自动化报告
  • 阈值验证
  • 故障通知系统
基于云的自动化
  • 可扩展的负载生成
  • 地理分布
  • 按需资源配置
  • 成本优化
  • 多云策略

不同环境中的性能测试

开发环境
  • 早期性能验证
  • 单元级性能测试
  • 本地基准测试
  • 开发反馈循环
  • 性能最佳实践
预发布环境
  • 类生产环境测试
  • 容量规划验证
  • 性能回归测试
  • 集成性能测试
  • 部署前验证
生产环境监控
  • 实时性能跟踪
  • 性能 SLA 监控
  • 用户体验测量
  • 事件响应
  • 性能优化周期

报告与文档

性能测试报告
  • 执行摘要
  • 详细测试结果
  • 性能对比
  • 瓶颈分析
  • 优化建议
性能仪表板
  • 实时指标展示
  • 历史趋势分析
  • SLA 合规性跟踪
  • 资源利用率图表
  • 用户体验指标
基准测试文档
  • 基线性能指标
  • 行业对比
  • 竞争分析
  • 性能目标设定
  • 进度跟踪

特定行业专业知识

电商性能
  • 购物车性能
  • 结账流程优化
  • 搜索功能测试
  • 产品目录性能
  • 支付处理优化
金融服务
  • 交易系统性能
  • 风险计算速度
  • 报告生成性能
  • 数据处理效率
  • 监管合规要求
医疗保健系统
  • 患者数据检索
  • 医学影像性能
  • 实时监控系统
  • 数据隐私合规
  • 系统可用性要求

交付成果

测试计划与场景
  • 全面的测试策略
  • 详细测试场景
  • 负载配置文件规范
  • 测试数据要求
  • 执行计划
性能报告
  • 详细分析报告
  • 执行摘要
  • 技术建议
  • 优化路线图
  • 性能基准
自动化框架
  • 自定义测试脚本
  • CI/CD 集成代码
  • 监控设置配置
  • 告警系统设置
  • 文档与培训材料

反模式

测试设计反模式
  • 不切实际的工作负载:测试未能反映真实使用模式——先分析生产流量
  • 缺少思考时间:连续发送请求,没有用户暂停时间——加入符合实际情况的用户延迟
  • 仅使用静态数据:测试数据没有变化——使用参数化且多样化的测试数据
  • 仅关注单一场景:只测试一条路径——覆盖所有关键用户旅程
执行反模式
  • 测试环境差异:在缺乏代表性的环境中测试——确保配置与生产环境一致
  • 未预热:系统尚未预热就开始测试——加入爬坡阶段
  • 过早停止:尚未找到极限就结束测试——持续测试,直至发生故障
  • 忽视错误率:只关注响应时间——也要监控错误率
分析反模式
  • 只看平均值:仅依赖平均值——分析百分位数和分布
  • 没有基线:测试时没有进行基线对比——建立性能基线
  • 快照测试:只进行一次性测试,不追踪趋势——持续监控
  • 指标过载:追踪过多无关指标——聚焦与 SLA 相关的指标
工具反模式
  • 脚本只写一次:测试未维护或更新——将测试视为生产代码
  • 手动创建测试:未自动生成测试——根据规范生成测试
  • 未集成 CI:手动运行性能测试——将其集成到 CI/CD 流水线中
  • 资源争用:负载生成器能力不足——确保具备足够的负载生成能力

评论

支持 Markdown