压力测试方案怎么写:压测计划与 k6 脚本生成提示词(目标、场景、指标、通过标准)
大促、上线新系统前要做性能压测时用:让 AI 先帮你把压测目标和流量模型定清楚,再生成带阶梯加压、思考时间和通过阈值的 k6 脚本,最后给出结果怎么看、瓶颈怎么定位的清单。
通用大模型 对话模型通用
你是一名性能测试工程师。请帮我制定压测方案并编写 k6 脚本。 - 被测系统与接口:[接口列表或业务流程] - 预期业务量:[预期业务量](例:大促峰值每秒 800 单,平时每秒 50 单) - 用户行为比例:[用户行为比例](例:70% 浏览商品、20% 加购、10% 下单) - 性能要求:[性能要求](例:95% 请求 300 毫秒内、错误率低于 0.1%) - 压测环境:[压测环境](例:与生产同配置的预发环境,2 台应用服务器) - 鉴权方式与测试账号来源:[鉴权方式] 第一部分:压测方案 1. 压测目标:用一句话写清要回答的问题(例如「峰值 800 单每秒时,响应时间和错误率是否达标」「系统最多能扛多少」)。 2. 流量模型:把业务量换算成每个接口的请求速率,说明换算过程和假设。 3. 场景设计:基准测试(低压力验证脚本)、负载测试(目标压力持续一段时间)、压力测试(逐步加压找到拐点)、稳定性测试(中等压力长时间运行)——按我的目标选择需要的,写明每个场景的加压方式和持续时间。 4. 监控清单:压测时除了 k6 的结果,还要同时看哪些服务端指标(CPU、内存、数据库连接数、慢查询、缓存命中率、垃圾回收、线程池),以便定位瓶颈。 5. 风险与准备:测试数据准备、是否会触发短信或支付等外部调用(必须用模拟接口隔离)、是否会影响其他系统、压测后的数据清理。 第二部分:k6 脚本 - 用场景配置实现阶梯加压,按业务比例分配不同的用户行为; - 加入随机思考时间; - 用阈值配置写出通过标准,不达标时测试判定为失败; - 对关键接口做返回内容校验,而不仅仅检查状态码; - 测试账号和数据从外部文件读取。 第三部分:结果分析指南 拿到结果后看哪些数字、典型的瓶颈表现(如响应时间随压力线性上升、错误率突然跳升)分别意味着什么。 只针对自己拥有或获得授权的系统压测。
高亮处换成你自己的内容:[接口列表或业务流程]、[预期业务量]、[用户行为比例]、[性能要求]、[压测环境]、[鉴权方式]
ChatGPT Plus 充值
已被复制 0 次
使用说明
怎么填变量:[预期业务量] 和 [用户行为比例] 是整个方案的基础,可以从历史监控里取峰值数据。没有数据就写「估计」,AI 会在方案里标出这些假设,压测前要和业务确认。
常见坑:
- 只压单个接口,得出「每秒能扛 5000 次」的结论,真实场景里多个接口共享数据库和缓存,实际容量会低得多。按业务比例混合压测更接近真实情况。
- 压测机自身成为瓶颈(CPU 打满、带宽不够),测出来的是压测机的极限。脚本要监控压测机资源。
- 压测时没有隔离短信、支付等外部接口,可能真的给用户发了几万条短信。压测环境里这些调用必须指向模拟服务。
追问技巧:压测完成后,把 k6 的汇总输出和同时间段的服务器监控数据贴回去,问「瓶颈最可能在哪一层,下一步该看什么」。
示例输出
示例,仅供参考(k6 脚本节选)
js
import http from 'k6/http'
import { check, sleep } from 'k6'
export const options = {
scenarios: {
browse: {
executor: 'ramping-arrival-rate',
startRate: 50, timeUnit: '1s', preAllocatedVUs: 200,
stages: [
{ target: 560, duration: '5m' }, // 加压到峰值的 70%(浏览)
{ target: 560, duration: '20m' }, // 保持
{ target: 0, duration: '2m' },
],
exec: 'browse',
},
},
thresholds: {
http_req_failed: ['rate<0.001'],
http_req_duration: ['p(95)<300'],
},
}
export function browse() {
const res = http.get(`${__ENV.BASE_URL}/api/products/1001`)
check(res, { '返回商品数据': (r) => r.status === 200 && r.json('id') === 1001 })
sleep(Math.random() * 2 + 1)
}同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。



0 条评论
还没有评论,来抢沙发~