← Назад к вопросам
Как использовать cookie в тестировании?
1.3 Junior🔥 131 комментариев
#Веб-тестирование#Инструменты тестирования
Комментарии (1)
🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Использование Cookie в тестировании веб-приложений
Cookie (куки) — это небольшие фрагменты данных, которые сервер отправляет браузеру и которые браузер сохраняет для последующих запросов. В контексте тестирования работа с куками является критически важной для проверки **аутентификации**, **сессий**, **персонализации** и **согласия пользователей**. Вот ключевые аспекты их использования.
Основные сценарии тестирования с Cookie
- Тестирование аутентификации и сессий: Проверка, что после успешного логина создается сессионная кука (например,
sessionidилиJSESSIONID), а после выхода — удаляется. Тестирование таймаута сессии — истекает ли кука через заданное время неактивности. - Тестирование безопасности:
* **HttpOnly:** Проверка, что критичные куки (сессионные) помечены атрибутом `HttpOnly=true`, что защищает их от доступа через JavaScript и снижает риск XSS-атак.
* **Secure:** Проверка, что куки, передаваемые по HTTPS, имеют флаг `Secure`, чтобы они не отправлялись по незашифрованному HTTP-соединению.
* **SameSite:** Валидация атрибута `SameSite` (Strict, Lax, None) для защиты от CSRF-атак и неправильного кросс-доменного использования.
- Тестирование функционала, зависящего от состояния: Проверка корзины покупок, предпочтений языка/темы, отслеживания воронки продаж — всё это часто хранится в куках.
- Тестирование согласий (GDPR, CCPA): Валидация, что при отклонении или принятии политик (например, аналитические куки) соответствующие куки корректно устанавливаются или блокируются. Важно тестировать сценарий "Принять всё", "Отклонить всё" и выборочное согласие.
- Кросс-браузерное и кроссплатформенное тестирование: Проведение одних и тех же сценариев в разных браузерах (Chrome, Firefox, Safari) и на разных устройствах, так как обработка куков может отличаться (особенно в мобильных браузерах).
- Тестирование с очищенными куками: Проверка поведения приложения для нового пользователя (первый визит) и после ручной очистки кеша и куков.
Практические методы работы с Cookie в автотестах
В инструментах автоматизации (Selenium WebDriver, Playwright, Cypress) существуют API для управления куками.
Пример на Python (Selenium WebDriver):
from selenium import webdriver
driver = webdriver.Chrome()
# 1. Получить все куки для текущего домена
all_cookies = driver.get_cookies()
print(f"Все куки: {all_cookies}")
# 2. Получить значение конкретной куки
session_cookie = driver.get_cookie("session_id")
if session_cookie:
print(f"Значение session_id: {session_cookie['value']}")
# 3. Добавить новую куку (полезно для предварительной настройки состояния)
driver.add_cookie({
'name': 'test_preference',
'value': 'dark_theme',
'domain': '.example.com'
})
# 4. Удалить конкретную куку
driver.delete_cookie("test_preference")
# 5. Очистить все куки (симуляция нового пользователя)
driver.delete_all_cookies()
driver.quit()
Пример на JavaScript (Playwright):
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
// Получить куки
const cookies = await context.cookies();
console.log(cookies);
// Установить куку
await context.addCookies([{
name: 'locale',
value: 'ru_RU',
domain: 'example.com',
path: '/'
}]);
// Очистить куки в контексте
await context.clearCookies();
await browser.close();
})();
Инструменты для ручного тестирования и отладки
- Панель разработчика (DevTools) браузера: Вкладка Application (Chrome) или Storage (Firefox) позволяет просматривать, редактировать и удалять куки для текущего домена.
- Прокси-инструменты (Fiddler, Charles Proxy): Позволяют перехватывать HTTP-трафик, модифицировать заголовки запросов и ответов, включая заголовок
Set-Cookie. - Расширения браузера: Например, "EditThisCookie" для быстрого управления куками вручную.
Ключевые проверки (Checklist)
- Корректность установки: Кука устанавливается после определенного действия (логин, выбор валюты).
- Срок жизни: Сессионные куки (
Session) удаляются после закрытия браузера, постоянные (Expires/Max-Age) — сохраняются. - Безопасность: Наличие и корректность флагов
HttpOnly,Secure,SameSite. - Влияние на UI/UX: Изменения, связанные с куками (тема, язык), сразу применяются в интерфейсе.
- Обработка отсутствия/повреждения: Приложение должно адекватно реагировать на удаленную или модифицированную куку (например, перенаправлять на страницу логина).
- Кросс-доменность: Для поддоменов (например,
shop.site.com) куки могут устанавливаться на родительский домен (.site.com), что необходимо проверять.
Таким образом, тестирование cookie — это комплексная задача на стыке функционального, безопасностного и кросс-браузерного тестирования. Понимание их работы позволяет эффективнее выявлять дефекты, связанные с состоянием пользователя, и обеспечивать надежность и безопасность веб-приложения.