O objetivo deste último artigo é te guiar na criação de relatórios do Pytest. Para quem está começando no desenvolvimento de testes de APIs, recomendo que veja os artigos anteriores (partes 1 e 2), mas se você já tem algum projeto em andamento e quer apenas criar reports e executar a suíte de testes inteira, pode seguir sem problemas.
Do que você irá precisar:
- Python 3+
- Pip (gerenciador de pacotes do Python)
- Algum editor de texto ou IDE (utilizo VSCODE por praticidade e gosto pessoal)
Relembrando nossos scripts de teste
Anteriormente, criamos um arquivo de teste para cada verbo visto (get, post, put e delete). Veja como encerramos o artigo passado:
test_get.py

test_post.py

test_put.py

test_delete.py

Configuração da suíte de testes
Tenha em mente algumas regras básicas de descobrimento de testes que o Pytest leva em consideração:
- Se nenhum argumento for informado, a descoberta de testes começa do testpaths ou do diretório atual (configuração desse projeto).
- A busca acontece recursivamente entre diretórios por padrão.
- Nesses diretórios, a busca leva em conta arquivos que tenham a configuração test_*.py ou *_test.py (por boa prática, criamos um diretório chamado tests/).
- Métodos que começam com test_
- Classes que começam com Test.
Execução
Mão na massa
Para execução de todos os testes, execute o comando pytest no diretório raiz do projeto:

Nesse report padrão, conseguimos ver através do terminal as informações:
- Quantidade de testes executados
- Tempo total da execução
- OS e versão do Python
Adicione o parâmetro –durations=0 para exibir a duração de todos os testes:

Adicione o parâmetro –durations=n (onde n é um número inteiro entre 1 e a quantidade de testes) para exibir a duração de todos os n testes mais lentos:

Instale o pacote de report em formato html com o comando pip install pytest-html e adicione o parâmetro –html=report.html na execução de sua suíte:

Instale o pacote de report em formato json com o comando pip install pytest-json-report –upgrade e adicione o parâmetro –json-report na execução de sua suíte:

Chegamos ao fim dessa série.
Espero que esse tutorial seja útil pra vc! Ainda ficou com alguma dúvida no assunto? Conta pra gente nos comentários!