1
resposta

Como pegar dados do response

Olá, tudo bem? Eu estou com uma dúvida em relação a como eu faria para armazenar um dado que é retornado. Por exemplo, como eu faria para salvar o token que é gerado no response. Pois para um próximo teste que desejo realizar, preciso passar o token. Eu já utilizei a biblioteca axios em um projeto anterior, mas não sei se seria a msm coisa, ou daria pra fazer com o proprio cypress. Obrigada pela atenção.

1 resposta

Oii Bruna, como você está?

Peço desculpas pela demora em obter um retorno.

Ao longo deste curso, não será trabalhado a integração entre Cypress e captura de informações para uso posterior. Entretanto, através da função getCookies() do Cypress é possível capturar todos os cookies do navegador - o que inclui, na maioria das vezes, o token que está sendo utilizado na sessão. Vale ressaltar também que, caso os cookies necessários fiquem disponíveis apenas após o login, devemos primeiro realizar a autenticação e após isso, invocar a função getCookies(), como mostro abaixo:

it('Captura Token, () => {
        cy.getCookies() .then((cookies) => {
            console.log(cookies)
        })
})

Como resultado teremos um objeto que constará o nome do cookie e seu respectivo valor. Por exemplo:

{name: 'token1', value: 'huastdmndoasm21536723', path: '/', httpOnly: false}
{name: 'alura_id', value: '1', path: '/', httpOnly: false}

Aliado a isso, para salvar algum cookie em específico, basta acessá-lo usando índices, o nome da chave que deseja capturar e salvá-lo usando o recurso de variáveis de ambiente: Cypress.env, como mostro abaixo:

const valorDoCookie = Cypress.env('valorCookie', cookies[0]['value'])

Já para uso posterior, basta invocamos a função Cypress.env passando como parâmetro o nome da variável de ambiente que foi criada:

Cypress.env('valorCookie')

A título de curiosidade, caso queira conhecer outras soluções e possibilidades de captura, deixo como recomendação a documentação da ferramenta getCookies e também, um artigo relacionado a captura de dados usando o localStorage:

O conteúdo recomendado acima está em inglês. O uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.

Conte sempre com a Alura para evoluir seus estudos.

Grande abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!