壓力測試方案怎麼寫:壓測計劃與 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 條評論
還沒有評論,來搶沙發~