Цель: Используйте мою учетную запись Azure AD, чтобы генерировать файлы cookie, которые я затем передаю в экземпляр Cypress, чтобы попасть на целевую страницу моего сайта, требующую полной аутентификации перед тем, как попасть туда, и иметь возможность запускать свои интеграционные тесты как полностью аутентифицированный пользователь, использующий эти куки.
В настоящее время: Это делает все, что я хочу, за исключением того, что после загрузки целевой страницы в Cypress она зависает и перестает отвечать на запросы. Некоторые вещи отвечают, но не все. Возникает исключение для ресурса (ов) веб-сайтов, но у меня есть обработчик событий Cypress, возвращающий «false» (() => false
), чтобы убедиться, что он не останавливает выполнение интеграционного теста Cypress.
Вот что я делаю:
- Запустите экземпляр Puppeteer JS, чтобы автоматически аутентифицировать учетные данные Azure AD.
- Создает 2 из 3 файлов cookie.
- Выполните одиночную навигацию на целевой странице.
- Создает третий и последний файл cookie; На данный момент 3 из 3.
- Запишите эти файлы cookie в файл
cypress.json
. - Запустите Cypress JS и запустите интеграционный тест (пока только один тест).
- Тест загружает все 3 куки в браузер.
- Загружен с помощью
Cypress.env(<var>);
- Установить куки с помощью
cy.setCookie(<key>, <value>, <options>)
.
- Запустить тест:
- Введите текст и затем нажмите кнопку «Поиск».
- По какой-либо причине кнопка «Поиск» ничего не делает.
Это, как правило, работает - за исключением отсутствие отзывчивости в браузере. У меня есть некоторые идеи, как решить эту проблему, но я хотел бы получить помощь и узнать, что кто-то еще мог или не мог сделать, чтобы использовать Azure файлы cookie аутентификации AD, загруженные в Cypress, для запуска аутентифицированных интеграционных тестов.
Чтобы быть понятным, я аутентифицируюсь в Azure AD вне Cypress (перед его запуском), выгружаю 3 куки в файл cypress.json
, запускаю интеграционный тест (который загружает эти куки), и тесты пытаются запустить. Аутентификация не происходит во время работы Cypress.