10 KiB
10 KiB
Запуск тестов на Windows
Оглавление
- Быстрый старт
- Вспомогательные скрипты
- Генерация FETCH_TRANSACTIONS задач
- Ручной запуск (пошагово)
- Мониторинг и отчёт
- Ручной инжект задач
- ADB на Windows
- Типовые проблемы
- Быстрый чеклист
1. Быстрый старт
cd tests\mock_server
powershell -ExecutionPolicy Bypass -File setup.ps1
Скрипт setup.ps1 автоматически:
- Проверяет / устанавливает Python 3.12+ (через winget)
- Устанавливает Flask
- Создаёт вспомогательные скрипты
gen_transactions.ps1иrun_server.ps1 - Находит
config.iniи проверяет базу данных - Удаляет старые сгенерированные данные (профиль + scenarios, пул не трогает)
- Генерирует
default_profile.jsonи FETCH_PROFILE scenarios из БД - Очищает таблицу
eventsв БД - Если порт занят — убивает старый процесс
- Переключает
config.iniна mock (apiBase=http://127.0.0.1:8888) - Показывает сводку: устройства, профили, материалы, пул транзакций
- Запускает mock-сервер и открывает HTML-отчёт в браузере
Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
-Port |
8888 | Порт mock-сервера |
-FtPerMaterial |
3 | FETCH_TRANSACTIONS на материал при бутстрапе (из пула) |
-Banks |
все | Банки через запятую: ozon, dushanbe_city_bank, black |
-Types |
все | Типы задач: FETCH_PROFILE, FETCH_TRANSACTIONS |
-SkipInstall |
— | Пропустить установку Python/Flask |
-GenerateOnly |
— | Только сгенерировать данные, не запускать сервер |
-Clean |
— | Также очистить пул транзакций (scenarios/pool/) |
-Debug |
— | Flask debug режим (auto-reload при изменении кода) |
Примеры
# Всё автоматически
.\setup.ps1
# Только Ozon, только FETCH_TRANSACTIONS
.\setup.ps1 -Banks ozon -Types FETCH_TRANSACTIONS
# Debug режим с 5 транзакциями на материал
.\setup.ps1 -Banks ozon -FtPerMaterial 5 -Debug
# Полная очистка (включая пул транзакций)
.\setup.ps1 -Clean
2. Вспомогательные скрипты
После первого запуска setup.ps1 в папке tests\mock_server\ появляются
скрипты с зашитым путём до Python:
| Скрипт | Назначение | Запуск |
|---|---|---|
gen_transactions.ps1 |
Генерация FETCH_TRANSACTIONS с устройства | powershell -ExecutionPolicy Bypass -File gen_transactions.ps1 |
run_server.ps1 |
Запуск mock-сервера | powershell -ExecutionPolicy Bypass -File run_server.ps1 |
setup.ps1 |
Полная установка + генерация + запуск | powershell -ExecutionPolicy Bypass -File setup.ps1 |
Скрипты принимают дополнительные аргументы:
# Запуск сервера только для Ozon, только FETCH_TRANSACTIONS
powershell -ExecutionPolicy Bypass -File run_server.ps1 --banks ozon --types FETCH_TRANSACTIONS
# Генерация с явным серийником
powershell -ExecutionPolicy Bypass -File gen_transactions.ps1 --serial 28291FDH300712
3. Генерация FETCH_TRANSACTIONS задач
FETCH_TRANSACTIONS задачи генерируются только вручную с живого устройства.
Подготовка
- Подключите устройство по USB
- Убедитесь что ADB видит устройство:
tools\adb\windows\adb.exe devices - Откройте на устройстве банковское приложение на экране списка транзакций
Запуск
cd tests\mock_server
powershell -ExecutionPolicy Bypass -File gen_transactions.ps1
Скрипт:
- Покажет меню с активными материалами
- Выберите нужный или
all - Подтвердите что список транзакций открыт → Enter
- Автоматически пройдёт по транзакциям (не трогайте телефон!)
- Для Ozon: парсит заголовки дат, определяет дату каждой транзакции по позиции на экране, из деталей берёт только время
- Для Dushanbe: время конвертируется из Asia/Dushanbe (UTC+5)
- Сохраняет в
scenarios/pool/с номером карты в имени файла:pixel_7_ozon_7919_01_minus_108_ft_01.json pixel_7_ozon_9865_01_minus_108_ft_01.json pixel_7_dushanbe_city_bank_3258_01_plus_5_ft_01.json
Важно
- Если у банка два материала (две карты), генерируются отдельные файлы для каждого
- При смене устройств/аккаунтов нужно перегенерировать pool —
material_idв файлах должны совпадать сdefault_profile.json
4. Ручной запуск (пошагово)
4.1. Установка зависимостей
python --version # Python 3.9+
pip install flask
4.2. Подготовка config.ini
[net]
apiBase=http://127.0.0.1:8888
4.3. Генерация данных + запуск
# Генерация профиля
python tests\mock_server\gen_mock_data.py
# Запуск сервера
cd tests\mock_server
python mock_server.py --port 8888 --banks ozon --types FETCH_TRANSACTIONS
# Debug режим (auto-reload)
python mock_server.py --port 8888 --banks ozon --debug
4.4. Запуск ARC
cd C:\ARC\Ver.18 # или build\Release
ARC.exe
5. Мониторинг и отчёт
# Открыть отчёт в браузере (авто-обновление каждые 2 сек)
start http://127.0.0.1:8888/_admin/report/html
Отчёт показывает:
- Сводку: всего / выполнено / ошибки / в очереди
- Группировку: устройство → банк → задачи
- Для каждой задачи:
- Статус (completed / error / pending)
- Task JSON + Result JSON (успешные свёрнуты, ошибки развёрнуты)
- Скриншот (если есть) — клик для полноэкранного просмотра
- Кнопка "Копировать" на каждом JSON блоке
- Авто-обновление без сброса состояния развёрнутых блоков
# Счётчики
(Invoke-WebRequest http://127.0.0.1:8888/_admin/state).Content | ConvertFrom-Json
6. Ручной инжект задач
# Одна задача
curl -X POST http://127.0.0.1:8888/_admin/inject ^
-H "Content-Type: application/json" ^
--data-binary @scenarios\pixel_7_ozon_7919_fetch_profile.json
# Повторный бутстрап
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
Если ADB занят:
tools\adb\windows\adb.exe kill-server
tools\adb\windows\adb.exe start-server
8. Типовые проблемы
| Проблема | Решение |
|---|---|
python не найден |
Запустите setup.ps1 — установит автоматически |
| Порт 8888 занят | setup.ps1 убивает автоматически. Вручную: netstat -ano | findstr :8888 → taskkill /PID <pid> /F |
App restarted ошибки |
Мок-сервер чистит events в БД при старте. Запускайте сервер до ARC |
| Pool material_id не совпадает | gen_mock_data.py обновил material_id. Перегенерируйте pool |
Transaction not found |
Баг поиска — анализировать логи (device= в ошибке) |
Page load error |
Ozon WebView не загрузился — проблема интернета/устройства |
| Скриншот не привязался | Нет internal_task_id — обновить ARC |
| Кракозябры в консоли | chcp 65001 (UTF-8). Скрипты .ps1 делают автоматически |
| No active materials | Нет профилей с проверенным PIN. Запустить ARC с боевым сервером |
| Firewall | Разрешить python.exe. Мок слушает только 127.0.0.1 |
9. Быстрый чеклист
[ ] powershell -ExecutionPolicy Bypass -File setup.ps1 -Banks ozon
[ ] Устройства в adb devices → device
[ ] (опционально) gen_transactions.ps1 для пула транзакций
[ ] ARC.exe запущен (отдельный терминал)
[ ] Браузер: http://127.0.0.1:8888/_admin/report/html
[ ] Дождаться completed = всего в отчёте
[ ] Вернуть config.ini: apiBase=http://93.183.75.134:8005