Testes de Aceitação em aplicações Angular usando Protractor e CucumberJS — Parte 1
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