Por que eu devo ler este artigo:A automação de testes soma praticamente 20% do tempo de trabalho de um testador (ou desenvolvedor testador) e economiza várias horas de manutenção e de testes de regressão para verificar se tudo está funcionando há cada nova release de software lançada. O Selenium se popularizou como um dos principais frameworks de automação de testes do mercado, principalmente pelo seu suporte a linguagens como Python, Ruby, Java, C# e Node.js.

Neste artigo aprenderemos a configurar o Selenium de duas formas: via IDE Eclipse e via Selenium IDE. Você verá como gravar testes nos browsers, salvar scripts, re-executá-los, além de comunicar seus testes com JavaScript, jQuery e HTML5. Ao final deste, o leitor estará apto a executar testes síncrona e assincronamente via API, linha de comando ou interface gráfica, além de entender que tipo de teste se encaixa melhor em cada realidade de software.

A automação de testes existe para, através de ferramentas e estratégias, reduzir ao máximo o envolvimento humano em atividades manuais repetitivas, como o cadastro de um cliente ou o login/logout em uma aplicação.

O principal objetivo de um teste automatizado é ser usado futuramente em testes de regressão. Esse termo, por sua vez, é usado para quando precisamos efetuar ciclos de re-teste de uma ou várias funcionalidades, com a intenção de identificar problemas ou defeitos introduzidos pela adição de novas funcionalidades ou pela correção de alguma já existente.

Levando em consideração um exemplo real, quando um projeto de software não utiliza testes automatizados em sua concepção, sempre que uma alteração acontece em determinada tela ou módulo, um novo ciclo de testes manuais precisa ser refeito e, assim, sucessivamente até que o projeto esteja terminado. O problema aumenta mais ainda quando o projeto não tem fim e exige manutenção constante, implicando consequentemente em mais custos com uma equipe de teste e possivelmente em entregas sem qualidade, já que não houve tempo o suficiente para testar e re-testar tudo.

Em contrapartida, a utilização de testes automatizados acelera os ciclos do software, uma vez que o teste passa a ser executado por outro software inteligente, que acessa as telas e reexecuta os mesmos testes nos dando relatórios rápidos do que deixou de funcionar. Além disso, estamos menos suscetíveis a erros, já que a máquina nunca erra, ao contrário de termos humanos testando.

Existem várias abordagens diferentes para a automação de testes. Os tipos são normalmente agrupados de acordo com a maneira com a qual os testes se integram e interagem com o software. Um testador pode construir seu teste baseando-se em dois conceitos:

1. Interface gráfica

a. Gravação/Execução (Capture/Playback): os testes são feitos diretamente na interface gráfica da aplicação: HTML, XML, Swing, etc. As ferramentas geralmente disponibilizam recursos para efetuar a gravação (capture) das ações feitas nas telas que serão convertidas para uma linguagem de script inteligível pela mesma, a qual poderá futuramente ser reexecutada (playback).

b. Dirigido a dados (Data-Drive): representa uma abordagem mais dirigida aos dados no sentido de gravar as ações do usuário, porém sempre fornecendo dados distintos para deixar o teste mais próximo da realidade.

c. Dirigido a palavras-chave (Keyword-Driven): são testes com alto nível de abstração, onde até mesmo usuários comuns podem criar instruções para iniciar um teste, uma vez que o mesmo será baseado em palavras-chave. Cada palavra-chave representa um comando da ferramenta.

2. Lógica de negócio

a. Linha de comando (Command Line Interface): fornece uma interface com um mecanismo de interação com a aplicação por meio de um prompt cmd do SO e os comandos podem ser enviados de lá.

b. API (Application Programming Interface): fornece bibliotecas ou um conjunto de classes para permitir que outras aplicações acessem a interface do teste sem necessariamente ter de conhecer como eles foram feitos.

c. Test Harness (Equipamentos de teste): é um teste específico que visa o teste único e exclusivo da lógica de negócio. Não é permitida interação alguma com as interfaces gráficas.

O sucesso desse tipo de teste depende de identificar e alocar elementos da GUI (Graphical User Interface) na aplicação a ser testada e então executar operações e verificações nestes mesmos elementos para que o fluxo do teste seja completado com sucesso.

O Selenium é um framework de testes automatizados portável para aplicações web desenvolvido em 2004 por Jason Huggins como um projeto interno da empresa ThougthWorks. Ele fornece todo o aparato para capturar e reproduzir os testes via scripts sem a necessidade de aprender nenhuma linguagem de scripting. Também disponibiliza uma linguagem de teste específica para linguagens populares como Java, C#, Groovy, Perl, PHP, Python e Ruby. Os testes podem ser executados em browsers web modernos e os deploy de aplicação rodam tanto em Windows, quanto em Linux e Macintosh.

Dentre a lista de funcionalidades fornecida pelo framework, temos:

· Preenchimento de caixas de texto;

· Checagem de checkboxes e botões de rádio;

· Click em botões e links;

· Navegação de e para <iframe>’s;

· Navegação de e para novas janelas/tabs criadas por links;

· Interação com a maioria dos elementos como um humano faz.

Na lista de funcionalidades que ele não suporta, temos:

· Interação com Flash, PDF ou Applets;

· Interação com quaisquer objetos colocados dentro das tags HTML <object> e <embed>.

Neste artigo exploraremos os principais recursos desse framework, através da construção de exemplos reais usando as linguagens JavaScript, jQuery e Java em conjunto com HTML5 e testes efetuados no Google Chrome e Firefox. Veremos desde a configuração e instalação da ferramenta, bem como as principais diferenças entre usar o Selenium embarcado (com uma linguagem de programação) e o Selenium IDE (diretamente no browser Firefox como Add-On).

Configuração do ambiente

O primeiro requisito obrigatório para executar o Selenium no seu Sistema Operacional é ter uma versão recente do JDK (Java Development Kit) instalada. Para verificar se você já tem alguma, basta acessar o terminal de comandos e digitar o seguinte comando:

java -version

Se você vir um número com a versão do Java sendo impresso, então você já o tem instalado. Caso contrário, acesse a página de downloads do mesmo (seção Links) e efetue os passos para instalação (você encontrará tutoriais de como instalar no próprio site da Oracle caso tenha alguma dúvida).

Em seguida, precisamos efetuar o download do Eclipse (seção Links), que é a IDE mais utilizada para desenvolver com o Selenium. Selecione sempre a opção “Eclipse IDE for Java EE Developers”, dessa forma teremos uma versão da IDE que também desenvolve para a web. Certifiqu ...

Quer ler esse conteúdo completo? Seja um assinante e descubra as vantagens.
  • 473 Cursos
  • 10K Artigos
  • 100 DevCasts
  • 30 Projetos
  • 80 Guias
Tenha acesso completo