72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# 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 (не для IFT) |
|
||
| `eventhub_http.xml` | Legacy короткий localhost |
|
||
|
||
Цель: **HTTPS** `api.ift.eventhub.local` (+ `admin-api.ift.eventhub.local` для verify).
|
||
|
||
### Auth path
|
||
|
||
1. `POST /v1/admin/login` (admin-api) — учётка из `ift-admin.csv`
|
||
2. `POST /v1/register` → `user.id`
|
||
3. `GET /v1/admin/users/:id/verification-token` — спец. admin-метод
|
||
4. `POST /v1/verify`
|
||
5. `POST /v1/login` → user JWT
|
||
|
||
## Подготовка учётки admin
|
||
|
||
```bash
|
||
# из /opt/eventhub-ift/.env или локальной копии
|
||
cp test/tsung/ift-admin.csv.example test/tsung/ift-admin.csv
|
||
# одна строка без комментариев: email;password
|
||
printf '%s;%s\n' "$ADMIN_SUPER_EMAIL" "$ADMIN_SUPER_PASSWORD" > test/tsung/ift-admin.csv
|
||
```
|
||
|
||
`ift-admin.csv` в `.gitignore`.
|
||
|
||
## Перед прогоном (хост IFT)
|
||
|
||
```bash
|
||
EVENTHUB_REPLICAS=1 bash /opt/eventhub-ift/devops/scripts/ift-loadtest-prepare.sh
|
||
# EVENTHUB_REPLICAS=N — больше нод
|
||
```
|
||
|
||
Оставляет `traefik` + `eventhub×N`.
|
||
|
||
## Дех-машина (WSL)
|
||
|
||
1. DNS: `api.ift.eventhub.local` и `admin-api.ift.eventhub.local` → IP IFT.
|
||
2. `sudo apt install tsung`
|
||
3. TLS: доверить CA стенда (`EventHubDevOps/ift/traefik/certs`). Проверка:
|
||
`curl -sf https://api.ift.eventhub.local/health`
|
||
4. Из корня `EventHubBack`:
|
||
|
||
```bash
|
||
tsung -f test/tsung/eventhub_ift_smoke.xml start
|
||
tsung -f test/tsung/eventhub_ift.xml start
|
||
```
|
||
|
||
Отчёт: `~/.tsung/log/<timestamp>/`.
|
||
|
||
## После прогона
|
||
|
||
```bash
|
||
bash /opt/eventhub-ift/devops/scripts/ift-loadtest-restore.sh
|
||
```
|
||
|
||
## Настройка интенсивности
|
||
|
||
В `eventhub_ift.xml` блок `<load>`: `interarrival` и `duration` фаз.
|
||
`thinktime` — **секунды**.
|
||
|
||
## Замечания
|
||
|
||
- Каждый VU делает admin login — это нагрузка и на admin-api; при необходимости позже вынести общий admin JWT в csv.
|
||
- Из hot path убраны: dummy refresh, reports/tickets, завышенные thinktime старого `eventhub_tsung.xml`.
|