Protractor com Docker&SauceLabs

Padrão

Nesse novo post venho falar um pouco mais sobre Protractor, agora rodando em um contêiner Docker e conectando SauceLabs. Como assim cara, você ta falando de contêiner e de ‘Sal de Laboratório’ que o Protractor tem a vem com isso…

Muita calma nessa hora pessoal!

Docker é uma plataforma aberta para desenvolvedores e administradores de sistemas para construir contêiners, e executar aplicações distribuídas, seja em laptops, data center VMs, ou na nuvem.

Sauce Labs fornece a plataforma baseada em nuvem para o teste automatizado de aplicações web e móveis.

E para quem não conhece o Protractor acesse o post anterior:
https://blogdiogocosta.wordpress.com/2016/03/23/teste-automatizado-protractor/

 

Então vamos lá colocar a mão na massa, nesse post não vou ensinar a instalar o Docker, pois nosso foco não é esse nesse post. Abaixo estão os links dos tutoriais oficiais do Docker de instalação:

Instalação no Linux

https://docs.docker.com/linux/step_one/

Instalação no Windows

https://docs.docker.com/windows/step_one/

Instalação no MacOSX

https://docs.docker.com/mac/step_one/

Após efetuarmos a instalação, verificamos se o serviço esta rodando:

$ docker versionClient:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:17:17 2016
OS/Arch: linux/amd64Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:17:17 2016
OS/Arch: linux/amd64

Com o Docker instalado em sua maquina, vamos baixar a imagem rodando o comando:

docker pull diogocosta/protractor-saucelabs

Rodando esse comando estamos baixando uma imagem que está no DockerHub, nosso caso estamos baixando uma imagem que eu criei.

Link para acessar minhas imagens: https://hub.docker.com/r/diogocosta/

Após baixarmos a imagem, vamos verificar a imagem:

$ docker imagesREPOSITORY              TAG                 IMAGE ID            CREATED             SIZE

diogocosta/protractor   latest              5739673a5cd1        1 days ago         968.3 MB

Pronto já estamos com a imagem para executarmos nossos testes, agora vamos para a estrutura no nosso código.

Para utilizarmos a imagem que baixamos, devemos colocar nosso código automatizado em uma estrutura para que ao executarmos os testes, tudo seja executado perfeitamente.

Vamos criar nosso arquivo de configuração do Protractor nessa estrutura:

-src

–e2e

—conf.js

No arquivo de configuração (no nosso caso o conf.js) vamos criar e validar 2 variáveis que usaremos para receber o nosso usuário e senha do SauceLabs.

src/e2e/conf.js

/**

* Aqui estamos criando as variáveis e recebendo os valores que serão passados como argumentos

*/

var userSauce = process.argv[3].substr(2);

var keySauce = process.argv[4].substr(2);

//Validando se a variável de usuario nao esta vazia.

if(userSauce == null){

  console.log(“Please inform the sauceUser, syntax: protractor conf.js –sauceUser –sauceKey”);

}

//Validando se a variável de senha nao esta vazia.

if(keySauce == null){

  console.log(“Please inform the sauceKey, syntax: protractor conf.js –sauceUser –sauceKey”);

}

//Se tiver tudo certo!!!

else{

  console.log(“Test successfully started…”);

}

exports.config = {

  /**

   * Setting parameters for connect in SauceLabs

   */

  sauceUser: userSauce,

  sauceKey: keySauce,

Pronto!   Agora finalizamos a nossa configuração para executarmos o protractor via o Docker, agora vamos ao comando de execução dos testes…

docker run –rm -v <localização_do_projeto>:/automated diogocosta/protractor-saucelabs –sauceUser –sauceKey

Explicando o comando acima:

docker run: Comando para executar a imagem criando um contêiner de execução;

–rm: Com esse parâmetro apos finalizar o contêiner irá ser eliminado;

-v: Com esse parâmetro criamos um volume espelhando o código de teste;

<localização_do_projeto>: Caminho da raiz do projeto que contem o código de teste;

:/automated:  Nome do volume criado dentro do contêiner;

diogocosta/protractor-saucelabs: Nome da imagem usada para criar o contêiner;

–sauceUser: Após os ‘–’ colocar seu usuário no SauceLabs;

–sauceKey: Após os ‘–’ colocar sua senha no SauceLabs;

*Bônus: Como criar uma conta OpenSauce

Vamos começar acessando o link do OpenSauce:

https://saucelabs.com/opensauce

E vamos procurar o botão do “Create Your Account”, conforme imagem abaixo:

Ao clicarmos no botão seremos redirecionado para o formulário de cadastro da conta e so preencher os seus dados e ‘:

https://saucelabs.com/beta/signup/OSS/None

Lembrem-se de alterar o tipo de plano para o tipo “Open Sauce” e que o “REPOSITORY URL” tem que ser de um repositório de um código automatizado público.

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s