Files
wiki/tasks/ui-testing/README.md
2026-05-04 12:20:17 +03:00

84 lines
3.0 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.
# README: UI Testing Infrastructure
## Быстрый старт
### 1. Установить окружение на mva154 (один раз)
```bash
SKILL=~/.openclaw/skills/installer/scripts
$SKILL/ssh_exec.sh --host mva154 --cmd "bash -s" --timeout 300 < tasks/ui-testing/scripts/setup-mva154.sh
```
### 2. Запустить тесты
```bash
bash tasks/ui-testing/scripts/run-tests.sh enduro-phase3 enduro-trails
```
Скриншоты появятся в `tasks/enduro-trails/screenshots/`.
### 3. Проанализировать скриншоты
Стрим анализирует каждый скриншот через `image` tool с моделью Qwen 3.6 Plus.
---
## Структура
```
tasks/ui-testing/
├── PROJECT.md — описание проекта, требования, варианты реализации
├── README.md — этот файл
├── scripts/
│ ├── setup-mva154.sh — установка Chromium + puppeteer на mva154
│ └── run-tests.sh — запуск тестов, копирование скриншотов
└── tests/
├── template.js — шаблон теста (копировать для нового проекта)
└── enduro-phase3.js — тесты Enduro Trails Фаза 3 (56 TC)
```
---
## Написать новый тест
1. Скопировать `tests/template.js``tests/my-project.js`
2. Заменить `CONFIG.url` на нужный URL
3. Добавить тест-кейсы в функцию `runTests(page)`
4. Запустить: `bash scripts/run-tests.sh my-project my-project`
### API хелперов
```js
// Скриншот
const snap = await screenshot(page, 'TC-01-step-name');
// Проверки
pass('TC-01', 'описание что прошло');
fail('TC-01', 'что не так', snap); // snap — путь к скриншоту
blocked('TC-01', 'почему заблокировано');
// Действия
await waitAndClick(page, '#btn-route');
await sleep(500); // ждать 500ms
const text = await getText(page, '#route-status');
const visible = await isVisible(page, '#route-panel');
```
---
## Требования к окружению
| Компонент | Версия | Где |
|-----------|--------|-----|
| Node.js | 20+ | mva154 |
| chromium-browser | любая | mva154 |
| puppeteer-core | 22+ | mva154 (/home/slin/ui-tests/) |
---
## Известные ограничения
- **Playwright не работает в OpenClaw-контейнере** — нет системных библиотек (libglib, libnss и др.)
- **SSH-бинарник в контейнере** требует glibc 2.38+, контейнер на 2.36 → используем installer skill
- **MapLibre GL** рендерит карту через WebGL — скриншоты карты могут быть пустыми в headless без GPU. Решение: `--use-gl=swiftshader` или проверять UI-элементы вокруг карты, не саму карту