# Запуск тестов на Windows --- ## 1. Установка зависимостей ```powershell # Python 3.9+ (если нет — скачать с python.org, при установке включить «Add to PATH») python --version # Flask pip install flask ``` --- ## 2. Подготовка config.ini В `config.ini` (рядом с `ARC.exe`) переключить `apiBase`: ```ini [net] apiBase=http://127.0.0.1:8888 ``` > Совет: держите отдельную копию `config.ini.mock`, а перед тестом > `copy config.ini.mock config.ini`. --- ## 3. Запуск mock-сервера ```powershell 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): ```powershell cd build\Release ARC.exe ``` Или через CLion: Run → ARC. При логине мок автоматически поставит задачи (1 FETCH_PROFILE + 3 FETCH_TRANSACTIONS на каждый материал). Задачи раздаются по 1 на material за поллинг — следующая только после результата предыдущей. --- ## 5. Мониторинг и отчёт ```powershell # Открыть отчёт в браузере (авто-обновление каждые 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: ```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. Ручной инжект задач ```powershell # Одна задача 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\`. Убедитесь, что: ```powershell tools\adb\windows\adb.exe devices ``` показывает устройства в статусе `device`. Если ADB занят другим процессом (Android Studio, scrcpy), закройте его: ```powershell 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 /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 ```