Files
EventHubBack/test/tsung/README.md
T

62 lines
2.5 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 (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`)