Load tests

This commit is contained in:
2026-04-23 22:01:45 +03:00
parent 341f40a02a
commit dad178bd0d
3 changed files with 103 additions and 0 deletions

View File

@@ -160,6 +160,39 @@ test-all: eunit ## Запустить ВСЕ тесты (EUnit + API)
@echo " ВСЕ ТЕСТЫ ПРОЙДЕНЫ!"
@echo "========================================"
# ============================================================================
# LOAD TESTING
#3. Мониторинг во время нагрузочного теста
#Во время теста полезно следить за состоянием ноды:
#
#Через Docker (если приложение в контейнере):
#bash
#docker stats eventhub
#docker exec eventhub /app/bin/eventhub remote_console
#Внутри консоли Erlang можно выполнить:
#
#erlang
#observer:start(). % графический мониторинг
#recon:proc_count(5). % топ-5 процессов по памяти (если установлен recon)
# ============================================================================
tsung-test: ## Запустить нагрузочный тест Tsung
@echo "Запуск нагрузочного теста Tsung..."
@mkdir -p logs/tsung
@tsung -f test/tsung/eventhub_http.xml -l logs/tsung start
@echo "Отчёт: logs/tsung/*/report.html"
wrk-register: ## Нагрузочный тест регистрации (wrk2)
@wrk -t4 -c100 -d30s -t100 -s test/wrk/scripts/wrk_register.lua http://localhost:8080/v1/register
wrk-search: ## Нагрузочный тест поиска (wrk2)
@TOKEN=$$(curl -s -X POST http://localhost:8080/v1/register \
-H "Content-Type: application/json" \
-d '{"email":"wrktest@test.com","password":"pass"}' | \
grep -o '"token":"[^"]*"' | cut -d'"' -f4); \
wrk -t4 -c100 -d30s -R200 \
-H "Authorization: Bearer $$TOKEN" \
http://localhost:8080/v1/search?type=event\&q=test
# ============================================================================
# CODE QUALITY
# ============================================================================