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

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

Lombok, Builder і test data factories

Lombok `@Data`, constructors і `@Builder` зменшують boilerplate для generated/request models. Builder допомагає зібрати object з optional/nested fields без довгого constructor. Створення valid default DTO можна винести в small factory/generator. Важливо не сховати за таким helper суттєві дані сценарію: у тесті має бути видно, що саме варіюється.

POJO, Jackson і контролери →

Java · Основний курс · 20:10–27:06

POJO, Lombok builder і test data

POJO пояснюється як Plain Old Java Object: fields плюс getters, setters, `equals`, `hashCode` і `toString`. Lombok annotation `@Data` генерує цей типовий код. Request JSON переноситься в typed `SuiteRequest`, який можна передавати RestAssured замість raw string. `@Builder` дає покрокову ініціалізацію nested DTO, а Java Faker генерує title і description, зокрема назву книги та Chuck Norris fact. Щоб не перевантажувати test конструкторами, створення request object виноситься в method generator/factory, який повертає готовий `SuiteRequest`.

API-автоматизація: MVC і Jackson →

Java · Сесії: AMA та PMP · 0:00–4:40

Від публічного API до реалізації Locator

[Дивитися з 00:00](https://www.youtube.com/watch?v=6QdvE9DHOIY&t=0s). Playwright складається з багатьох частин: browser lifecycle, locators, actions, assertions, downloads, reporting і tracing. Щоб відповісти на питання «що відбувається під капотом», автор відкриває реалізацію `Locator`, а не обмежується документацією верхнього рівня. `Locator` зберігає frame і спосіб пошуку елемента, а додаткові умови на кшталт `has`, `hasText` чи visibility-related filters добудовують запит. У Python named arguments роблять таку композицію схожою на Builder без окремого builder class. Практичний висновок: перед створенням власного selector DSL варто перевірити вже наявні аргументи конструктора й методи locator API.

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

Java · Сесії: AMA та PMP · 3:30–5:30

Event builder як набір automation-задач

[Дивитися з 03:30](https://www.youtube.com/watch?v=viR9Rnmxse4&t=210s). Багатокрокове створення event містить text fields, images, dates, location/online/hybrid modes, speakers і publish action. Для першої ітерації достатньо послідовних Playwright operations: знайти element, заповнити, натиснути й перевірити видимий результат. Окремі tests можуть покривати різні event types та їх відображення після публікації.

Практика курсу на YOY, домашні завдання та формат ПМП →

Java · Сесії: AMA та PMP · 6:00–9:30

OOP, патерни й ізоляція browser state

На базовому рівні потрібно розуміти primitives/value types, reference/object types, класи, об'єкти та принципи OOP. Із прикладних патернів найчастіше зустрічається Page Object; корисно впізнавати Singleton, Builder, Facade та інші рішення, але не впроваджувати їх без проблеми, яку вони реально спрощують. Page Factory виник навколо старих Selenium-підходів із lazy initialization елементів. Для сучасного Selenium або Playwright його не варто застосовувати за інерцією. У багатопоточному WebDriver framework кожен тест/worker повинен мати власний browser context або driver; спільний mutable driver спричиняє взаємний вплив тестів.

Що має вміти та знати мідл автоматизатор →

Java · Основний курс · 27:06–32:28

Fluent DTO і перші response assertions

Lombok `@Accessors(chain = true)` дозволяє ланцюжком викликати setters, а `@Data(staticConstructor = "of")` — створювати object без явного `new`. У демонстрації це скорочує вкладену підготовку request data порівняно з розгорнутим builder. Після створення suite тест має перевірити, що response містить згенерований title. Перший варіант зчитує його з RestAssured response через `jsonPath().getString(...)`; для endpoint, який повертає масив suites, потрібно отримати list titles, а не один string.

API-автоматизація: MVC і Jackson →

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

Decorator/custom assertion і зрозумілі failures

Коли generated API не дає потрібного message, автор обгортає response в custom assertion/decorator. Status assertion друкує expected status, actual status і response body в одном failure header. Це зменшує кількість кліків у report і швидше вказує на client/server error. Custom formatter має бути малим: standard string formatting краще за власний string-builder framework.

AssertJ: виразні асерти та їх генерація →
Запитати в чаті про «Builder» →