Testes funcionais em APIs REST com a ferramenta Frisby.js -Parte 4
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.
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":
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:
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:
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
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!).
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?
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:
- 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.
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