Testes funcionais em APIs REST com a ferramenta Frisby.js -Parte 4

Luiz Eduardo Martins
Serasa
Published in
5 min readJul 3, 2019

Dando continuidade a série de posts sobre testes funcionais em APIs REST, vamos falar sobre como gerar relatórios das execuções dos testes automatizados.

É legal lembrarmos que o Frisby utiliza o Jest como test runner, desta forma podemos usufruir de todo poder que a ferramenta nos entrega. Como exemplo, trago um repositório que é dedicado a fazer um agregado de funcionalidades interessantes para o Jest: O Awesome Jest que inclusive tem uma seção exclusiva para reporters.

Unbelievable

Isso quer dizer que posso agregar qualquer desses relatórios na minha stack?

A resposta é: SIM o/

Neste post iremos falar sobre dois geradores de relatórios: o Jest-HTML-Reporter e o Report Portal.

Jest html reporter

Este relatório transforma a saída dos testes automatizados em uma página HTML com algumas opções de customização.

Para instalar este reporter, basta rodar o seguinte comando:

npm install jest-html-reporter — save-dev

Após a instalação ser concluída, precisamos configurar o arquivo "package.json" para que ele passe a interpretar a saída como sendo o relatório que acabamos de instalar.

Para isso, iremos adicionar a seguinte seção no arquivo "package.json":

Package.json image

Como podemos observar, existem várias configurações que podemos passar para o relatório se modelar da forma que quisermos. A lista completa destas possibilidades está aqui.

Quando executarmos nossa suíte de testes, o terminal deve nos apresentar a seguinte informação:

Test execution

Um relatório sobre esta execução foi gerado na pasta que configuramos. Se abrirmos o mesmo, iremos visualizar os dados relacionados aos testes que acabaram de ser executados:

Test report

Report Portal

O Report Portal vai além de um simples relatório de teste, ele é um serviço que permite você conectar sua stack para geração de relatórios e criação de dashboards personalizados. É uma ótima solução para centralizar dados sobre os resultados das execuções de teste. Isso é muito útil principalmente quando a empresa possui diversos produtos/projetos.

Mais informações podem ser encontradas no site do próprio report: https://reportportal.io/docs

Gif what

Se você desejar seguir nesta abordagem, recomendamos que siga o tutorial de instalação disponível em https://reportportal.io/download (até o passo 3 está de bom tamanho)

Se você chegou ao final do passo 3 e conseguiu subir todos os serviços do report localmente, significa que estamos prontos para o próximo passo.

Faça o login na plataforma e crie um projeto para você e navegue um pouco para se ambientar com os recursos (são poucos agora mas calma!).

Gif Clap

Agora é hora de realizarmos a integração do report com nossa stack de testes. Este procedimento é realizado através do que chamamos de “agents”, pois o próprio report dispõe de integrações com várias linguagens e frameworks.

Mais informações sobre este procedimento podem ser encontradas na própria documentação: https://reportportal.io/docs/Test-Framework-Integration (caso ainda esteja com dúvidas sobre isso, dê uma olhada no github dos caras (https://github.com/reportportal) :D.

Como sabemos, o Frisby utiliza o Jest como runner dos testes, desta forma faz todo sentido buscarmos um agent para o Jest fazer a comunicação não é mesmo?

Gif uau

Então vamos lá, para fazer isso rode os seguintes comandos:

npm install — save-dev @reportportal/reportportal-agent-jest

npm install — save-dev reportportal-client

Com isso o report está pronto para receber os dados de seus testes, mas antes precisamos realizar uma pequena mudança em nosso arquivo "package.json", conforme imagem abaixo:

Package.json — Report Portal
  • Endpoint: Endereço no qual o report está localizado (se você subiu em sua máquina sem nenhuma modificação, será http://localhost:8080/api/v1
  • Project: Nome do seu projeto no report portal.
  • Launchname: Toda vez que você rodar seus testes, será criado um novo “launcher” dentro do report portal.

Estamos quase finalizando!

Há um último ponto que é necessário antes de rodarmos nossa suíte de testes:
Entre no report portal > Faça login com sua conta > Vá no Menu > Administrate. Copie o UUID — Será necessário para adicionarmos em uma variável de ambiente.

Abra o terminal na pasta de seu projeto e rode o seguinte comando:

export RP_TOKEN=SEU_UUID

AGORA VAI!

Podemos rodar nossa suíte de testes: npm test.

Fireworks

Entrando no report portal, você verá um novo launch com todos os dados que foram usados nos testes. Agora você pode explorar todo o potencial da ferramenta e criar filtros e dashboards que façam sentido para seu contexto.

Sinta-se a vontade para baixar o projeto e propor melhorias: https://github.com/luuizeduardo/postman-api-automation

Quer saber mais?

Queremos estreitar relações com as comunidades e profissionais de tecnologia que queiram trocar figurinhas.

Por enquanto, os comentários aqui do Medium são nosso canal de comunicação oficial. Deixa sua mensagem para que possamos interagir ou mande um e-mail para ecs_it@br.experian.com.

Temos várias vagas nas áreas de Negócios e TI! O que você acha de dar uma olhada lá? É só clicar nesse link.

Luiz Eduardo Martins e Jonathan Henkels — Serasa Consumidor

--

--