5.2 KiB
5.2 KiB
Запуск тестов на Windows
1. Установка зависимостей
# Python 3.9+ (если нет — скачать с python.org, при установке включить «Add to PATH»)
python --version
# Flask
pip install flask
2. Подготовка config.ini
В config.ini (рядом с ARC.exe) переключить apiBase:
[net]
apiBase=http://127.0.0.1:8888
Совет: держите отдельную копию
config.ini.mock, а перед тестомcopy config.ini.mock config.ini.
3. Запуск mock-сервера
cd tests\mock_server
python mock_server.py --port 8888
Должны увидеть:
[mock] state cleared — starting fresh
[mock] loaded default_profile.json: 3 bank_profiles, 3 materials
[mock] loaded pool: 19 FETCH_TRANSACTIONS across 3 materials
* Running on http://127.0.0.1:8888
Флаги:
--ft-per-material 3— сколько FETCH_TRANSACTIONS на материал (default 3)--seed 42— фиксированный RNG для воспроизводимости
4. Запуск ARC
В отдельном терминале (cmd/PowerShell):
cd build\Release
ARC.exe
Или через CLion: Run → ARC.
При логине мок автоматически поставит задачи (1 FETCH_PROFILE + 3 FETCH_TRANSACTIONS на каждый материал). Задачи раздаются по 1 на material за поллинг — следующая только после результата предыдущей.
5. Мониторинг и отчёт
# Открыть отчёт в браузере (авто-обновление каждые 2 сек)
start http://127.0.0.1:8888/_admin/report/html
# Счётчики
curl -s http://127.0.0.1:8888/_admin/state
# Полный JSON-отчёт
curl -s http://127.0.0.1:8888/_admin/report
Если curl нет, используйте PowerShell:
# Счётчики
(Invoke-WebRequest http://127.0.0.1:8888/_admin/state).Content | ConvertFrom-Json
# Полный отчёт в файл
Invoke-WebRequest http://127.0.0.1:8888/_admin/report -OutFile report.json
6. Ручной инжект задач
# Одна задача
curl -X POST http://127.0.0.1:8888/_admin/inject ^
-H "Content-Type: application/json" ^
--data-binary @scenarios\tecno_ozon_fetch_profile.json
# 5 случайных из пула
python inject_random.py --count 5
# Повторный бутстрап
curl -X POST http://127.0.0.1:8888/_admin/bootstrap
# Сброс (очистка очереди + результатов)
curl -X POST http://127.0.0.1:8888/_admin/reset
7. ADB на Windows
ARC использует ADB из tools\adb\windows\. Убедитесь, что:
tools\adb\windows\adb.exe devices
показывает устройства в статусе device.
Если ADB занят другим процессом (Android Studio, scrcpy), закройте его:
tools\adb\windows\adb.exe kill-server
tools\adb\windows\adb.exe start-server
tools\adb\windows\adb.exe devices
8. Типовые проблемы (Windows-специфичные)
pythonне найден → использоватьpyилиpython3. Или добавить Python в PATH.- Порт 8888 занят →
netstat -ano | findstr :8888, затемtaskkill /PID <pid> /F. Или запустить мок на другом порту:python mock_server.py --port 9999и поменятьapiBaseвconfig.ini. curlнет → использоватьInvoke-WebRequest(PowerShell) или установить curl черезwinget install curl.- Firewall блокирует → разрешить
python.exeв Windows Firewall (или отключить на время теста). Мок слушает только127.0.0.1— внешний доступ не нужен. - ARC не видит устройства → проверить USB-драйверы, включить «USB debugging» на телефоне, подтвердить RSA-ключ.
- Кодировка в консоли →
chcp 65001перед запуском мока (UTF-8), иначе русские символы в логах могут быть кракозябрами. - SSL ошибки при сборке ARC → убедиться, что OpenSSL DLL скопированы
в директорию сборки (
cmake --buildделает это автоматически через post-build commands в CMakeLists.txt).
9. Быстрый чеклист
[ ] Python 3.9+ установлен, pip install flask
[ ] config.ini: apiBase=http://127.0.0.1:8888
[ ] Устройства в adb devices → device
[ ] Терминал 1: python mock_server.py --port 8888
[ ] Терминал 2: ARC.exe
[ ] Браузер: http://127.0.0.1:8888/_admin/report/html
[ ] Дождаться completed = 12 в отчёте
[ ] Вернуть config.ini: apiBase=http://93.183.75.134:8005