Скиллы Новичок Разное

E2E Testing Patterns

Скачать ZIP
14
Предупреждение о рисках!

Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.

Создавайте надежные, быстрые и поддерживаемые end-to-end тесты с использованием Playwright и Cypress. Такие тесты дают уверенность при релизе, позволяют находить регрессии раньше пользователей и обеспечивают стабильность CI/CD пайплайнов.

Что внутри

  • Рекомендации по тестовой пирамиде (когда использовать E2E, а когда — нет)
  • Ключевые принципы: поведение важнее реализации, независимость тестов, детерминированные ожидания
  • Паттерны Playwright и Cypress
  • Стратегии выбора селекторов
  • Визуальное и accessibility-тестирование
  • Подходы к отладке и устранению flaky-тестов
  • Интеграция с CI/CD

Когда использовать E2E тесты

  • Тестирование критических пользовательских сценариев (логин, регистрация, checkout)
  • Отладка нестабильных (flaky) тестов
  • Настройка CI/CD пайплайнов с браузерными тестами
  • Проверка сложных пользовательских взаимодействий
  • Выбор между unit / integration / E2E тестированием

Пирамида тестирования

/\ 
/E2E\ ← Мало: только критические сценарии
/─────\
/Integr\ ← Больше: взаимодействия компонентов
/────────\
/Unit Tests\ ← Много: быстрые и изолированные тесты
/────────────\

Правило: если поломка функции критична для бизнеса — покрывайте E2E тестом. Если нет — используйте более быстрые уровни тестирования.

Что тестировать с помощью E2E

  • Ключевые пользовательские сценарии (login → dashboard → действие)
  • Многошаговые процессы (онбординг, checkout)
  • Интеграцию с реальными API
  • Кроссбраузерную совместимость
  • Аутентификацию и авторизацию

Что НЕ тестировать через E2E

  • Логику на уровне функций (используйте unit-тесты)
  • API-контракты (integration-тесты)
  • Крайние случаи (слишком медленно)
  • Внутреннюю реализацию

Ключевые принципы

  • Тестируйте поведение, а не реализацию — проверяйте то, что видит пользователь
  • Независимость тестов — каждый тест сам создает и очищает данные
  • Детерминированные ожидания — никаких фиксированных таймаутов
  • Стабильные селекторы — используйте роли, label и data-testid
  • Скорость — параллелизация, мокирование и оптимизация

Стратегия селекторов

Приоритет выбора селекторов:

  • Роли (getByRole)
  • Label (getByLabel)
  • data-testid
  • Текст
  • CSS-классы (избегать)

Паттерны Playwright

Пример конфигурации:

// playwright.config.ts
import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
 testDir: "./e2e",
 timeout: 30000,
 expect: { timeout: 5000 },
 fullyParallel: true,
 retries: process.env.CI ? 2 : 0,
 use: {
 baseURL: "http://localhost:3000",
 trace: "on-first-retry",
 screenshot: "only-on-failure"
 }
});

Рекомендуется использовать Page Object Model для инкапсуляции логики страниц и повышения поддерживаемости тестов.

Паттерны Cypress

  • Создание кастомных команд
  • Перехват сетевых запросов
  • Мокирование API

Борьба с flaky-тестами

  • Избегайте фиксированных ожиданий (waitForTimeout)
  • Используйте ожидания по состоянию (waitFor)
  • Изолируйте тесты
  • Устраняйте гонки данных
  • Добавляйте трассировку и логи

Отладка тестов

  • Запуск в headed-режиме
  • Использование trace viewer
  • Скриншоты и видео при падениях
  • Пошаговое выполнение тестов

Дополнительные практики

  • Визуальное регрессионное тестирование
  • Accessibility-проверки (axe-core)
  • Параллельный запуск тестов
  • CI/CD интеграция (например, GitHub Actions)

Вывод

E2E тесты — это инструмент для проверки того, что система работает целиком. Они должны покрывать только критические пользовательские сценарии, быть быстрыми, стабильными и легко поддерживаемыми. Правильное применение паттернов позволяет избежать flaky-тестов и значительно повысить уверенность в релизах.


Файл из источника

10940_e2e-testing-patterns-1.0.0.zip