Как тестировать работу с HTTP Cookie?

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

Ответ

Тестирование Cookie включает проверку их установки сервером, отправки клиентом, атрибутов безопасности и жизненного цикла.

Ключевые аспекты для проверки:

  1. Установка (Set-Cookie): Наличие, значение, срок жизни (Expires, Max-Age), домен (Domain), путь (Path).
  2. Атрибуты безопасности: Флаги Secure (передача только по HTTPS), HttpOnly (недоступность из JavaScript), SameSite (защита от CSRF-атак).
  3. Отправка (Cookie): Корректная передача клиентом в последующих запросах к указанным домену и пути.
  4. Модификация и валидация: Обработка сервером невалидных, истекших или поддельных значений.

Пример проверки в Postman/Newman:

pm.test("Session cookie is Secure and HttpOnly", function() {
    const setCookieHeader = pm.response.headers.get('Set-Cookie');
    pm.expect(setCookieHeader).to.include('sessionId');
    pm.expect(setCookieHeader).to.include('Secure');
    pm.expect(setCookieHeader).to.include('HttpOnly');
    pm.expect(setCookieHeader).to.include('SameSite=Strict');
});

Инструменты: Браузерные DevTools (вкладка Application/Storage), прокси (Charles/Fiddler), автоматизация (Selenium WebDriver API для управления cookie), специализированные библиотеки (например, requests в Python).