feat(loadtest): IFT Tsung smoke/mix + verification_token на стендах. Refs EventHub/EventHubBack#30
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Tsung — нагрузка EventHub
|
||||
|
||||
## Профили
|
||||
|
||||
| Файл | Назначение |
|
||||
|------|------------|
|
||||
| `eventhub_ift_smoke.xml` | Короткий smoke на IFT после prepare |
|
||||
| `eventhub_ift.xml` | Mix: `auth_browse` 60% + `create_flow` 40%, фазы warmup/ramp/peak |
|
||||
| `eventhub_tsung.xml` | Legacy localhost (thinktime там в секундах — не использовать для IFT) |
|
||||
| `eventhub_http.xml` | Legacy короткий localhost |
|
||||
|
||||
Цель IFT: **HTTPS** `api.ift.eventhub.local:443` (Traefik).
|
||||
|
||||
Auth path: `POST /v1/register` → `POST /v1/verify` → `POST /v1/login`.
|
||||
На стендах (`EVENTHUB_ENV` ≠ `prod`) register отдаёт `verification_token` (без почты).
|
||||
|
||||
## Перед прогоном (хост IFT)
|
||||
|
||||
```bash
|
||||
# 1 нода (default)
|
||||
EVENTHUB_REPLICAS=1 bash /opt/eventhub-ift/devops/scripts/ift-loadtest-prepare.sh
|
||||
|
||||
# или N нод
|
||||
EVENTHUB_REPLICAS=2 bash /opt/eventhub-ift/devops/scripts/ift-loadtest-prepare.sh
|
||||
```
|
||||
|
||||
Оставляет `traefik` + `eventhub×N`, гасит admin-ui / bot / observability / fallback.
|
||||
|
||||
## Дех-машина (WSL)
|
||||
|
||||
1. DNS: `api.ift.eventhub.local` → IP IFT (тот же, что в OpenWRT).
|
||||
2. Установка: `sudo apt install tsung` (или [документация Tsung](http://tsung.erlang-projects.org/)).
|
||||
3. TLS: самоподписанный сертификат стенда — импортировать CA из `EventHubDevOps/ift/traefik/certs` в trust store WSL, либо временно положить CA в `/usr/local/share/ca-certificates/` и `update-ca-certificates`. Проверка: `curl -sf https://api.ift.eventhub.local/health`.
|
||||
4. Запуск из корня `EventHubBack`:
|
||||
|
||||
```bash
|
||||
# smoke (~1 мин)
|
||||
tsung -f test/tsung/eventhub_ift_smoke.xml start
|
||||
|
||||
# полный прогон (~6 мин фаз)
|
||||
tsung -f test/tsung/eventhub_ift.xml start
|
||||
```
|
||||
|
||||
Отчёт: `~/.tsung/log/<timestamp>/` → `tsung_stats.pl` / HTML.
|
||||
|
||||
## После прогона
|
||||
|
||||
```bash
|
||||
bash /opt/eventhub-ift/devops/scripts/ift-loadtest-restore.sh
|
||||
```
|
||||
|
||||
## Настройка интенсивности
|
||||
|
||||
В `eventhub_ift.xml` блок `<load>`: `interarrival` (сек между стартами пользователей) и `duration` фаз.
|
||||
`thinktime` — **секунды** (не мс).
|
||||
|
||||
## Что сознательно убрано из hot path
|
||||
|
||||
- dummy `/v1/refresh`
|
||||
- reports / tickets (шум модерации)
|
||||
- завышенные thinktime (старый `eventhub_tsung.xml`)
|
||||
Reference in New Issue
Block a user