Ответ
E2E-тест (end-to-end) — это тип автоматизированного тестирования, который проверяет работу приложения как целостной системы, имитируя действия реального пользователя от начала до конца бизнес-сценария.
Пример E2E-теста для процесса оформления заказа с использованием Playwright:
import { test, expect } from '@playwright/test';
test('Полный цикл покупки товара', async ({ page }) => {
// 1. Открытие сайта и выбор товара
await page.goto('https://demo-shop.example.com');
await page.click('data-testid=product-card-1');
await page.click('text=В корзину');
// 2. Переход в корзину и оформление
await page.click('#cart-icon');
await expect(page.locator('.cart-item')).toHaveCount(1);
await page.click('text=Оформить заказ');
// 3. Заполнение формы
await page.fill('#email', 'customer@example.com');
await page.fill('#address', 'ул. Примерная, 123');
await page.click('#confirm-payment');
// 4. Проверка успешного завершения
await expect(page.locator('h1')).toHaveText('Заказ подтверждён!');
await expect(page).toHaveURL(/order-success/);
});
Характеристики E2E-тестов:
- Цель: Проверка интеграции всех компонентов (фронтенд, бэкенд, БД, сторонние сервисы).
- Уровень: Высокий, ближе к пользовательскому сценарию.
- Выполнение: Часто запускаются в CI/CD пайплайне после модульных и интеграционных тестов.
- Инструменты: Cypress, Playwright, Selenium, TestCafe.