k6 - daniel-qa/RooCode GitHub Wiki
用 k6 模擬 API 層級的壓測情境。
- 安裝
直接載執行檔,加入環境變數中
https://github.com/grafana/k6/releases
- 測試 js
import http from 'k6/http';
import { check, sleep } from 'k6';
export let options = {
vus: 50, // 50 個虛擬使用者
duration: '30s', // 測試時間
};
const BASE_URL = 'https://sharing-test.teammodel.net';
export default function () {
// 登入請求
let loginRes = http.post(`${BASE_URL}/login`, {
loginId: '1595321354',
loginPassword: 'Habook2022.',
});
check(loginRes, {
'登入成功': (res) => res.status === 200 && res.body.includes("mindmap"),
});
// 模擬新增節點的 API(需你提供實際路由與資料格式)
let addRes = http.post(`${BASE_URL}/api/nodes/add`, JSON.stringify({
name: `add-${__VU}`,
parentId: 'root111',
}), {
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${loginRes.json('token') || ''}`, // 若需要 token
}
});
check(addRes, {
'新增節點成功': (res) => res.status === 200,
});
sleep(1);
}
- 執行測試
k6 run load-test.js