1. Локаторы протекают в тесты
# ❌ Локатор в тесте — дублирование, хрупкость
def test_x(page):
page.get_by_placeholder("Username").fill("u")
# ✅ Через метод страницы
def test_x(login_page):
login_page.login("u", "p")
2. Зависимые тесты при параллельном прогоне
Если тест B полагается на данные, созданные тестом A, при -n auto они попадут в разные воркеры и B упадёт. Каждый тест должен сам готовить своё состояние (через UI или APIRequestContext).
3. Общий аккаунт/данные между тестами
Параллельные тесты, меняющие одну и ту же запись на сервере, мешают друг другу. Используйте отдельные данные на тест (уникальные имена, отдельные пользователи).
4. Забытые артефакты в CI
--tracing=retain-on-failure создаёт trace.zip, но если CI не сохраняет папку test-results/ как артефакт — отлаживать нечего. Настройте upload артефактов.
5. scope="session" у контекста
Не делайте page/context сессионными ради «скорости» — потеряете изоляцию и получите флак. Сессионным может быть лишь browser (он и так такой).
⚠️ Поведение флагов зависит от версии — сверяйтесь с документацией.