Как Playwright запоминает вход и экономит ваше время

Вы тестируете интерфейс. Каждый новый тест — это новый пользователь. Он проходит регистрацию, вводит логин, пароль, может быть даже код из СМС. Потом тест заканчивается, и следующий тест начинает все заново.

Playwright решает эту задачу красиво. У него есть механизм под названием Storage State.

Простой пример из жизни

Представьте, что вы идете в спортзал. Стоите в очереди на ресепшене, показываете свой абонемент. Получаете браслет. Идете тренироваться. Через час выходите попить воды. Вам не нужно снова стоять в очереди и показывать абонемент. Вы просто показываете браслет, и вас пускают обратно.

В Playwright Storage State работает точно так же. Это и есть тот самый браслет, только цифровой.

Как это работает по шагам

Первый шаг. Вы один раз логинитесь в систему. Ручками или через автоматизацию. Playwright запоминает все, что сервер отдал вам после входа. Различные метки, файлы cookies, данные в локальном хранилище браузера. Всё, что подтверждает: «Этот человек уже проходил проверку».

Второй шаг. Playwright сохраняет этот набор данных в отдельный файл. Обычно это файл со странным названием, типа state.json.

Третий шаг. Вы запускаете любой другой тест. Playwright открывает браузер и сразу подсовывает ему этот сохраненный файл. Браузер получает те же самые метки, которые выдал сервер. Для сервера это выглядит так, будто пользователь уже зашел ранее. Пароль вводить не нужно.

Что такое cookies и локальное хранилище

Делиться секретами не буду, расскажу просто. Cookies — это маленькие записки. Сервер оставляет их в вашем браузере, чтобы при следующем визите сказать: «А, это ты, заходи».

Локальное хранилище — это коробка, которую сам сайт держит у вас на компьютере. Там он хранит настройки, корзины, какие-то личные предпочтения.

Playwright сохраняет обе эти сущности. Он берет и записки, и коробки. Так воссоздается полная картина авторизованного пользователя.

Зачем это нужно и чем помогает

Во-первых, скорость. Вместо двух минут на заполнение формы, тест тратит секунды на загрузку готового состояния. Вы экономите время на каждом прогоне.

Во-вторых, стабильность. Двухфакторная аутентификация и капчи — главные враги тестов. Они ломаются от любых изменений. А тут они вообще не участвуют. Вы их просто обходите стороной.

В-третьих, удобство. Можно создать несколько таких файлов. Один под права администратора. Другой под права обычного сотрудника. Третий под нового клиента. Вы переключаетесь между ролями мгновенно, без перелогинов.

Один важный нюанс

У любой записки есть срок годности. Сессия может истечь. Сервер может решить, что пользователь слишком долго сидит, и попросить войти заново. Поэтому время от времени сохраненный файл нужно обновлять. Playwright умеет делать это автоматически, если вы настроите тесты правильно.

Попробуйте однажды настроить этот механизм. Вы забудете, что такое мучиться с логинами на каждом тесте.

#qacommunity #qaautomationengineer #qaсетка #qa

Как Playwright запоминает вход и экономит ваше время | Сетка — социальная сеть от hh.ru