← Назад ко всем вопросам

Что такое E2E и пример E2E-сценария

1️⃣ Как кратко ответить

E2E (End-to-End) тестирование — это метод тестирования, который проверяет полную функциональность приложения от начала до конца, включая взаимодействие с внешними системами и компонентами. Цель E2E тестирования — убедиться, что все интегрированные части системы работают вместе как ожидается.

2️⃣ Подробное объяснение темы

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

Зачем нужно E2E тестирование

  • Проверка интеграции: E2E тесты проверяют, как различные модули и компоненты системы взаимодействуют друг с другом.
  • Обнаружение ошибок: Они помогают выявить ошибки, которые могут возникнуть при взаимодействии между различными частями системы.
  • Уверенность в работе системы: E2E тесты дают уверенность в том, что система работает как ожидается в реальных условиях использования.

Пример E2E-сценария

Рассмотрим пример E2E-сценария для интернет-магазина, где пользователь добавляет товар в корзину и оформляет заказ.

  1. Открытие главной страницы: Пользователь открывает главную страницу интернет-магазина.
  2. Поиск товара: Пользователь вводит название товара в строку поиска и нажимает кнопку поиска.
  3. Выбор товара: Пользователь выбирает товар из списка результатов поиска.
  4. Добавление в корзину: Пользователь добавляет товар в корзину.
  5. Переход в корзину: Пользователь переходит в корзину, чтобы проверить добавленные товары.
  6. Оформление заказа: Пользователь нажимает кнопку "Оформить заказ", вводит данные для доставки и выбирает способ оплаты.
  7. Подтверждение заказа: Пользователь подтверждает заказ и получает уведомление о его успешном оформлении.

Пример кода E2E теста

Ниже приведен пример E2E теста на языке JavaScript с использованием фреймворка Cypress:

describe('E2E тест для интернет-магазина', () => {
  it('Пользователь может оформить заказ', () => {
    // Открытие главной страницы
    cy.visit('https://example.com');
​
    // Поиск товара
    cy.get('input[placeholder="Поиск"]').type('Ноутбук');
    cy.get('button[type="submit"]').click();
​
    // Выбор товара
    cy.contains('Ноутбук XYZ').click();
​
    // Добавление в корзину
    cy.get('button.add-to-cart').click();
​
    // Переход в корзину
    cy.get('a[href="/cart"]').click();
​
    // Оформление заказа
    cy.get('button.checkout').click();
    cy.get('input[name="address"]').type('123 Main St');
    cy.get('select[name="payment"]').select('Кредитная карта');
​
    // Подтверждение заказа
    cy.get('button.confirm').click();
​
    // Проверка успешного оформления заказа
    cy.contains('Ваш заказ успешно оформлен').should('be.visible');
  });
});
  • cy.visit('https://example.com');: Открывает главную страницу интернет-магазина.
  • cy.get('input[placeholder="Поиск"]').type('Ноутбук');: Находит строку поиска и вводит в нее текст "Ноутбук".
  • cy.get('button[type="submit"]').click();: Нажимает кнопку поиска.
  • cy.contains('Ноутбук XYZ').click();: Находит и выбирает товар "Ноутбук XYZ" из результатов поиска.
  • cy.get('button.add-to-cart').click();: Нажимает кнопку "Добавить в корзину".
  • cy.get('a[href="/cart"]').click();: Переходит в корзину.
  • cy.get('button.checkout').click();: Нажимает кнопку "Оформить заказ".
  • cy.get('input[name="address"]').type('123 Main St');: Вводит адрес доставки.
  • cy.get('select[name="payment"]').select('Кредитная карта');: Выбирает способ оплаты "Кредитная карта".
  • cy.get('button.confirm').click();: Подтверждает заказ.
  • cy.contains('Ваш заказ успешно оформлен').should('be.visible');: Проверяет, что появилось сообщение об успешном оформлении заказа.

Этот тестовый сценарий проверяет весь процесс оформления заказа от начала до конца, включая взаимодействие с пользовательским интерфейсом и проверку успешного завершения процесса.

Тема: Виды и уровни тестирования
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки