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

Терміни, нюанси та джерела

Що змінилося після запису · 10:30

Що змінилося після запису

У Python experiment інтерактивний Playwright trace attachment у generated report не запрацював; окремий trace artifact залишився fallback.

Allure renderer документує media type application/vnd.allure.playwright-trace і різну поведінку viewer в Allure 2/3. Automatic trace detection офіційно описане для JS/TS allure-playwright, не для ланцюжка pytest-playwright → allure-pytest.

Документацію перевірено 2026-07-31; дата появи media type не встановлена.

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

Практика · 35:55

Red/green перевірка trace retention

Запустіть один green test і переконайтеся, що ZIP не створено.
Тимчасово зробіть його assertion неправильним і повторіть запуск.
Відкрийте єдиний ZIP через playwright show-trace, після чого поверніть тест у green state.
Green path не створює trace; failure path створює один читабельний artifact для потрібного test ID.

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

Нюанс · 0:00

Trace artifact може містити secrets

Trace, logs і reports можуть містити credentials, tokens, test source або application source. Зберігайте їх лише в trusted artifact store або encryption-protected share; local show-trace є простішою межею для чутливих artifacts.

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

Нюанс · 23:30

Не прибирайте trace fallback завчасно

У демонстрації Allure report не показав очікуваний інтерактивний Playwright trace. Зберігайте окремий trace artifact, доки конкретна інтеграція не пройшла end-to-end verification у вашому стеку.

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

Практика · 3:00

Перетворити exploration на repeatable test

Пройти короткий flow через Codegen або CLI.
Зберегти generated draft у test file.
Адаптувати locators і data setup до наявного project contract.
Запустити test і переглянути trace.
Зафіксувати, що саме AI зекономив і що вимагало manual review.
Один repeatable green test із trace та короткою оцінкою saved time.

Playwright MCP, CLI, Codegen та AI в розробці →

Практика · 5:30

Підтвердити reporting flow

Додайте один allure.step до публічної Page Object action.
Згенеруйте allure-results для одного green і одного failed test.
Додайте screenshot та окремий Playwright trace artifact для failure.
Згенеруйте static report і окремо відкрийте published URL.
Зафіксуйте, чи доступний trace end to end; не прибирайте fallback без цього доказу.

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

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 мануфактура · Програма курсу · 0:00–1:30

Завантаження trace artifact

Після падіння smoke job у її artifacts знаходиться архів із traces. Його завантажують і переносять у локальний проєкт або тимчасову директорію для аналізу. Trace відкривається командою `playwright show-trace`, яку можна викликати через інструмент керування Python-середовищем проєкту.

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

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 мануфактура · Програма курсу · 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 мануфактура · Сесії: AMA та PMP · 3:00–6:30

Codegen і trace як контрольована відправна точка

Практичний flow: людина вручну проходить сценарій через Playwright Codegen, передає згенерований код моделі, просить рознести його по наявних page objects, запускає тест і дає trace для наступного review. Генерація відбувається малими порціями, а людина контролює data setup, reuse та фактичний user journey. Для складного enterprise flow з inventory, credit limits, third-party integrations і stateful users автономний agent без domain context не буде надійним.

Playwright MCP, CLI, Codegen та AI в розробці →

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

Screenshots, traces та Allure steps

При failure fixture може додати screenshot і trace до результату через Allure attachments із відповідним content type. Screenshot після завершення тесту інколи фіксує стан запізно, тому Playwright trace залишається ціннішим джерелом послідовності дій. Публічні дії Page Object позначаються `@allure.step`, щоб report показував бізнес-зрозумілі кроки, а не лише назву тесту. Приватні helpers, constructors і прості properties не потребують окремих steps: вони створять шум без корисного контексту.

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

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 →

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

Діагностика hover-різниці на CI

Trace показує реальну причину: на CI hover відбувся, але очікуваний UI state не став видимим так, як локально. Це звужує проблему з абстрактного «тест падає на CI» до конкретної взаємодії браузера й locator assertion. У демонстрації перевірка адаптується для CI/headless режиму, а також розглядається примусова взаємодія. Такий workaround треба застосовувати лише після перегляду trace: інакше легко приховати реальний дефект сторінки або тесту.

3. Фікс трейсів на СІ →
Запитати в чаті про «trace» →