Ответ
Да, постоянно. Работа с cookies — это ключевой навык при тестировании веб-приложений, особенно для эмуляции состояния пользовательской сессии и тестирования функций, зависящих от аутентификации.
Конкретные кейсы применения в моей практике:
-
Тестирование аутентификации и сессий:
- Сценарий: После успешного логина сервер устанавливает cookie
sessionId. Все последующие запросы должны содержать этот cookie для доступа к защищенным страницам. - Подход в Selenium WebDriver (Java): Я автоматизировал сценарий, где тест логинится один раз, сохраняет cookie, а затем использует его для доступа к другим разделам без повторного ввода пароля, что ускоряет прогон тестов.
// 1. Логин и получение cookie driver.get("https://app.example.com/login"); driver.findElement(By.id("username")).sendKeys("testuser"); driver.findElement(By.id("password")).sendKeys("pass123"); driver.findElement(By.id("submit")).click();
// Сохраняем важную cookie Cookie sessionCookie = driver.manage().getCookieNamed("SESSION_ID"); String cookieValue = sessionCookie.getValue();
// 2. Новый браузер/сессия - используем сохраненную cookie для доступа WebDriver newDriver = new ChromeDriver(); newDriver.get("https://app.example.com"); // На главной странице newDriver.manage().addCookie(new Cookie("SESSION_ID", cookieValue)); // Инжектируем cookie newDriver.navigate().refresh(); // Обновляем страницу с новой cookie // Проверяем, что пользователь авторизован и видит личный кабинет assertTrue(newDriver.findElement(By.id("dashboard")).isDisplayed());
- Сценарий: После успешного логина сервер устанавливает cookie
-
Тестирование функционала, зависящего от cookies:
- Корзина покупок: Проверял, что товары, добавленные в корзину (часто хранятся в cookie
cartItems), сохраняются при переходе между страницами и после перезагрузки браузера. - Языковые настройки/тема: Эмулировал установку cookie
locale=frилиtheme=darkи проверял, корректно ли применяются соответствующие настройки интерфейса.
- Корзина покупок: Проверял, что товары, добавленные в корзину (часто хранятся в cookie
-
API-тестирование с cookies: При тестировании бэкенда с помощью REST Assured или Postman cookies передаются в заголовках. Это необходимо для тестирования эндпоинтов, которые требуют сессионной аутентификации (например, старые системы на основе JSESSIONID).
// REST Assured: Использование cookie в запросе given() .cookie("session_token", "abc123xyz") .when() .get("/api/secure-data") .then() .statusCode(200);
Важные аспекты для QA:
- Очистка состояния: Перед каждым тестом важно удалять cookies (
driver.manage().deleteAllCookies()), чтобы избежать взаимного влияния тестов. - Безопасность: Тестирование атрибутов cookies:
HttpOnly(защита от XSS),Secure(передача только по HTTPS),SameSite(защита от CSRF). - Срок жизни: Проверка корректности работы сессии после истечения срока жизни cookie (
Max-AgeилиExpires).