Automação de Testes com Cypress

Postado por DBC Company Em: Desenvolvimento, Tecnologia Sem comentarios

O desenvolvimento de sistemas pode ser considerado um conjunto de ideias, que através dos códigos certos, dão vida às diversas funções que nos ajudam no dia-a-dia. Porém, quando colocamos o projeto na prática é que vemos que uma ideia inicial pode não ser uma opção adequada quando surgem novos requisitos. De que forma assegurar o funcionamento em diversos cenários durante as mudanças? Testes. E principalmente os Testes Automatizados, por que afinal estamos em 2019 e a velocidade das coisas é mais do que importante. E é justamente aí que entra o Cypress.

O Cypress é uma ferramenta de automação de testes. Ele vai de encontro com as necessidades do mercado: rápida instalação, configuração, criação de testes e execução.

Automação de testes é a execução de testes de software de forma automatizada, ou seja, através de uma ferramenta você vai rodar rotinas que conferem os resultados desejados com os resultados reais dos testes. Existem ferramentas, e frameworks, para auxiliar na criação de testes de software. Eles procuram facilitar a criação de rotinas que seriam feitas de forma manual.

Hoje mais do que nunca, com o crescimento e adesão das metodologias ágeis, a automação de testes tem papel importante para a qualidade. A qualidade do produto é essencial, assim como os testes são para o desenvolvimento de software.

O Cypress é um conjunto de ferramentas como Mocha, Chai, Sinon e Chrome. Sendo o Javascript a linguagem de criação de testes, o Cypress torna-se ideal para desenvolvedores front-end, ou para quem tem experiência com essa linguagem de programação.

Começando pela instalação, enquanto outras soluções, como Selenium exige uma gama de passos para que tudo rode normalmente, as vantagens do Cypress começam por aí, basta você ter o Node instalado. Com apenas um comando, em seu terminal, você tem ele pronto para começar a criar os seus testes: npm install -g Cypress

Pronto! Dessa forma você pode executar o comando `Cypress open`, em seu terminal, e uma interface gráfica será aberta. Com ela você escolherá a pasta do seu projeto, e dentro dela será criada uma pasta Cypress e um arquivo de configuração Cypress.json. Se o projeto for web e já possuir o arquivo package.json, e caso você não tenha interessa em fazer a instalação global, você pode adicionar o Cypress como dependência de desenvolvimento, basta fazer a instalação da seguinte forma: npm install --save-dev Cypress .

Independente da forma de instalação, local ou global, você não precisa mais do que um comando para começar a criar seus testes. E neste ponto que você começa a ver outras vantagens do Cypress: a configuração.

Enquanto usando a estrutura do Selenium para projetos Web, você deverá escolher entre algumas opções, como Selenium IDE, Web Driver ou RC, com o Cypress você não se preocupa com isso, você tem a configuração em apenas um arquivo, o Cypress.json. Com ele você pode ajustar configurações globais como URL base, variáveis de ambientes ou relatórios. Além disso, há configurações como o tempo para carregamento da página, pastas onde ficarão screenshots e vídeos que o Cypress gera. Entre tamanhos da tela, e outros. Tudo isso com apenas um arquivo de configuração.

Quando você começar a criar seus testes, poderá contar com a ajuda do Playground Selector, que é muito preciso para selecionar elementos na página. Ele segue algumas prioridades, como id, class, tag, entre outros que são seletores comuns para quem trabalha com web.

Outra vantagem em destaque da ferramenta, é a sua funcionalidade de wait, ou seja, de aguardar uma ação ser executada, para continuar. Diferente do Selenium IDE, por exemplo, que você especifica o tempo que você quer aguardar, e só depois de passar esse tempo que ele dará sequência na execução dos testes, no Cypress você não precisa informar esse tempo. Ele aguarda automaticamente, e depois que a página é carregada ele imediatamente dá sequência nos testes, não sendo necessário aguardar mais do que o necessário. Por isso que ele ganha performance neste ponto. Existe um limite para o carregamento da página, antes que ele aponte um erro. Isso é configurado lá no arquivo de configuração principal dele.

Tudo que você pode fazer manualmente, ele pode replicar via programação, até mesmo o conhecido drag-and-drop.

A execução dos testes pode ser via terminal, através do comando Cypress run, ou pelo comando Cypress open, uma interface gráfica é aberta, e você pode escolher qual arquivo de testes deseja executar, ou também rodar todos os testes de uma vez. Mas veja que a distância entre os testes e sua execução é um comando, ou um clique. Mais uma vez vai de encontro com a necessidade de hoje em dia termos o que precisamos a um passo.

Para finalizar sobre essa incrível ferramenta, não poderia faltar os relatórios. O Cypress como é construído em cima do Mocha, o que significa que qualquer relatório criado para ele pode ser usado com o Cypress. Além de ser possível criar geradores customizados. Mas isso, já é uma parte mais avançada e basta que saibamos que é possível sim, criar algo totalmente dedicado para as necessidades.

Embora não o considere como bala de prata para todas as situações e ambientes, entendo que ele tem potencial para atender a grandes demandas e empresas. O que ajuda o Cypress é sua facilidade de instalação e configuração quase zero, isso certamente é um fator importante para escolher sua ferramenta de testes automatizados.

O Cypress não para por aí, mas vamos deixar um gostinho de quero mais e deixar sua curiosidade falar mais alto! Aproveito para incentivar e convidar você a pesquisar mais e principalmente sobre integração do Cypress com outras ferramentas. Fica de olho nas nossas redes sociais e aqui no blog que logo eu volto para contar um pouco mais sobre essa ferramenta, além de integração com cucumber e a minha experiência utilizando Cypress aqui na DBC!

Por Maicon Silva Pinto, Desenvolvedor de Sistemas da DBC.

maicon.silva@dbccompany.com.br

6 Likes

Comments: 0

There are not comments on this post yet. Be the first one!

Deixe um comentário