Рекомендация

Как писать устойчивые автотесты

Как писать устойчивые автотесты

Рекомендация для авторов автотестов в ComplexQA: как снизить хрупкость шагов Playwright на подтверждённом домене команды.

Зачем

Нестабильный локатор, клик по новой вкладке и длинная пауза вместо ожидания элемента дают ложные падения в запуске автотестов. Устойчивый сценарий опирается на точные Target, явные ожидания и статус READY только у готовых CASE.

Как устроить работу

  1. Предпочитайте локаторы ROLE, LABEL, TESTID точным CSS с подстрокой *=.
  2. Перед действием дождитесь элемента: waitForSelector или toBeVisible, а не длинный waitForTimeout.
  3. Не кликайте ссылки с target=_blank. Откройте адрес через goto с полным URL https на подтверждённом хосте.
  4. Выносите повторяемые локаторы в репозиторий объектов.
  5. Выставляйте статус READY у CASE только когда сценарий и синтаксис проверены.
  6. Логин и пароль берите через TEST_ACCOUNT, не через INLINE.

Подробный порядок шагов: Составление шагов автотеста. Типичные ложные падения отчёта: Как задавать шаги автотеста без ложных падений.

Чего избегать

ПлохоХорошо
CSS с *= «на всякий случай»Точный TESTID или ROLE + имя
waitForTimeout на 10000 ms перед каждым кликомwaitForSelector / toBeVisible по Target
Клик по ссылке с новой вкладкойgoto на полный URL
Локатор скопирован в десять автотестовОдин элемент в репозитории объектов
CASE в READY с черновыми шагамиPENDING, пока сценарий не готов

Пример: хрупкая пауза

json
{
  "action_name": "waitForTimeout",
  "value_text": "10000",
  "value_source_type": "INLINE"
}

Пример: ожидание элемента

json
{
  "action_name": "waitForSelector",
  "target": { "kind": "TESTID", "value": "results-table" },
  "timeout_ms": 15000
}

Версия 1.1.0 · Последнее изменение 2026-09-14

Страница не помогла?