Как можно обойти политику перекрестного происхождения при автоматизации с использованием Cypress? - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь автоматизировать веб-приложение с помощью Cypress.Но, не удается загрузить сайт, так как он требует аутентификации из другого источника (Iframe).Есть ли способ преодолеть это?

Пример кода:

describe('Initial Cypress Tests', () => {
it('navigate to MSteams site', () => {
    cy.visit('https://teams.microsoft.com/_#/')
} )

})

1 Ответ

0 голосов
/ 27 февраля 2019

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

Cypress не является инструментом автоматизации общего назначения.

(https://docs.cypress.io/guides/references/trade-offs.html#Permanent-trade-off).

Каждый кипарис-тест ограничен одним супердоменом. Парни из Cypress думают о сторонних входах в систему и используют случаи, когда вы аутентифицируетесь из другого источника. Вы можете использоватьих «рецепты» для аутентификации у третьих лиц: https://docs.cypress.io/examples/examples/recipes.html#Single-Sign-On

Существуют различные способы тестирования вашего приложения с использованием кипариса, вот несколько примеров:

  • ОстановитеOAuth-провайдер и обход с использованием их пользовательского интерфейса. Вы можете просто заставить свое приложение поверить, что OAuth-провайдер передал свой токен вашему приложению.
  • Если вам нужен реальный токен, вы можете использовать cy.request() и использоватьПрограммный API, предоставляемый вашим провайдером OAuth. Эти API, вероятно, изменяются реже, и вы избегаете таких проблем, как регулирование и A / B-кампании.
  • Вместо хаВ обход вашего тестового кода OAuth вы также можете обратиться за помощью к вашему серверу.Возможно, все, что делает OAuth-токен - это создает пользователя в вашей базе данных.Часто OAuth полезен только изначально, и ваш сервер устанавливает свой собственный сеанс с клиентом.Если это так, просто используйте cy.request(), чтобы получить сеанс напрямую с вашего сервера и вообще обойти провайдера.

(https://docs.cypress.io/guides/references/best-practices.html#When-logging-in)

...