load-testinglisted
Install: claude install-skill afine907/skills
# Load Testing — 压力测试技能
设计负载测试方案,生成压测脚本,分析性能瓶颈。
## Goal
设计和执行负载测试方案,包含测试场景设计、压测脚本生成、性能指标分析、瓶颈定位
## Trigger
- 用户要求"压力测试"、"性能测试"、"压测"
- 上线前需要评估系统容量
- 性能优化需要数据支撑
## 工作流程
```
需求分析 → 场景设计 → 脚本生成 → 执行监控 → 结果分析 → 瓶颈定位
```
## 测试类型
| 类型 | 目标 | 并发数 | 持续时间 |
|------|------|--------|----------|
| 基准测试 | 建立性能基线 | 1-10 | 5min |
| 负载测试 | 验证预期负载 | 预期并发 | 30min |
| 压力测试 | 找到系统极限 | 逐步增加 | 30-60min |
| 浸泡测试 | 检测内存泄漏 | 预期并发 | 4-24h |
| 尖峰测试 | 验证突发流量 | 突发峰值 | 5-10min |
## 测试场景设计
### 场景模板
```yaml
test_scenario:
name: {场景名称}
description: {场景描述}
# 负载模型
load_model:
type: {constant/ramp-up/step/spike}
target_vus: {目标虚拟用户数}
ramp_up_time: {爬坡时间}
hold_time: {持续时间}
ramp_down_time: {下降时间}
# 测试接口
endpoints:
- name: {接口名称}
method: {GET/POST/PUT/DELETE}
url: {接口地址}
headers:
Content-Type: application/json
Authorization: Bearer ${token}
body: |
{
"field": "${dynamic_value}"
}
think_time: {思考时间(秒)}
weight: {权重(%)}
# 断言
assertions:
- type: response_time
condition: p95 < 500ms
- type: error_rate
condition: < 1%
- type: throughput
condition: > 1000 req/s
# 测试数据
test_data:
source: {csv/api/generated}
file: {data.csv}
strategy: {sequential/random/unique}
```
### 常见场景
| 场景 | 描述 | 关注指标 |
|------|------|----------|
| 秒杀抢购 | 瞬间高并发写入 | TPS、错误率、库存一致性