Testes de APIs REST com Python e Pytest, Parte 3

No items found.
3/9/2020
Marlon de Alencar
Marlon de Alencar
Analista de Testes

Cearense mestrando em ciências de computação e jogador de Dota nas horas vagas

Está sem tempo para ler? Aperte o play para escutar o artigo.

Nível: básico

Conteúdo:

  • Configuração da suíte de testes
  • Criação de scripts para recuperar e inserir dados em uma API
  • Desenvolver testes e relatórios a partir dos scripts criados

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


python

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!

O que você achou deste conteúdo?
Quer receber nossos conteúdos?
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.