Как стать автором
Обновить

Комментарии 5

А теперь о том, как делать это "в две строчки":
1) В playwright.config.ts в секцию use добавляем строчку:

storageState: 'storageState.json'

2) В первом тесте, в projects выполняемом до всех остальных тестов, в конце (после успешного логина) добавляем:

await page.context().storageState({ path: 'storageState.json' })

Все тесты после этого будут уже начинать с авторизованного состояния. Если нужно неавторизованное - тогда нужны телодвижения)

а можно сделать setup который будет выполняться до тестов - сохранять контекст браузера projects: [ { name: 'setup', testMatch: /.*\.setup\.ts/ }, { name: 'chromium', use: { storageState: '.auth/*.json', }, dependencies: ['setup'], } который в тестах вызывается через test.use({ storageState: '.auth/admin.json' }); ну или не вызывается

Добрый день! Спасибо за интересную статью. Есть плюсы и минусы такого подхода, плюсы вы уже обозначили.

Главный минус (он же плюс) подхода - сохранение контекста и единственный логин. Соответственно, это становится узким горшлышком запуска.

1. Авторизационный токен может протухнуть посреди сессии.

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

3. В localStorage могут накапливаться тестовые данные прошлых автотестов, что делает сценарии довольно грязными, и может даже привести к конфликтам между тестами. Это довольно тяжело отловить особенно при параллельном запуске тестов.

Замечания резонные но в целом решаемые при желании, даже с такой реализацией но со всякими дополнениями/изменениями. Все индивидуально для каждого проекта) 1) можно попросить настроить отдельно/делать повторную авторизацию посреди тестов(костыль). 2) тут не понял, так и все тесты могут упасть без этого. 3) Тут да, зависит от сценариев, но в целом наверно можно подчищать.

А мы попросили разработчиков сделать нам на тестовом окружении урл быстрой авторизации, открываешь его с нужным логином - и вуаля, авторизован.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации