Autenticação via API com Cypress

Ao automatizar testes de integração, pode ser necessário autenticar um usuário diretamente via API para evitar passar pela interface de login em cada teste. Isso economiza tempo e evita flakiness em testes que envolvem a interface de login.

Neste post, vou mostrar como realizar a autenticação via API utilizando Cypress. O código a seguir usa uma requisição HTTP POST para autenticar o usuário e, em seguida, salva o token de acesso nos cookies da sessão, permitindo que os testes subsequentes usem esse token sem precisar passar pela tela de login novamente.

Exemplo de código:

export function signIn() {
// Altere a url e o body conforme necessário
cy.request({
method: 'POST',
url: `https://meuSistema.com/auth/login,
body: { email:
'usuario@teste.com', password:'123Teste' }
}).then(response => {
// Verifica se a resposta foi bem-sucedida
expect(response.status).to.eq(200)

const responseJson = response.body

// Salva o token na variável de ambiente do Cypress
Cypress.env('accessToken', `${responseJson.accessToken}`)

// Configura os cookies necessários para manter a sessão

// Verifique o nome dos cookies utilizados pelo seu sistema
cy.setCookie('access_token', `${responseJson.accessToken}`)
cy.setCookie('refresh_token', `${responseJson.refreshToken}`)
})
}

Explicação:

  • cy.request(): Aqui estamos enviando uma requisição HTTP do tipo POST para a rota de login da API. Os dados de login, como E-mail e senha, são enviados no corpo da requisição.
  • expect(response.status).to.eq(200): Depois que a API responde, verificamos se o status HTTP é 200, o que significa que o login foi bem-sucedido.
  • Cypress.env(‘accessToken’): Salvamos o token de acesso retornado pela API no ambiente do Cypress, o que nos permite utilizá-lo em outros testes, se necessário.
  • cy.setCookie(): Armazenamos os tokens de acesso e refresh, além do tipo de instituição, como cookies para manter a sessão do usuário durante os testes. Isso é útil quando as próximas requisições ou interações da aplicação dependem desses cookies.

Por que usar autenticação via API?

Autenticar-se diretamente pela API é útil porque você pode:

  • Evitar interações repetitivas com a interface de login durante os testes, tornando-os mais rápidos.
  • Bypassar possíveis problemas com a UI, focando em testes de funcionalidades específicas.
  • Gerenciar tokens e sessão manualmente, o que permite mais controle durante os testes.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*