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

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

Практика · 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 в розробці →

Java · Основний курс · 1:13:18–1:16:02

Аналіз прогону у Trace Viewer

Після прогону tracing створює ZIP archive. Автор не радить завантажувати внутрішні дані застосунку в online Trace Viewer; локально archive відкривається командою `npx playwright show-trace <path>`, для чого на машині має бути встановлений Node.js Playwright package. Trace Viewer показує стан before/after для кожної дії, screenshots, snapshot сторінки та network requests. Завдяки цьому trace може бути основним діагностичним артефактом CI-прогону й давати значно більше контексту, ніж звичайний screenshot після падіння.

Playwright для Java: основи та поглиблення →

Java · Сесії: 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 в розробці →

Java · Основний курс · 49:58–1:01:50

`ProjectPage`, діагностика падіння та коректна відповідальність

Назва `ProjectPage` обирається після аналізу URL, HTML і функцій сторінки: вона охоплює не лише тест-кейси, а й налаштування, шаблони та користувачів проєкту. Методи `isLoaded` у `ProjectsPage` і `ProjectPage` роблять public, щоб тест міг явно перевіряти кожний перехід. Під час запуску тест падає через неперевірений селектор. Викладач знаходить перший релевантний рядок власного коду у stack trace, звіряє DOM і переносить перевірку повідомлення про успішний вхід до відповідальнішого місця. Характерний пошуковий елемент зберігається в полі Page Object і повторно використовується для перевірки завантаження, після чого тест знову проходить.

Page Objects: рефакторинг тестів →

Java · Advanced: API-автоматизація · 1:10:00–1:30:00

Error contracts і tracing

Generated success client не завжди зручний для negative tests. API має повертати standardized error model з code, message і diagnostic fields, щоб frontend і tests могли відрізнити конкретні failures в межах одного HTTP status. Test-generated correlation/trace ID передається у header, логується і додається до report. Тоді розробник знаходить повний distributed trace для failed test, а не шукає за приблизним timestamp.

Кодогенерація через OpenAPI Generator →

Java · Сесії: AMA та PMP · 21:25–25:13

Де Cucumber усе ж доречний

Невеликий набір Gherkin scenarios може бути корисним як зрозумілий business report: користувач може оформити замовлення, створити event, виконати payment або отримати потрібну analytics. Це має сенс, якщо stakeholders справді читають report і scenarios є спільним контрактом. Для детальної діагностики developers зазвичай потрібні не довгі Gherkin steps, а точні request data, `curl`, response, credentials для test environment, frontend/backend logs і stack trace. Тому практичний висновок відео: використовуйте BDD для спільного уточнення поведінки, а Cucumber — лише там, де його додаткова мова реально має читача й покриває невеликий набір стабільних business flows.

Чому критикують BDD і Cucumber →

Java · Сесії: AMA та PMP · 23:40–25:04

Стабільність і traces важливіші за красивий репорт

Allure залишається потужним звичним рішенням; Monocart згадується як конкурент. Але складний репортинг не є першою потребою невеликого стабільного suite. Тест насамперед має бути зрозумілим розробнику й давати швидкий діагностичний сигнал. Якщо падіння стабільне та відтворюване, Playwright trace часто містить достатньо даних без додаткової системи звітів. Traces можна автоматично зберігати лише для невдалих запусків. Розвинена агрегація стає виправданою при великій кількості тестів, кількох паралельних запусках або потребі бачити історичні тенденції. Якщо ж у suite тисячі UI-тестів, це окремий сигнал перевірити архітектуру покриття, а не лише покращувати звіт.

Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →

Java · Сесії: AMA та PMP · 40:00–44:20

Як команда й assertion доходять до browser

[Дивитися з 40:00](https://www.youtube.com/watch?v=6QdvE9DHOIY&t=2400s). Кілька переходів у implementation показують ланцюг від `Locator.click()` до frame/channel command. Client збирає action options і надсилає повідомлення через connection; browser-side layer виконує пошук, actionability checks і дію. Під час дослідження автор спочатку припускає, що assertions повністю виконуються в Python client, а потім знаходить protocol command для locator expect. Практичний урок тут важливіший за конкретний internal class: перевіряти припущення переходом у реалізацію, trace або protocol logs і явно коригувати висновок, коли source code показує інше.

Як Playwright взаємодіє з браузером через протокол →

Java · Advanced: API-автоматизація · 1:00:00–1:30:00

Відтворення authorization flow в API client

Демо послідовно відтворює open login page, authenticate user, follow location/callback, extract authorization code і exchange it for tokens. Cookies оновлюються між кроками, тому shared state має бути explicit. Велика частина демо — live debugging невірного client/redirect та reverse engineering кроків. Практичний висновок: автоматизувати лише documented grant, а browser trace використовувати для пошуку discrepancy.

OAuth 2.0 і конфігурація →

Java · Advanced: API-автоматизація · 1:10:00–1:20:00

Standard error DTO і partial comparison

Error response моделює code, message і diagnostic fields. Тест будує expected error і порівнює stable fields, ігноруючи unique stack trace/request id, якщо вони не є частиною очікуваної behavior. Така partial/recursive comparison краща за аболютне equality, коли response містить server-generated data. Але ignored fields мають бути точковими, інакше test пропустить contract regression.

AssertJ: виразні асерти та їх генерація →

Java · Основний курс · 1:35:21–1:39:30

Практичні висновки й домашня робота

Playwright рекомендується як швидша й зручніша основа для UI automation, особливо на remote execution. У Java повторювану ініціалізацію можна прибрати через JUnit integration, Page Object-и та невелику application facade, а стабільність дій забезпечують auto-waiting і динамічні assertions. Для домашньої роботи потрібно переписати на Playwright наявний Selenium-сценарій, налаштувати browser options, увімкнути tracing, відкрити trace локально та використати `page.pause()` або recorder для налагодження. Згенеровані recorder-ом кроки слід переносити вибірково й узгоджувати locator strategy в межах команди. `getByRole` додатково перевіряє accessibility semantics сторінки: сучасні Angular і React components мають формувати ролі та ARIA attributes, які screen reader розпізнає як кнопку, поле введення чи інший control. Для колекцій strict locator semantics складніша, тому в більшості дій варто будувати locator, що знаходить один конкретний елемент.

Playwright для Java: основи та поглиблення →
Запитати в чаті про «trace» →