Пример кипарисного скрипта для обхода единого входа - PullRequest
1 голос
/ 25 марта 2019

Я настраиваю новые кипарисовые тесты для проверки некоторых функций приложения Dynamics 365.Но у меня осталось окно браузера с URL https://login.microsoftonline.com/__/ и текстом Whoops, тест не запускается.

description ('Initial Cypress Tests', () => {

it('navigate to D365', () => {
    cy.visit('https://wipropoc.crm8.dynamics.com')
} )

})

1 Ответ

0 голосов
/ 26 марта 2019

Предложит вам напрямую выполнить вызов POST для получения токена аутентификации SSO и запустить cy.visit('https://wipropoc.crm8.dynamics.com') с полученным токеном.

Вот шаги, которые следует выполнить из официальной документации,

  1. Вход в систему при аутентификации на стороннем сервере.
  2. Разобрать токены, используя cy.request().
  3. Установка токенов вручную на локальное хранилище.
  4. Сопоставление внешних хостов и указание на локальные серверы.

cy.request('POST', 'https://sso.corp.com/auth', { username: 'foo', password: 'bar' })
    .then((response) => {
    // pull out the location redirect
    const loc = response.headers['Location']

    // parse out the token from the url (assuming its in there)
    const token = parseOutMyToken(loc)

    // do something with the token that your web application expects
    // likely the same behavior as what your SSO does under the hood
    // assuming it handles query string tokens like this
    cy.visit('http://localhost:8080?token=' + token)

    // if you don't need to work with the token you can sometimes
    // just visit the location header directly
    cy.visit(loc)
    })

Подробнее об этом можно прочитать здесь - https://docs.cypress.io/guides/guides/web-security.html#Form-Submission-Redirects

Пример в реальном времени - https://xebia.com/blog/how-to-use-azure-ad-single-sign-on-with-cypress/

...