exchanger/docs/operations/SOAK_TEST.md

42 lines
2.8 KiB
Markdown
Raw Permalink 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.

# Длительный soak-тест Exchanger
## Автоматическая модель 24 часов
Обычный NUnit-набор содержит ускоренный сценарий `OperationalSoakTests`: он моделирует 1440 минут,
480 подтверждённых выдач и 10 000 циклов создания/освобождения `SessionFlow`. Тест проверяет
детерминированное состояние Home, отсутствие повторной выдачи и отсутствие накопления подписок.
Это проверка логики, а не замена длительному процессному прогону.
## Процессный прогон
`tools/soak/run-runtime-soak.ps1` запускает указанный exe, проверяет его живучесть и рабочий набор
памяти, пишет CSV-сэмплы и итог в `artifacts/soak`. По умолчанию длительность равна 24 часам.
Пример для экспортированной debug/mock-сборки:
```powershell
.\tools\soak\run-runtime-soak.ps1 `
-ExecutablePath 'C:\ExchangerSoak\Exchanger.exe' `
-ApplicationArguments @('--mock-hardware=true', '--no-theme-dlc') `
-DurationHours 24 `
-SampleIntervalSeconds 60 `
-MaximumWorkingSetMb 2048
```
Для короткой проверки самого runner допускается `-DurationHours 0.0167` (около минуты), но такой
результат не является 24-часовой приёмкой. Перед production прогон выполняется на целевом ПК с
подключённым дисплеем; физическую выдачу и реальную оплату в soak-профиль не включают.
Контрольный прогон runner 2026-08-24 прошёл 12/12 пятисекундных сэмплов с пиком working set
217.73 МБ. CSV использует invariant-формат десятичных чисел и проверен через `Import-Csv` под
русской локалью. Отчёты создаются в локальном игнорируемом каталоге `artifacts/soak/`.
Критерии:
- процесс не завершился и не завис;
- working set не превысил согласованный предел;
- журналы не вышли за лимит конфигурации;
- интерфейс остался на Home и принимает касания;
- COM-reconnect не создаёт повторной выдачи;
- после штатного завершения отсутствуют незакрытые операции, кроме явно смоделированных аварий.