Что происходит при нажатии на кнопку в веб-форме?

«Что происходит при нажатии на кнопку в веб-форме?» — вопрос из категории Веб-тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

С точки зрения тестирования, нажатие на кнопку в форме инициирует цепочку событий, которые необходимо проверять.

Типичный сценарий для кнопки type="submit":

  1. Браузер собирает данные со всех полей формы (input, select, textarea).
  2. Выполняется встроенная HTML5-валидация (проверяются атрибуты типа required, pattern).
  3. Если валидация прошла, браузер формирует HTTP-запрос:
    • Метод: определяется атрибутом method формы (GET/POST).
    • URL: определяется атрибутом action.
    • Данные: добавляются в тело запроса (POST) или в URL-строку (GET).
  4. Браузер отправляет запрос на сервер и, как правило, перезагружает страницу для отображения ответа.

Что проверяет QA-инженер:

  • Корректность данных: Отправляются ли правильные значения полей? Кодировка данных верна?
  • Валидация: Работает ли как клиентская (HTML/JS), так и серверная валидация? Сообщения об ошибках понятны?
  • Поведение: Происходит ли ожидаемый редирект или обновление интерфейса (в SPA)?
  • Обработка ошибок: Как форма ведет себя при сетевых сбоях или возврате ошибок (4xx, 5xx) от сервера?
  • Безопасность: Нет ли уязвимостей, таких как XSS или недостаточная проверка данных на стороне сервера?

Для кнопок type="button" поведение определяется JavaScript-обработчиками, что требует проверки соответствующей клиентской логики.