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

Java · Основний курс · 11:05–20:02

Підключення Playwright до Java-проєкту

Залежність `com.microsoft.playwright` знаходиться через Maven repository і додається у `build.gradle`; для Maven-проєкту потрібно обрати відповідний dependency snippet. Після синхронізації імпорт перевіряється через External Libraries, а сам тест створюється як JUnit test у пакеті Playwright. Показано також конвертацію невеликого Selenium/Selenide прикладу в Playwright за допомогою LLM. Такий інструмент доречний для локального рефакторингу або перенесення синтаксису між мовами й бібліотеками, але початківцю все одно важливо самостійно писати код і вміти знаходити документацію. Прямий Java API вимагає явно створити `Playwright`, `BrowserType`, `Browser` і `Page`. Нову вкладку створюють через browser context, тому автор вважає базовий API низькорівневішим за Selenide та радить згодом сховати повторювану ініціалізацію.

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

Java · Сесії: AMA та PMP · 8:38–12:10

Поступове впровадження нового інструмента

Переписувати весь test suite з нуля зазвичай не потрібно. Коли старий тест зламався або нову задачу значно легше реалізувати новим засобом, її можна зробити на uv чи Playwright і залишити робочі старі тести на pip або Selenium. В одному репозиторії тимчасово можуть співіснувати: - pip і uv; - Maven і Gradle; - Selenium і Playwright; - pytest та інший test runner; - JUnit і TestNG. CI просто виконує окремі команди для відповідних наборів. Основний ризик — не саме співіснування, а конфлікти спільних транзитивних залежностей і додаткова вартість підтримки двох стеків. Найбезпечніший аргумент для міграції — конкретна користь на конкретному сценарії: швидше встановлення, простіша діагностика, потрібне мокання network або стабільніша робота з браузером. Після доказу підхід можна розширювати.

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

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

Локальні пакети й ізоляція проєктів

Мови й екосистеми мають власні package managers або build tools: pip, npm, Maven, Gradle та інші. Вони завантажують бібліотеки з центральних репозиторіїв і можуть кешувати їх локально, але залежності конкретного проєкту визначаються окремо. Python virtual environment ізолює бібліотеки одного проєкту від іншого. На одному комп’ютері можуть співіснувати робочі й особисті репозиторії з різними версіями Playwright, pytest та інших пакетів. Конфлікт можливий, якщо запустити код не тим глобальним Python або неправильно вибрати interpreter. Самі залежності коректно створених `venv` не повинні впливати на сусідні проєкти.

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

Java · Додаткові матеріали · 0:00–3:15

Мета курсу та підготовка інструментів

Курс орієнтований на кодову автоматизацію, а не на record/playback чи no-code рішення. Як цільову систему використано Testomat.io: курс охоплюватиме UI та окремі API-операції. Автор рекомендує встановити JetBrains Aqua, а Java/JDK завантажити безпосередньо через IDE. Gradle або Maven знадобляться для керування збіркою, залежностями та консольного запуску тестів.

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

Java · Додаткові матеріали · 2:16–4:02

Застарілі indexes і Invalidate Caches

JetBrains IDE індексує Git, Java, Gradle, Maven, Node.js та інші встановлені tools. Після зміни версій без restart IDE може продовжити використовувати старі indexes і показувати хибні errors або не бачити dependencies. У такому випадку можна використати `Invalidate Caches`, очистити filesystem/VCS indexes і перезапустити IDE.

Діагностика Java-проєкту в JetBrains IDE →

Java · Сесії: AMA та PMP · 5:04–8:38

Чим uv відрізняється від pip

pip — базовий і простий інструмент, тоді як uv дає швидше встановлення, сучасніше керування проєктом і зручніші механізми для команд запуску та конфігурації. uv написаний на Rust і особливо помітно скорочує час відновлення залежностей у CI та після клонування репозиторію. Окрема перевага — робота з конфліктами транзитивних залежностей, коли дві бібліотеки очікують різні версії третьої. uv також дає чіткіший контроль за правилами оновлення й фіксації версій. Аналогія з Java: Maven виконує базову задачу, Gradle надає ширші можливості й за коректної конфігурації може швидше збирати проєкт. Але переваги нового інструмента треба пов’язувати з реальною проблемою команди, а не лише з його новизною.

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

Java · Основний курс · 5:14–7:38

Підключення RestAssured і структура тестів

До проєкту додається актуальна RestAssured dependency. Практичний сценарій складається з логіну, отримання проєкту і створення test suite, який пізніше можна використати як API precondition для UI-тесу. Якщо UI- та API-теси живуть в одному проєкті, їх варто рознести за packages `web` і `api`. Перший API-тест створюється як окремий Java class і спочатку збирає весь flow в одному місці.

Rest Assured: базове використання →

Java · Додаткові матеріали · 6:10–8:35

Що не можна комітити

До Git додаються source code, Gradle Wrapper і потрібні configuration files. Не комітяться `.gradle`, `build`, `out`, локальна `.idea`, Maven build output та файли з environment variables чи secrets. Виняток для частини `.idea` може бути свідомим командним рішенням, наприклад для спільного code style. `.gitignore` має явно захищати repository від згенерованого сміття та приватних даних.

Публікація Java-проєкту на GitHub →

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

Java project, Gradle і JUnit

Створюється Java/Gradle project з group/package naming, JUnit Platform і dependencies. Відео використовує Java 11/17 і пояснює різницю Maven та Gradle як build tools. Repositories та artifact storage потрібні не лише для third-party libraries: компанія може публікувати власні clients і test artifacts. Точні dependency versions мають бути pinned і відтворювані на CI.

API: що тестувати та як написати перший тест →

Java · Додаткові матеріали · 35:49–44:07

Credentials і URL у `.env`

Логін, password і внутрішній base URL не слід публікувати в repository. Для Java-проєкту додається Dotenv dependency через Maven Central і Gradle, створюється `.env` у корені, а сам файл додається до `.gitignore`. Значення завантажуються через Dotenv API під час запуску; IDE plugin лише полегшує підказки ключів або маскування значень і може вимагати restart.

Маленький рефакторинг і тестові дані у Java →
Запитати в чаті про «Maven» →