Files
EventHubBack/test/tsung/README.md
T

72 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.