性能测试指南

测试类型

类型目标持续时间模式
冒烟测试验证系统在最小负载下可正常工作1-5 分钟1-5 个虚拟用户
负载测试验证系统在预期生产负载下的表现10-30 分钟逐步增加到预期并发用户数
压力测试找到崩溃点;超出容量时的行为15-60 分钟持续加压直到失败
峰值测试突然 10 倍流量激增时的行为5-15 分钟瞬间跳到正常的 10 倍
稳定性测试内存泄漏、长时间资源耗尽2-24 小时持续稳定负载

k6 压测脚本

import http from 'k6/http'; import { check, sleep } from 'k6'; export const options = { stages: [ { duration: '2m', target: 50 }, // 爬坡 { duration: '5m', target: 50 }, // 稳定 { duration: '2m', target: 100 }, // 继续增加 { duration: '5m', target: 100 }, // 稳定 { duration: '2m', target: 0 }, // 降低 ], thresholds: { http_req_duration: ['p(95)<500', 'p(99)<1000'], // 95 百分位 < 500ms http_req_failed: ['rate<0.01'], // 错误率 < 1% }, }; export default function () { const res = http.post('https://api.example.com/auth/login', { email: 'user@test.com', password: 'password123', }); check(res, { '状态码 200': (r) => r.status === 200, '有 token': (r) => r.json('token') !== undefined, }); sleep(1); // 思考时间 }

关键指标

指标目标值警戒值
吞吐量(RPS)满足预期峰值负载负载下下降 → 有瓶颈
响应时间 p50< 200ms> 500ms
响应时间 p95< 500ms> 1000ms
响应时间 p99< 1000ms> 2000ms
错误率< 0.1%> 1%
CPU 使用率< 70%> 85%
内存增长趋于稳定线性增长 = 内存泄漏