Files
Stend_mont/docs/LOAD_TESTING.md

2.4 KiB

Load Testing (k6)

Готовый скрипт: scripts/load/portal_k6.js.

1) Установка k6

Ubuntu/Debian:

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 тест (быстрая проверка)

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) Нормальная нагрузка

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) Стресс

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 через запятую.
  • PROFILEsmoke|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.
  • Для реалистичного теста используйте несколько пользователей, иначе упретесь в лимиты по сессиям одного пользователя.