Update load test to 100 VUs with login jitter
Stages: 10 → 50 → 100 VUs, hold 3 min, ramp down. Added random 0-10s sleep before first login to spread auth requests and reduce Better Auth rate-limit retries. Results: p(95)=244ms, pages 100% OK, auth retries 6.28% (rate-limit artifact).
This commit is contained in:
+7
-2
@@ -31,12 +31,13 @@ export const options = {
|
||||
stages: [
|
||||
{ duration: "30s", target: 10 }, // разгон до 10 пользователей
|
||||
{ duration: "1m", target: 50 }, // разгон до 50
|
||||
{ duration: "3m", target: 50 }, // держим 50 три минуты
|
||||
{ duration: "1m", target: 100 }, // разгон до 100
|
||||
{ duration: "3m", target: 100 }, // держим 100 три минуты
|
||||
{ duration: "30s", target: 0 }, // спад
|
||||
],
|
||||
thresholds: {
|
||||
http_req_duration: ["p(95)<3000"], // 95% запросов быстрее 3 секунд
|
||||
http_req_failed: ["rate<0.05"], // ошибок меньше 5% (было 1%, но до фикса Kinescope)
|
||||
http_req_failed: ["rate<0.05"], // ошибок меньше 5%
|
||||
},
|
||||
};
|
||||
|
||||
@@ -49,6 +50,10 @@ export default function () {
|
||||
|
||||
// 1. Логин — только при первой итерации VU
|
||||
if (!isLoggedIn) {
|
||||
// Случайная задержка 0-10s: распределяем 100 логинов во времени,
|
||||
// иначе все VU стартуют одновременно и бьют rate-limit Better Auth.
|
||||
sleep(Math.random() * 10);
|
||||
|
||||
const loginRes = http.post(
|
||||
`${BASE}/api/auth/sign-in/email`,
|
||||
JSON.stringify({ email: TEST_USER.email, password: TEST_USER.password }),
|
||||
|
||||
Reference in New Issue
Block a user