Cypress는 페이지를 방문할 때 401 Unauthorized를 표시합니다.

Cypress는 페이지를 방문할 때 401 Unauthorized를 표시합니다.

일부 웹 애플리케이션을 테스트하기 위해 Cypress를 사용하고 있습니다. 대부분의 페이지 주소는 수동으로 방문할 때와 완전히 동일하게 작동합니다.

그러나 Cypress를 통해 방문하자마자 401 - Unauthorized를 반환하는 일부 페이지가 있습니다. 이러한 문제가 있는 페이지는 사용자 이름 비밀번호가 포함된 간단한 로그인 페이지이며 사용자 이름/비밀번호 필드를 채우기 시작하기도 전에 오류가 발생합니다.

나는 이미 Chrome과 Electron 브라우저 사이를 전환했지만 지금까지는 운이 없었습니다.

이 401 문제를 극복하기 위해 내가 무엇을 시도할 수 있는지 아는 사람이 있습니까? 이 주제에 대해 Google에서 유용한 정보를 찾을 수 없습니다.

답변1

나는 같은 문제가 있었다. POST인증이 필요한 방문 사이에 요청이 발생하는 것과 관련이 있습니다 . Cypress는 테스트 사이에 때때로 승인을 취소합니다. 이는 의도한 바가 아닌 것으로 생각되는 불안정한 동작입니다(이에 대한 보고서가 있지만 필요한 만큼의 정보가 포함되어 있지 않습니다. 최대한 빨리 GitHub 스레드에 더 많은 정보를 추가하겠습니다).

지금은 문제를 해결하기 위해 cy.wait()테스트에 방문할 때마다(특히 실패한 테스트에 대해) 를 추가했습니다. 오류 가 발생한 페이지도 401통과하게 만들었습니다. 간단한 예가 아래에 제공됩니다.

it('checks the xxx page', () => {
  cy.wait(20000)
  cy.visit('/page')
})

it('verifies xxx page is loaded', () => {
  cy.wait(10000)
  cy.get('element').should('contain', 'Header text')
})

방문을 동일한 테스트에 넣어서 (권장되지는 않지만) 해결 방법을 수행할 수도 있습니다.

it('checks the xxx page', () => {
  cy.wait(20000)
  cy.visit('/page')

  cy.wait(10000)
  cy.get('element').should('contain', 'Header text')
  cy.visit('/anotherpage')
...
})

관련 정보