Como automatizar testes de aplicações Web com Capybara e Selenium WebDriver

Adriano Fantinelli
CWI Software
3 min readJun 26, 2020

--

Os testes de software são extremamente importantes para aplicações com alta qualidade. Tive a oportunidade de começar a utilizar o Capybara, Ruby, RSpec, Cucumber e SitePrism para automatizar testes.

Criei um repositório com um exemplo de automação que vou utilizar, você pode clonar ou criar ele seguindo os passos a seguir.

Contextualizando…

Ruby: linguagem dinâmica, open source com foco na simplicidade e na produtividade. Tem uma sintaxe elegante de leitura natural e fácil escrita.

Capybara: ajuda você a testar aplicações web, simulando como um usuário real. Abstrai a conexão entre o navegador e o código, utilizando um “driver” para fazer isso.

RSpec: é uma biblioteca que permite que se utilize asserções para validar os resultados das ações que realizamos. Nos ajuda a validar que o comportamento esperado foi obtido.

Cucumber: emprega o Behavior-Driven Development (é uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação, focando o comportamento do software).

SitePrism: fornece um DSL (Domain Specific Language, uma linguagem de programação dedicada a um domínio de problema particular) simples, limpo e semântico para descrever seu site usando o padrão Page Objects (que serve como interface para simular a interação do usuário com os elementos de tela), em conjunto com Capybara para executar testes automatizados.

Configuração do Ambiente:

1 — Escolher uma IDE compatível com Ruby. Uma sugestão é o Visual Studio Code.

2 — Instalar o Ruby (Não esqueça de baixar a versão com Devkit).

3 — Instalar o bundler pelo terminal:

gem install bundler 
Mensagem no terminal.

4— Baixar o chromedriver e configurá-lo no PATH (conforme este tutorial).

Estrutura do projeto:

Estrutura de pastas.

Crie o arquivo Gemfile na pasta raiz, é automaticamente criado o arquivo Gemfile.lock que é um arquivo auxiliar ao Gemfile.

Vamos instalar essas bibliotecas com o bundler utilizando esse comando no terminal do projeto:

bundle install
Mensagem no terminal.

Para criar a estrutura inicial do projeto utilize o comando abaixo:

cucumber --init

Vamos ver as pastas que ficam dentro de features:

O objetivo dessa automação é seguir os cenários especificados a partir de uma Especificação por Exemplos (utilizando a sintaxe Gherkin), que nesse exemplo é o login no site http://automationpractice.com/index.php.

Os cenários descritos ficam na pasta specs.

Crie a pasta pages dentro da pasta features, cada documento nessa estrutura chamamos de Page Objects, que cada um representa uma página da aplicação web.

Dentro da pasta steps existem os comandos que devem ser seguidos para cada parte do BDD utilizando as funções criadas nos documentos dentro da pasta pages.

Em support existem os arquivos de configuração auxiliar/ambiente.

Para executar os testes digite esse comando no terminal:

cucumber -t @smoke
Testes sendo executados.

Concluindo:

Todos os nossos cenários foram executados com sucesso! Validando o token quando o login foi efetuado com sucesso e a mensagem de erro quando o login não teve sucesso. Você pode utilizar em seu projeto para entender melhor a estrutura e aplicar no seu dia a dia.

--

--

Adriano Fantinelli
CWI Software

QA at CWI Software and Information Technology Student