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

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

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

Поведінка тестів у CI

Багато CI-систем встановлюють стандартну environment variable `CI`. Проєкт читає її, щоб увімкнути CI-специфічні налаштування: headless browser, відсутність локального video recording або іншу політику traces. Це дозволяє зберегти один кодовий шлях із мінімальною конфігураційною різницею. Зміни комітяться й пушаться в task branch, після чого результат перевіряється не лише за загальним статусом, а й за logs конкретної job.

2. Практика та написання пайплану CI/CD →

Python мануфактура · Програма курсу · 4:10–6:10

Діагностика hover-різниці на CI

Trace показує реальну причину: на CI hover відбувся, але очікуваний UI state не став видимим так, як локально. Це звужує проблему з абстрактного «тест падає на CI» до конкретної взаємодії браузера й locator assertion. У демонстрації перевірка адаптується для CI/headless режиму, а також розглядається примусова взаємодія. Такий workaround треба застосовувати лише після перегляду trace: інакше легко приховати реальний дефект сторінки або тесту.

3. Фікс трейсів на СІ →

Python мануфактура · Сесії: AMA та PMP · 7:00–10:00

Ресурси runner для UI-тестів

Runner клонує репозиторій, встановлює або використовує залежності та запускає тестовий процес. UI-тести додатково піднімають один чи кілька браузерів; навіть headless browser споживає відчутну кількість RAM. Розмір runner слід визначати за реальною паралельністю, наборами браузерів і піковим споживанням, а не за вимогами звичайного application build.

Інфраструктура автотестів та її нюанси →

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

Launch options і context options

Playwright дозволяє передати частину параметрів через CLI, але для керованої конфігурації у відео перевизначаються pytest fixtures `browser_type_launch_args` і `browser_context_args`. Перша група відповідає за запуск браузера: `headless`, `slow_mo`, launch timeout і browser channel. Друга — за ізольований browser context: viewport, locale, timezone, permissions, HTTPS errors, headers, base URL та запис відео. Viewport варто обирати з підтримуваних продуктом меж. Мінімальний підтримуваний розмір часто краще виявляє перекриття й недоступні елементи, ніж великий екран розробника. При цьому viewport — це область сторінки всередині браузера, а не повний розмір системного вікна. `slow_mo` корисний для демонстрації або візуальної діагностики, але не є способом синхронізації й не повинен маскувати flaky tests. Надійний тест очікує конкретний стан через locator assertions або іншу умову, а не покладається на постійну затримку між діями.

1. Налаштування Playwright та Pytest, простий репортінг →

Python мануфактура · Програма курсу · 28:00–35:30

Trace Viewer і мінімальний smoke gate

Завантажений trace відкривається через Playwright Trace Viewer. Демонстрація виявляє, що hover-стан поводиться інакше на headless CI runner, а сторінка може зберігати неочікуваний authorization state. Тимчасовий fix перевіряється повним smoke-командним запуском, але нез’ясована причина shared state прямо залишається окремою проблемою, а не оголошується остаточно виправленою. Smoke suite має падати рано й зупиняти беззмістовний regression run, якщо застосунок не завантажився або критичний flow зламаний. Якщо smoke зелений, а regression масово червоний, критерії smoke треба переглянути.

2. Практика та написання пайплану CI/CD →
Запитати в чаті про «headless» →