Cookies, localStorage, сессии

Тема дорожной карты · QA-инженер

Cookies и сессии — это основные механизмы управления состоянием HTTP, которые QA-инженеры должны хорошо понимать для тестирования потоков аутентификации, корзин покупок, пользовательских предпочтений и любых функций, зависящих от сохранения данных между запросами. Cookie — это небольшая пара ключ-значение, отправляемая сервером через заголовок ответа Set-Cookie и сохраняемая браузером, который возвращает её в последующих запросах через заголовок Cookie; атрибуты HttpOnly, Secure, SameSite и Max-Age управляют её безопасностью и сроком действия — неправильная конфигурация здесь часто выявляется в тестах безопасности OWASP Top 10 с помощью Burp Suite или OWASP ZAP. Сессии обычно используют серверное хранилище (с ключом — токеном сессии, передаваемым как cookie или заголовок Authorization) и должны тестироваться на проблемы вроде session fixation, session hijacking, некорректного выхода из системы и чрезмерно длительных таймаутов сессии. В автоматизированных тестовых наборах Selenium WebDriver предоставляет driver.manage().getCookies(), PlaywrightbrowserContext.cookies() и addCookies(), а Postman управляет банками cookies в коллекциях запросов, — всё это позволяет QA-инженерам тестировать cookies и сессии в масштабе в CI/CD-пайплайнах.

Как это работает

Cookies, localStorage, сессии для QA: HTTP request/response (метод, статус, заголовки, тело), DOM (браузер парсит HTML → дерево элементов, которыми манипулирует JavaScript), DevTools (вкладки Elements, Network, Console, Application), cookies + localStorage, REST vs GraphQL, статус-коды. Не обязательно писать frontend-код, но нужно его читать достаточно для отладки. Browser-автоматизация работает с DOM, не с JS-runtime — понимание обоих делает Playwright/Selenium-тесты надёжными.

Когда применять

Освойте Chrome DevTools первым — 80% вопросов "почему не работает". Умейте инспектировать сетевой запрос, смотреть его ответ, ре-играть с другим cookie. Умейте смотреть + редактировать localStorage / cookies. Знайте CSS-селекторы (их использует каждый UI-automation фреймворк). Читайте HTML страницы, которую тестируете — страница сама говорит, какие локаторы стабильны.

Типичные ошибки

Ловушки Cookies, localStorage, сессии: не открывают DevTools — отрендеренная страница рассказывает только половину; CSS-селекторы зависят от автогенерированных имён классов (.css-xyz123) — они меняются на каждой сборке; игнор вкладки Network при "странице медленно" (ответ почти всегда там).

Связанные понятия

Полезные ресурсы