1
0
forked from BRT/arc
arc/tests/mock_server/WINDOWS.md

167 lines
5.2 KiB
Markdown
Raw 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.

# Запуск тестов на 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 <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
```