Ответ
При автоматизации негативных сценариев я проверяю, что система корректно обрабатывает невалидные данные и показывает понятные сообщения об ошибках. Вот мой подход на примере теста регистрации с использованием Selenium WebDriver и POM:
-
Определяю тестовые данные для каждого негативного кейса:
- Пустые обязательные поля.
- Неверный формат email.
- Пароль, не соответствующий политике (слишком короткий, без цифр).
- Несовпадающие пароли в полях "Пароль" и "Подтверждение".
-
Создаю параметризованные тесты. Это позволяет запустить все сценарии одним методом.
Пример на Python (pytest + Selenium):
import pytest
from selenium.webdriver.common.by import By
from pages.registration_page import RegistrationPage
# Набор тестовых данных: (email, password, confirm_password, expected_error)
TEST_DATA = [
("", "StrongPass123", "StrongPass123", "Email is required"),
("invalid-email", "StrongPass123", "StrongPass123", "Enter a valid email"),
("test@example.com", "short", "short", "Password must be at least 8 characters"),
("test@example.com", "StrongPass123", "DifferentPass456", "Passwords do not match"),
]
@pytest.mark.parametrize("email, pwd, confirm_pwd, expected_error", TEST_DATA)
def test_negative_registration_scenarios(driver, email, pwd, confirm_pwd, expected_error):
"""Параметризованный тест негативных сценариев регистрации."""
reg_page = RegistrationPage(driver)
reg_page.open()
# Заполняем форму невалидными данными
reg_page.enter_email(email)
reg_page.enter_password(pwd)
reg_page.confirm_password(confirm_pwd)
reg_page.submit_form()
# Проверяем, что форма НЕ была отправлена (осталась на странице)
assert reg_page.is_page_opened(), "Form was submitted unexpectedly."
# Проверяем, что появилось ожидаемое сообщение об ошибке
actual_error = reg_page.get_error_message()
assert expected_error in actual_error, f"Expected error '{expected_error}', got '{actual_error}'"
# Дополнительно: проверяем, что валидные данные в полях не сбросились (если это требуется)
if email:
assert reg_page.get_email_field_value() == email
- Ключевые проверки для негативных сценариев:
- Форма не отправляется (браузер остается на той же странице или не происходит перехода).
- Появляется целевое сообщение об ошибке рядом с соответствующим полем или в общем блоке.
- Визуальное выделение ошибочного поля (часто добавляется CSS-класс с красной обводкой).
- Корректность санитизации данных (например, проверка на SQL-инъекции или XSS возвращает общую ошибку валидации, а не детали серверной ошибки).