# Load Testing (k6) Готовый скрипт: `scripts/load/portal_k6.js`. ## 1) Установка k6 Ubuntu/Debian: ```bash sudo gpg -k sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69 echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list sudo apt update && sudo apt install -y k6 ``` ## 2) Smoke тест (быстрая проверка) ```bash k6 run scripts/load/portal_k6.js \ -e BASE_URL=https://stend.4mont.ru \ -e USERNAME=ruslan \ -e PASSWORD='YOUR_PASSWORD' \ -e SERVICE_SLUGS=vmmanager,termidesk \ -e PROFILE=smoke ``` ## 3) Нормальная нагрузка ```bash k6 run scripts/load/portal_k6.js \ -e BASE_URL=https://stend.4mont.ru \ -e USERS_CSV='user1:pass1;user2:pass2;user3:pass3' \ -e SERVICE_SLUGS=vmmanager,termidesk,sayt-mont5 \ -e PROFILE=load \ -e HEARTBEATS=3 \ -e THINK_TIME=1 ``` ## 4) Стресс ```bash k6 run scripts/load/portal_k6.js \ -e BASE_URL=https://stend.4mont.ru \ -e USERS_CSV='user1:pass1;user2:pass2;user3:pass3;user4:pass4' \ -e SERVICE_SLUGS=vmmanager,termidesk,sayt-mont5 \ -e PROFILE=stress ``` ## 5) Ключевые параметры - `BASE_URL` — адрес портала. - `USERNAME`/`PASSWORD` — одиночный пользователь. - `USERS_CSV` — набор пользователей `u1:p1;u2:p2`. - `SERVICE_SLUGS` — список slug через запятую. - `PROFILE` — `smoke|load|stress`. - `HEARTBEATS` — сколько `touch` в итерации. - `THINK_TIME` — пауза между итерациями. - `CLOSE_SESSION=0` — не закрывать сессию в конце итерации. ## 6) Что смотреть в результате - `http_req_duration` (`p95/p99`) - `http_req_failed` - `flow_errors` - `open_success`, `open_rejected`, `limit_redirects`, `touch_rejected` ## 7) Важное - Запускайте сначала `smoke`, потом `load`, и только затем `stress`. - Для реалистичного теста используйте несколько пользователей, иначе упретесь в лимиты по сессиям одного пользователя.