Giter VIP home page Giter VIP logo

seminario-s206-pytest's Introduction

Hello, Dev world!💻

CI Python PYTEST

Python Visual Studio Code PyCharm

Menu

Sobre o Projeto

Projeto desenvolvido para o seminário da matéria Qualidade de software(S206) ministrada pelo professor Chris Lima no primeiro semestre de 2022.

Na realização deste seminário foi utilizada a ferramenta Pytest, visando a criação de testes de API.

Equipe:

  • 👧 Luiza Monroe
  • 👦 Alvaro Breno
  • 👦 Leonardo Mendonça

Instalação das Ferramentas necessárias 💻⚙️

Para saber mais sobre a ferramenta Pytest , você pode acessar a documentação e poder esclarecer quaisquer duvidas que surgirem. Mas segue em frente pro passo a passo!

Pré - Requisitos 🎯

Para instalar o Pytest é preciso ter também em sua máquina o PIP, gerenciador de pacotes do Python.
Normalmente, o PIP é instalado automaticamente se você:

  • Está usando Python baixado de python.org
  • Está usando IDE's como o PyCharm, que ja possui o PIP integrado e também uma fácil instalação do Pytest, direto em suas configurações de projeto.
  • O VSCode também tem sua extensão com o Python e seu guia de instalação.

💿 Windows S.O

⚠️Antes de tudo, você pode usar o CMD do Windows ou até mesmo o Git Bash para isso ⚠️

Step 1: Rode o seguinte comando para baixar o arquivo "get-pip.py":

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

Step 2: Instalando PIP no windows:

python(ou py) get-pip.py

Step 3: Adicione PIP nas suas variáveis de ambiente do Windows, para poder rodar o comando de qualquer lugar.

Versão e atualização

  • Para verificar se instalou corretamente e saber sua versão, rode o seguinte comando:
pip --version
  • Para atualizar sua versão do PIP, rode o seguinte comando:
python -m pip install --upgrade pip

Instalando o Pytest

  • 1º Com um simples comando você já instala o Pytest:
pip install -U pytest
  • 2º Para saber a versão do Pytest, também é simples:
pytest --version

💿 Linux S.O

Você pode seguir o passo-a-passo do python.org para instalação do Python em Linux

Instalando o Pytest

Step 1:

sudo apt-get update

Step 2:

sudo apt-get install python-pytest

💿 MacOS

Você pode seguir o passo-a-passo do python.org para instalação do Python em MacOS

Vantagens do Pytest

  • A sintaxe simples permite que pessoas de todos os níveis possam utilizá-lo sem dificuldade;
  • Permite execução de testes em paralelo;
  • Facilidade na troca da execução de um teste, um conjunto ou uma suíte completa;
  • Detecta testes automaticamente baseando-se nos nomes dos arquivos e diretórios criados;
  • Open source.

Clonando o projeto 🔀

Agora é hora de baixar o projeto e poder testar um pouco dessa ferramenta de testes unitários.

  • Com o terminal ainda aberto, navegue até a pasta onde deseja salvar o projeto e cole o seguinte comando:
git clone https://github.com/luizamonroe/Seminario-S206-PYTEST.git

Pronto, tudo configurado! Agora é só escolher o seu IDE que preferir.

Iniciando os testes de API

  • Utilizaremos o Dummy pela simplicidade e praticidade na hora de implementar nossos scripts. Ele nos oferece rotas com todos os verbos HTTP apresentados inicialmente e nos permite buscar, criar, deletar e atualizar empregados (employees).

  • Na IDE utilizada, crie um arquivo chamado get.py

  • A biblioteca requests será utilizada para realizar as chamadas nas APIs, então devemos importá-la no nosso get.py:

    ímage

  • Guardaremos o Dummy na variável url:

    image

  • Precisamos criar um cabeçalho (header) informando que vamos realizar um request e que aceitamos diversos tipos de resposta do endpoint:

    image

  • Para realizar a busca pelos empregados utilizando a biblioteca request, utilizaremos a função do verbo get, informando a url utilizada, e guardaremos essa informação em "resposta":

    image

  • E para imprimirmos a variável, e analisarmos o conteudo do site utilizado:

    image

Para rodar o script:

  • Pelo terminal da própria IDE utilizada:

    • Rodar o comando python get.py, e o resutado deverá ser este:

    image

  • Pelo terminal do próprio computador:

    • Navegar até a pasta criada (no meu caso Documents\Inatel\Seminario-S206-PYTEST);
    • Rodar o comando python get.py, e o resutado deverá ser este:

    image

Criando um teste de API

  • Os nomes dos scripts de teste do Pytest e seus métodos devem começar com test_ ou finalizar com _test.

    image

  • Crie um método com o nome de preferência respeitando a nomenclatura citada.

    image

  • Passe todo o conteúdo do seu script para o interior desse método através da indentação.

  • Remova os prints e utilize asserts para validar os retornos da API.

  • Agora execute o comando pytest test_get.py e veja o resultado.

    image

  • Obs: O teste só deve passar caso as condições sejam verdadeiras.

Gerando report dos testes

  • Para gerar os reports dos teste você precisa fazer os seguintes passos:
  1. Se quiser html reports
pip install pytest-html
  • Apos instalação ao executar o teste pelo cmd ou terminar da IDE que escolheu acrescente o comando --html=report.html, veja:
pytest  --html=report.html
  • Obs: O comando pytest executa todos os testes da sua suíte de testes no diretório raíz do projeto.
  1. Se quiser por json-report
pip install pytest-json-report — upgrade
  • Após a instalação ao executar os testes pelo cmd ou terminal da IDE que escolheu acrescente o comando --json-report, veja:
pytest --json-report 

Arquivos 📂

  • 📄 test_get.py

image

  • 📄 test_put.py

image

seminario-s206-pytest's People

Contributors

alvarobreno avatar luizamonroe avatar leomendoncaf avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.