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

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

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

Заміна UI setup на API precondition

Знайдіть одну OpenAPI operation за operationId.
Напишіть окремий API contract test для status і мінімальної response schema.
Передайте отриманий ID у page object і приберіть лише зайві UI setup-кроки.
API test окремо перевіряє контракт, а UI test починається з готового server-side state й перевіряє свій основний сценарій.

3. API preconditions →

Python мануфактура · Програма курсу · 0:00–4:45

API як швидша test precondition

UI-сценарій має пройти довгий user journey лише для того, щоб дістатися стану, який перевіряє тест. Якщо створення або пошук проєкту не є предметом перевірки, його можна підготувати через backend API й одразу відкрити сторінку за `project_id`. Спочатку треба дослідити Network, але server-side rendering може приховати окремі XHR-запити. Тоді джерелом контракту стає офіційна OpenAPI/Swagger документація backend, а не припущення за URL інтерфейсу.

3. API preconditions →

Python мануфактура · Програма курсу · 50:20–52:50

Підсумкова архітектура precondition

API package містить client і мінімальні response models, fixture повертає авторизований client, а UI-тест використовує тільки потрібний endpoint для setup. Login token не перевипускається перед кожною операцією instance. Практична вправа — реалізувати аналогічний precondition через наявний у проєкті HTTP client (`requests`, `httpx` або Playwright APIRequest), перевірити authentication окремо й лише потім під’єднати результат до UI-сценарію.

3. API preconditions →

Python мануфактура · Програма курсу · 11:00–14:00

Fixtures як preconditions і postconditions

У двох тестах повторюється авторизація, тому з’являється fixture `login_user`. Fixture розглядається як механізм підготовки та, за потреби, очищення стану до/після тесту. Для логіну обирається scope `function`: підготовка виконується окремо перед кожним тестом, який явно запитує fixture. Це ізолює сценарії й не поширює авторизований стан на тести, яким він не потрібен.

3. Рефакторинг: Faker, DataClass, Fixtures →

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 →
Запитати в чаті про «precondition» →