Как вы тестируете HTTP-редиректы (коды состояния 3xx)?

«Как вы тестируете HTTP-редиректы (коды состояния 3xx)?» — вопрос из категории HTTP и веб-протоколы, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование редиректов включает проверку корректности перенаправления и сохранения данных. Основные коды:

Код Назначение Особенности тестирования
301 Постоянное перемещение Проверка обновления закладок/кеша
302 Временное перенаправление Сохранение метода запроса (GET)
307 Временное перенаправление Сохранение метода и тела запроса
304 Не изменено Работа с кешированием (If-Modified-Since)

Ключевые проверки:

  1. Корректность конечного URL:

    // Пример проверки в Postman
    pm.test("Redirect leads to correct URL", function() {
    pm.expect(pm.response.code).to.equal(301);
    pm.expect(pm.response.headers.get("Location"))
      .to.equal("https://new-example.com/resource");
    });
  2. Сохранение данных:

    • Параметры query-строки после редиректа
    • Данные формы (для POST-запросов с 307)
    • Cookies и заголовки авторизации
  3. Поведение клиента:

    • Количество редиректов в цепочке (избегать циклических)
    • Время ответа с учетом дополнительных запросов
    • Обработка редиректов JavaScript-фреймворками