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