Как определить роль без страницы входа в TestCafe? - PullRequest
1 голос
/ 15 октября 2019

У меня проблемы с тем, чтобы сделать мои тесты стабильными с этим кодом. Может кто-нибудь дать мне несколько указаний

Мое приложение не имеет страницы входа в систему, и пользователи могут войти в систему различными способами, что определяет, являются ли они вошедшими в систему или нет, является файлом cookie авторизации.

Поэтому я решил определить роль прямым вызовом API для API аутентификации, а затем сохранить куки с токеном пользователя:

export const adminUser = Role('any-page', async t => {
  const loginRequest = await fetch(
    `https://my-auhtentication-api/oauth/token?grant_type=password&username=${userName}&password=${password}`,
    {
      method: 'POST',
    }
  )
  const loginToken = await loginRequest.json()
  await ClientFunction(() => {
    document.cookie = `myAuthCookie=${loginToken.access_token}; Domain=.my-app-domain.com; Path=/`
  })
})

И затем я использую в своем тесте кода такой код:

fixture('[Admin User] Menu navigation')
  .beforeEach(async t => {
    await t
      .useRole(adminUser)
      .navigateTo(strictPage)
  })

Проблема в том, что он работает нормально , когда я запускаю только этот тест, но когда я запускаю его с остальной частью моего стека, он становится очень нестабильным, иногда работает, иногда нет.

1 Ответ

2 голосов
/ 16 октября 2019

Для сквозных испытаний лучше, если ваша тестовая среда совпадает с вашей производственной средой. Ваш комментарий указывает на то, что вы используете родительское веб-приложение для аутентификации своих пользователей в производственной среде, поэтому лучший способ проверить аутентификацию - это использовать то же родительское приложение в вашей тестовой среде.

...