Automatizando com o Gauge... Que Gauge!? - Parte 1

 Ler em Português      Read in English
Hoje vou falar de uma ferramenta de automação que quase ninguém conhece, o Gauge.

Gauge? Que Gauge?
"Gauge é uma ferramenta de automação de testes multiplataforma. As especificações são escritas em Markdow de formato livre para que casos de teste possam ser escritos na linguagem de negócios, ao invés do formato mais comum, porém restritivo, "dado-quando-então". Suporte a linguagens e a IDEs são implementados como plugins, permitindo que analistas de teste usem as mesmas IDEs que o restante do time, com capacidades poderosas como autocompletar e refatoração. Essa ferramenta, desenvolvida com código aberto pela ThoughtWorks, também traz nativamente a execução paralela para todas as plataformas suportadas." (Fonte: ThoughtWorks - Technology Radar)
 
Resumindo, algumas qualidades do Gauge:
- Não te deixa preso no "given-when-then"; 
Obrigado
- Fácil de instalar;
- Permite que você escreva seus scripts em várias linguagens (Java, Ruby, C#, etc.);
- Open Source =D;
- Suporte a algumas IDEs (IntelliJ, Visual Studio e Eclipse);
- A sintaxe é bem simples de entender.

Vou fazer um mini-tutorial para mostrar como são executados os testes no Gauge e quais as principais features dele, mas como vou ter muito o que falar, vou dividir este post em algumas partes.
Hoje vou falar da instalação, execução e de como funciona a estrutura básica de um projeto no Gauge.

1 - Instale o Gauge
Verifique como instalar o Gauge em seu sistema operacional aqui.

Exemplo, se você usar o linux, você precisa:

  • Baixar o Gauge 32 bit ou 64 bit; 
  • Abrir o arquivo zipado pelo terminal, no meu caso, salvei o arquivo na home, então foi só executar esse comando:
$ unzip gauge-0.5.0-linux.x86_64.zip 
  • Agora, execute este comando para instalar:
$ ./install.sh

2. Instale o plugin da linguagem que você vai usar
Exemplo:

  • Se você usa Java: $ gauge --install java
  • Se você usa C#: $ gauge --install csharp
  • Se você usa Ruby: $ gauge --install ruby

3. Instale o plugin para gerar um relatório em HTML
O gauge tem um relatório em HTML. Na minha opinião, não é muito prático, mas pode ser útil quando você executa muitos testes de uma vez e não consegue acompanhar todos os resultados da execução no terminal.
 
Para instalar o plugin: $ gauge --install html-report

4. Verifique sua instalação
Execute $ gauge -v

Se tudo der certo, a resposta será parecida com essa:
Gauge version: 0.5.0

Plugins
-------
html-report (2.1.0)
ruby (0.2.0)


5. Inicie um projeto
Execute o comando de acordo com sua linguagem escolhida, no meu caso: 
$ gauge --init ruby

Quando você executa esse comando, o Gauge vai criar um projeto modelo para você utilizar como exemplo. Veja a estrutura do projeto criado:

6. Execute 
$ gauge specs pra ver se o projeto exemplo está rodando normalmente:
 
Specifications: 1 executed 1 passed 0 failed 0 skipped
Scenarios:     2 executed 2 passed 0 failed 0 skipped

Total time taken: 80ms
 
Sucesso total!
 

7. Entendendo a estrutura do Gauge

Você vai trabalhar basicamente com dois arquivos a maior parte do tempo, as especificações e os steps. 
 
Especificação
Exemplo de especificação
Nome da especificação - O nome que você vai dar para o grupo de cenários contidos nesse arquivo. Para especificar o nome é necessário "sublinhar" o título com "======" ou colocar uma # antes do nome. 
Exemplo: # Specification Heading.
Nome do cenário - A especificação deve conter no mínimo um cenário. Para especificar o nome do cenário é necessário sublinhar o título com "-------" ou colocar duas ## antes do nome. 
Exemplo: ## Vowel counts in single words.
Steps - Passos executáveis que podem ou não estar dentro do cenário. Para especificar o nome dos steps é necessário colocar um * antes do nome. Exemplo: * Almost all words have vowels.




Steps


Aqui ficarão os scripts dos testes. A implementação depende de cada linguagem, no caso do Ruby (exemplo acima), será sempre:
step 'Say <greeting> to <product name>' do |greeting, name|
 # Code for the step
end
Essa foi a primeira parte do post sobre Gauge. Na próxima, quero mostrar alguns recursos legais que utilizo no meu dia-a-dia.

Ficou com dúvidas? Mande sua pergunta aqui nos comentários!

2 comentários:

  1. dá um exemplo em javascript com um exemplo de como testar uma tela de uma aplicação exemplo mapeando os campos etc...

    ResponderExcluir

  2. I was able to find good information from your articles. yahoo email login

    ResponderExcluir