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

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

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

Спроєктувати V0 structure без speculative folders

Візьміть один реальний web або API automation scope.
Створіть лише folders, які мають хоча б один поточний consumer.
Запишіть measurable condition для винесення database, messaging або другого domain на окремий рівень.
Мінімальне tree representation і три explicit upgrade conditions.

Неймінг та структура automation-проєкту →

Java · Додаткові матеріали · 1:16:24–1:21:00

Text conditions і читання бібліотеки

Selenide має різні text conditions: partial, exact, case-sensitive та варіанти, що враховують або ігнорують вкладені elements і whitespace. Їх слід вибирати за потрібним контрактом, а не звичкою. Через автодоповнення, перехід до реалізації та Project view можна дослідити доступні classes і methods бібліотеки; налаштування `Always Select Opened File` полегшує навігацію по її структурі.

Маленький рефакторинг і тестові дані у Java →

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

Матриця компетенцій через problem solving

Interview portal зазвичай вимагає оцінити language, framework, testing, Git і CI/CD, але не обовʼязково ставити окреме теоретичне питання на кожен пункт. Кандидату дають реальну проблему: як паралелити тести з обмеженою кількістю users, уникати race conditions або тестувати систему з кількох services. Глибина, структура відповіді та коректні терміни показують масштаб досвіду; уточнення закривають прогалини матриці.

Методики проведення співбесід →

Java · Сесії: AMA та PMP · 0:00–3:10

Базова планка: автоматизувати свою рутину

Перший критерій — уміти прибрати повторювану ручну роботу за прийнятну ціну. Це може бути Playwright, Cypress, Selenium, code generation або невеликий script будь-якою мовою. Важливіше отримати перевірюваний результат і feedback від сильнішого інженера, ніж одразу будувати «ідеальний framework». Глибоке знання мови стає потрібним, коли дефекти виникають на стиках: type conversion, concurrent requests, race conditions, database/file persistence, memory management, asynchronous behavior або lifecycle components. UI steps самі по собі цих причин не пояснюють.

Який рівень програмування потрібен automation engineer →

Java · Сесії: AMA та PMP · 15:00–18:00

Agent review і нове cognitive load

[Дивитися з 15:00](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=900s). Паралельні coding agents збільшують output, але потребують більше review. Engineer має одночасно думати про race conditions, ризики, completeness ticket-а, API/data contracts і місце transformation logic. Простий приклад — dates: backend може повернути timestamp, local date або значення з timezone; без єдиного контракту різні screens покажуть різні результати.

Vibe coding, склад команди та нова роль тестувальника →

Java · Сесії: AMA та PMP · 16:30–20:30

Незалежні користувачі, cleanup і цілісність даних

Спільний тестовий користувач створює race conditions: паралельні тести змінюють один стан, заважають один одному й роблять результат нестабільним. Найкращий шов — створювати унікального користувача або іншу сутність під конкретний тест чи worker. Фізичне видалення даних може зламати foreign keys та історичні зв'язки з orders, invoices або іншими сутностями. Через це продукт часто застосовує soft delete: запис залишається, але отримує статус deleted/inactive. Для тестових середовищ потрібно знати реальну політику refresh/cleanup; не слід бездумно накопичувати персональні production-дані або копіювати їх без маскування й визначеного строку зберігання.

Юзер менеджмент та костилі з якими ви стикнетесь в житті →

Java · Додаткові матеріали · 45:39–53:13

Фільтрація результатів і перевірка розміру collection

Новий сценарій шукає project без test cases і перевіряє текст `Zero tests`. Однієї перевірки тексту недостатньо: вона може пройти до завершення фільтрації, тому через Selenide знаходять collection видимих list items і очікують `size(1)`. `$` повертає один елемент, а `$$` — collection, до якої можна застосовувати collection conditions.

Маленький рефакторинг і тестові дані у Java →

Java · Додаткові матеріали · 49:55–56:30

Умови та перевірки в Selenide

Очікуваний стан виражається через `shouldBe(...)` або `shouldHave(...)` і `Condition`, наприклад `visible` чи `text(...)`. Текстовий локатор створюється через `Selectors.byText(...)`, але пошук має стосуватися видимого DOM-тексту, а не вмісту `script` чи невидимих атрибутів. Static imports для Selenide, Selectors і Condition прибирають повторення назв class, зберігаючи читабельний DSL.

Створення першого Java-проєкту та тесту →

Java · Основний курс · 1:41:30–1:44:07

Реалізація `ExpectedConditions` і межа між перевіркою та дією

Наприкінці відкривається код готових conditions. `elementToBeClickable` спочатку перевіряє visibility, а потім enabled state. Між цими операціями DOM може оновитися, тому навіть складена умова має коротке вікно для `StaleElementReferenceException`; polling та обробка перехідної помилки визначають, чи буде зроблена наступна спроба. Створений Selenium-врапер слугує підготовкою до наступної теми — аналогічної обгортки над Playwright. Принципи залишаться подібними, але API та спосіб взаємодії з браузером матимуть інший синтаксис.

Selenium: очікування та мікрообгортки →
Запитати в чаті про «conditions» →