Python мануфактураJavaDesign Patterns для автоматизаторів

Python мануфактура · Програма курсу · 1:30–4:10

Вкладені ZIP і macOS Archive Utility

Artifact може бути ZIP-архівом, усередині якого лежать окремі `trace.zip`. Archive Utility на macOS рекурсивно розпаковує вкладені архіви й змінює очікувану структуру, після чого Trace Viewer не розпізнає результат як trace. Надійніший шлях — розпакувати зовнішній artifact консольною командою `unzip` у визначену директорію та передати Trace Viewer внутрішній `trace.zip` без повторного пакування. Пробіли в шляху треба екранувати або передавати шлях одним quoted argument.

3. Фікс трейсів на СІ →

Python мануфактура · Програма курсу · 15:15–21:55

Окремий ZIP на основі pytest `request`

Built-in fixture `request` надає `request.node.name`, тому trace можна назвати ім’ям конкретного тесту й зберігати в `test-results/traces/<test>.zip`. Це робить артефакт однозначним і придатним для CI. ZIP відкривається командою `playwright show-trace <path>`. На timeline видно переходи, clicks, fills, assertions, snapshots, network і Python sources, що дає більше діагностичної інформації, ніж відео самого браузера.

4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures →

Python мануфактура · Програма курсу · 23:30–26:30

Експеримент із Playwright trace attachment

Навмисно створюється failure, щоб перевірити новий content type для Playwright trace в Allure. У цьому Python setup очікуваний інтерактивний trace у report не з’являється. Автор не видає припущення за успіх і залишає робочий fallback: зберігати traces окремим artifact та відкривати їх через Playwright Trace Viewer. Таким чином Allure покращує навігацію по tests і steps, але не замінює перевірену trace-діагностику, доки конкретна інтеграція не підтверджена end to end.

4. Allure репорт, основи та інтеграція в CI →

Python мануфактура · Програма курсу · 28:00–35:30

Trace Viewer і мінімальний smoke gate

Завантажений trace відкривається через Playwright Trace Viewer. Демонстрація виявляє, що hover-стан поводиться інакше на headless CI runner, а сторінка може зберігати неочікуваний authorization state. Тимчасовий fix перевіряється повним smoke-командним запуском, але нез’ясована причина shared state прямо залишається окремою проблемою, а не оголошується остаточно виправленою. Smoke suite має падати рано й зупиняти беззмістовний regression run, якщо застосунок не завантажився або критичний flow зламаний. Якщо smoke зелений, а regression масово червоний, критерії smoke треба переглянути.

2. Практика та написання пайплану CI/CD →

Python мануфактура · Програма курсу · 34:00–42:00

Trace Viewer як запис виконання тесту

Для демонстрації навмисно ламається locator, після чого збережений `trace.zip` відкривається командою `playwright show-trace <path>`. Trace Viewer показує послідовність actions, стан сторінки до й після кожної дії, source line, console errors і network requests. Timeline допомагає побачити не лише місце падіння, а й час очікування. Виділивши потрібний інтервал, можна звузити network-події до конкретної дії. Snapshot сторінки також дозволяє перевірити DOM і locator навіть тоді, коли браузер із failed run уже закритий — наприклад, помітити завислий loader або overlay.

1. Налаштування Playwright та Pytest, простий репортінг →

Python мануфактура · Програма курсу · 39:40–43:50

Навмисний failure і перевірка Trace Viewer

Один locator навмисно змінюється на неправильний. Тест падає, з’являється ZIP із назвою тесту, а Trace Viewer показує останній успішний крок і assertion, який не знайшов очікуваний елемент. Після доказу failure path тимчасову помилку треба прибрати й повернути suite у green state. Завершена зміна комітиться в окремій гілці; у командній роботі вона проходить pull request, а не пряме злиття без review.

4. Повертаємо traces, pytest hooks, рефакторинг дублювань у fixtures →
Запитати в чаті про «trace-viewer» →