Hoje em “pitadas de Cypress”, aprenda como proteger credenciais de acesso, tais como usuário e senha

O cenário é o seguinte. Temos um teste end-to-end para a funcionalidade de login, e vários outros testes também dependem do usuário estar logado como pré-condição.

Porém, é uma má prática versionar credenciais, tais como usuário e senha.

Uma alternativa que já usei diversas vezes para resolver tal problema é o uso do arquivo cypress.env.json (qundo trabalhando em ambiente local de desenvolvimento).

Tal arquivo permite armazenarmos dados sensíveis (por exemplo), porém não o versionamos (ou seja, ele é incluido no arquivo .gitignore).

Vejamos um exemplo prático.

O arquivo cypress.env.json seria assim:

{
  "user_name": "admin",
  "user_password": "s3creT-p@ssw0rd"
}

Lembre-se que este arquivo somente estaria disponível em meu computador. E se outros(as) desenvolvedores(as) utilizarem outro usuário e senha, nos computadores deles(as) as credenciais estariam diferentes, mas também não versionadas.

E o teste de login seria assim:

describe('Login', () => {
  it('com sucesso', () => {
    cy.visit('https://exemplo.com/login')

    cy.get('#user').type(Cypress.env('user_name'))
    cy.get('#password').type(Cypress.env('user_password'))
    cy.contains('Login').click()

    cy.get('.navbar-top .avatar')
      .should('be.visible')
  })
})

Tada! 🎉

Dessa forma, não exponho tais dados sensíveis, e meus testes continuam conseguindo fazer login.

Além disso, tal abordagem nos dá a vantagem de poder expor tais credenciais como variáveis de ambiente (pre-fixadas por CYPRESS_ ou cypress_) em serviços de integração contínua, os quais executam os testes contra outros ambientes que não o nosso ambiente local.

Ou seja, os dados sensíveis ficam protegidos, e conseguimos rodar os mesmos testes em diferentes ambientes (local, homologação, produção, etc.) 💯


Este foi foi traduzido para inglês e pode ser encontrado no DEV Community.


Estou curioso. O que está achando da série?

Aguardo teu feedback.


Quer aprender automação de testes com Cypress na prática? Conheça meus cursos na Escola Talking About Testing, ou no Udemy.

5 comentários em “Como proteger dados sensíveis com Cypress

Deixe uma resposta para shard (@drahcir9) Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s