Primeiros passos para testes end-to-end com Protractor

Protractor é um framework para testes end-to-end de aplicações desenvolvidas em AngularJS que interage com browsers reais como um usuário faria.

Pré-requisitos

Protractor é um programa Node.js, portanto, para executá-lo é necessário possuir o Node instalado.

Ao realizar o download do Protractor via npm, o Node será instalado e o Jasmine será o framework utilizado para teste de interface.

Setup

Execute o comando abaixo para instalar o protractor e o webdriver-manager globalmente:

npm install -g protractor

O webdriver-manager provê um servidor Selenium e gerencia os drivers para os testes end-to-end. Antes de iniciar o servidor, é necessário baixar os binários do Selenium e do chromedriver por padrão:

webdriver-manager update

Em seguida, o servidor será criado com o comando:

webdriver-manager start

Estrutura do Protractor

O projeto de testes foi criado baseado no tutorial do Protractor e está disponível no GitHub.
Para executar um teste, o Protractor precisa essencialmente de dois arquivos:

Configuration File

O arquivo de configuração declara:

  • Framework de testes utilizado (Jasmine)
  • Onde o servidor Selenium está (http://localhost:4444/wd/hub)
  • Qual é o arquivo de teste a ser executado (spec.js)
conf.js

Spec File

O arquivo de teste utiliza a sintaxe do Jasmine, utilizando describes e its para sua estruturação e expects para comparar resultados esperados com os resultados desejados.

Para interagir com os elementos, utilizamos funções próprias do Protractor, listadas em sua API oficial, tais como element, by, sendKeys e click.

Utilizamos a função beforeEach do Jasmine para declarar tudo que deve ser executado antes de cada it, como entrar na página desejada e maximizar o navegador.

spec.js

Execução dos Testes

Por fim, para executar os testes, basta rodar o comando abaixo dentro do diretório do projeto, na pasta onde o conf.js estiver:

protractor conf.js