Testes de Aceitação em aplicações Angular usando Protractor e CucumberJS — Parte 1

Bárbara Cabral
4 min readJul 23, 2018

--

Introdução

Protractor é um framework end-to-end para aplicações Angular e AngularJS. Assim, como os demais frameworks para testes de aceitação, o Protractor executa os testes em cima da aplicação rodando em um browser real simulando um usuário real.

Ele é escrito em JavaScript e roda com o Node.js usando o WebDriver para controlar o browser e simular as ações dos usuários.

Protractor usa a biblioteca do Jasmine para sua sintaxe de testes. A sintaxe é similar à sintaxe dos testes unitários, contendo um arquivo de teste com um ou mais blocos de “it” que descrevem os requisitos da aplicação.

Os comandos ordenam o Protractor para fazer “algo” com a aplicação, como navegar até uma página, clicar em um botão ou preencher um campo. As “expectations” servem para aferir o estado da aplicação ou do objeto que se deseja verificar o estado, como o valor de um campo ou a URL onde a página se encontra.

Se a “expectation” do bloco de código falha, o mecanismo que executa marca os testes como “failed” e continua para para o próximo bloco (ou cenário) de testes.

Instalação

Antes de tudo, como o Protractor usa o Node.js, precisamos instalar ele. Se você está usando o Ubuntu, nós poderíamos apenas que utilizar o gerenciador de pacotes “apt”.

No entanto, ao fazer isto, a versão do Node instalado no meu ubuntu foi a versão 4.8.7. Tive problemas então ao instalar o protractor, até encontrar na documentação que ele só funciona a partir da versão 6.x do nodejs. Sendo assim, vamos fazer um outro caminho.

Dica: para instalar a última versão do nodejs, não a nativa do ubuntu, você pode seguir estes passos:

$ wget -qO- https://deb.nodesource.com/setup_8.x | sudo bash -

$ sudo apt-get install -y nodejs

Para verificar que está tudo ok, você pode conferir:

$ node -v

Dica: é legal checar se sua versão do node é compatível com a versão do Protractor que você está querendo instalar.

Para instalar o Protractor, precisamos ter também o npm (Node Package Manager), que é o gerenciador de pacotes do Node.js. Ao instalar o nodejs, ele já vem junto na “bagagem”. Você pode checar desta forma:

$ npm -v

Ao digitar $ npm init dentro da pasta do projeto, você cria um arquivo package.json, onde vão ficar as versões dos frameworks que você vai precisar instalar para o seu projeto. O npm facilita a instalação de módulos e pacotes para utilizar com o Node.js.

$ sudo npm install -g protractor cucumber

Se você preferir não instalar o Protractor globalmente, vamos apenas precisar omitir o “-g”. Para salvar dentro do seu package.json as versões dos frameworks que está instalando, você pode fazer desta forma:

$ sudo npm install protractor cucumber --save-dev

Para verificar se deu tudo certo na instalação:

$ protractor --version

Dica: Se acontecer com você o que aconteceu comigo, de o protractor não encontrar o Node, exibindo esta mensagem de erro: “/usr/bin/env: node: No such file or directory” (link), você pode setar a variável de ambiente do node manualmente, desta forma: “sudo ln -s /usr/bin/nodejs /usr/bin/node”
— Obrigada Walmyr Filho pelo help, hein!? =D

Agora vamos precisar criar um arquivo conf.js e o arquivo de testes de fato (spec.js)

Antes disso, lembre que você sempre precisa estar com o selenium rodando! Mas, primeiro, vamos atualizar o webdriver:

$ webdriver-manager update

E subir o servidor:

$ webdriver-manager start

Caso você não consiga iniciar por causa deste erro aqui:

Então você já sabe que não está com o jdk do java instalado. Para ter certeza, você pode checar executando o comando: java -version no terminal. Vamos então instalar o jdk:

$ sudo apt-get install openjdk-8-jre

Agora, ao iniciar o servidor do selenium, você vai ver que ele está funcionando!

Bom… agora… vamos então criar um projetinho pequeno apenas para ver se está tudo funcionando? Este será nosso próximo post! =D

--

--