Cypress JS: веб-страница не отвечает после аутентификации - PullRequest
2 голосов
/ 07 января 2020

Цель: Используйте мою учетную запись 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.

...