feat(ops): генератор нагрузки и подготовка аккаунтов для теста

- cmd/loadgen: держит заданное число WS-клиентов Gateway, шлёт сообщения с
  нужной частотой, измеряет задержку доставки (p50/p95/p99/max), ответы API,
  разрывы соединений и пишет отчёт в JSON;
- glchat create-user (CLI + обёртка): создаёт аккаунты в обход выключенной
  регистрации, пакетно (--count/--prefix), при --sessions сразу выдаёт сессии
  и складывает учётные данные в файл 600 — иначе сотня клиентов не сможет
  войти из-за лимита попыток по IP;
- auth: CreateUserByOperator и IssueSessionForOperator с тестом;
- web/e2e/voice-ten.spec.ts: десять участников в одной голосовой комнате,
  проверка плиток, входящего аудио и слоя 1080p60 у клиента; сессии берутся
  из файла (без формы входа);
- .gitignore: каталоги вывода Playwright test-results*.
This commit is contained in:
2026-09-22 20:00:33 +03:00
parent 785af0dc7b
commit 66dd07eb7b
8 changed files with 1026 additions and 2 deletions
+10
View File
@@ -29,6 +29,7 @@ glchat — управление инстансом
glchat security-check аудит: SSH, fail2ban, порты, лимиты
glchat reindex пересобрать индекс поиска (FTS5)
glchat cleanup чистка: сессии, аудит, файлы без ссылок
glchat create-user создать аккаунты (--count/--prefix/--sessions)
glchat change-domain <domain> сменить домен
glchat uninstall [--keep-data] удалить стек
glchat version версия CLI и приложения
@@ -175,6 +176,14 @@ cmd_cleanup() {
${COMPOSE} exec -T app glchat cleanup "$@"
}
# cmd_create_user создаёт аккаунты командой обслуживания: регистрация может
# быть выключена, а для нагрузочного теста нужны десятки пользователей
# (AGENT.md 10.7, 11.4). Флаг --sessions сразу выдаёт сессии для генератора.
cmd_create_user() {
require_stack
${COMPOSE} exec -T app glchat create-user "$@"
}
main() {
local cmd="${1:-help}"
shift || true
@@ -196,6 +205,7 @@ main() {
reindex) cmd_reindex "$@" ;;
verify-backup) cmd_verify_backup "$@" ;;
cleanup) cmd_cleanup "$@" ;;
create-user) cmd_create_user "$@" ;;
change-domain) cmd_change_domain "$@" ;;
uninstall) cmd_uninstall "$@" ;;
version) cmd_version "$@" ;;