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

Python мануфактура · Сесії: AMA та PMP · 9:30–12:30

Lifecycle, declaration, initialization і live coding

Варто розуміти порядок, у якому test runner завантажує модулі, створює suite/test fixtures, запускає setup, test і teardown. Declaration задає ім'я та тип, assignment присвоює значення, а runtime initialization створює фактичний стан під час виконання програми. Точні терміни залежать від мови, але практичне питання однакове: коли ресурс уже існує й хто ним володіє. На співбесіді можуть попросити пояснити різницю між class та object, відрефакторити тест або написати надійний locator. Потрібно знати CSS/XPath настільки, щоб читати старий код, і віддавати перевагу user-facing locator API Playwright, коли семантична роль або label точніше виражає контракт.

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

Python мануфактура · Програма курсу · 1:31–3:01

Повне покриття варіантів

Якщо `result` створюється лише всередині гілок, неочікуване значення може залишити змінну неініціалізованою. Мінімальні безпечні варіанти — початковий `result = "unknown"` або завершальний `else`. Це важливо для нестандартних status codes та пошкоджених test data.

3 умови →

Python мануфактура · Сесії: 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 спричиняє взаємний вплив тестів.

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

Python мануфактура · Сесії: AMA та PMP · 6:20–9:20

Глибина знань зростає разом із seniority

Для middle і особливо senior рівня очікується розуміння типів даних, проходу collections, роботи з files та databases, object lifecycle, scope variables, initialization order і test runner lifecycle. Ці знання зазвичай закріплюються після реальної проблеми, а не після ізольованої лекції. Тому відповідь не вимірюється списком syntax topics. Junior має безпечно змінювати прості scripts; middle — діагностувати non-obvious behavior; senior — пояснювати system-level root cause й обирати правильний test seam.

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

Python мануфактура · Програма курсу · 13:19–17:00

Fixtures для авторизації і controllers

`pytest` fixtures виконують login, отримують JWT і передають його до `ProjectController` чи `SuiteController`. Якщо token вже збережено у scope fixture, нова авторизація не потрібна. Для створення suite спершу потрібен target project. Його можна підготувати окремою fixture або отримати в самому тесті через `ProjectController.get_all()`. Вибір залежить від того, чи це спільний precondition, чи важливий крок конкретного сценарію.

2. API автоматизація одразу правильно, MVC, pydantic →

Python мануфактура · Програма курсу · 38:20–42:53

Структура suites і підсумкова оптимізація

Загальні сценарії, наприклад login, залишаються спільними. Перевірки, залежні від тарифу, розкладаються в окремі packages для Free та Enterprise, кожен зі своєю fixture. Підсумкова схема: на першому чистому запуску state створюється; надалі він перевикористовується; page не перестворюється; кожен тест може запускатися окремо. Зміни комітяться з номером задачі та коротким описом storage, page initialization і структури suites.

2.1. Storage state: практична реалізація, фікстури для ролей →
Запитати в чаті про «initialization» →