Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TDC Floripa 2020: ScanAPI Automatização de Testes de Integração para a sua API

TDC Floripa 2020: ScanAPI Automatização de Testes de Integração para a sua API

ScanAPI: Automatização de Testes de Integração para a sua API
A ScanAPI é uma biblioteca de código aberto escrita em Python que possibilita a criação de testes de integração para REST APIs.

Através de um arquivo de configuração YAML, você consegue implementar testes automatizados para os endpoints da sua API. A biblioteca gera um relatório da execução dos testes que também pode ser utilizado como a própria documentação da API

Essa palestra visa mostrar um pouco do funcionamento da ScanAPI, da sua implementação, discutir os próximos passos a serem seguidos e também divulgar a ferramenta para quem possa ter interesse, seja para sua utilização ou contribuição com o projeto.

https://thedevconf.com/tdc/2020/floripaonline/trilha-python

Camila Maia

June 25, 2020
Tweet

More Decks by Camila Maia

Other Decks in Technology

Transcript

  1. ScanAPI Automatização de Testes de Integração para a sua API

    Camila Maia 1 TDC Florianópolis Junho de 2020
  2. Quem sou eu? 4 - Desenvolvedora Backend - Formada em

    Sistemas de Informação na UFSC - Moro agora em Porto Alegre, mas sou de Floripa - Entrei na área em 2010 - Maior experiência com Python e Ruby - Estava na organização do PyJamas ano passado
  3. Motivação Erros de integração 6 - Cliente mandando campos diferentes

    do esperado - Frontend recebendo campos diferentes do esperado
  4. O quê a ScanAPI se propõe a fazer pela sua

    API? 11 - Framework de código aberto - Escrito em Python 1. Fornecer uma documentação “Ao Vivo” 2. Possibilitar a implementação de testes de Integração
  5. 13

  6. 14

  7. # api.yaml api: endpoints: - name: pokeapi path: https://pokeapi.co/api/v2/ endpoints:

    - name: pokemon path: pokemon requests: - name: list_all method: get path: / Como funciona? Exemplo: PokéAPI 16
  8. 19

  9. 20

  10. 21

  11. Como funciona? Testes de Integração ✅ 22 ... requests: -

    name: list_all method: get path: / tests: - name: status_code_is_200 assert: ${{ response.status_code == 200 }} - name: response_time_is_under_half_second assert: ${{ response.elapsed.total_seconds() < 0.5 }} - name: count_is_964 assert: ${{ response.json()["count"] == 964 }} https://requests.readthedocs.io
  12. 23

  13. Como funciona? Encadeamento ⛓ 24 - Pegar detalhes de um

    Pokémon - Neste caso o dado é “estático”, mas poderia não ser - Nem sempre você sabe o quê vai ser retornado no endpoint de list - https://pokeapi.co/api/v2/pokemon/bulbasaur
  14. Como funciona? Encadeamento ⛓ 25 requests: - name: pokemon path:

    pokemon requests: - name: list_all method: get path: / vars: pokemon_name: ${{ response.json()["results"][0]["name"] }} tests: ... - name: details method: get path: ${pokemon_name}
  15. 26

  16. Como funciona? E tem mais 27 - Independente de linguagem!

    - Especificação da API também é aceita em JSON - Variável de Ambiente - Esconder dados sensitivos no relatório - Especificação da API em vários arquivos - Templates Customizados
  17. Próximos passos E o futuro? 29 - Apresentação no dia

    24 de Julho - Sessão de Sprint no fim de semana 25 e 26 de Julho (de graça!) Mais informações
  18. Próximos passos E o futuro? 30 - Outros métodos HTTP

    (além de GET, POST, PUT, PATCH, DELETE) - Visualização de JSON - Documentação + Tutoriais - Website - GitHub Action E se…. - OpenAPI
  19. Por que colaborar com a ScanAPI? Chega junto! 31 -

    Todas as áreas: automação, backend, front, design - “Python Puro” - Entender como uma lib funciona - Cobertura de testes > 90% - Automação
  20. Por que colaborar com a ScanAPI? Chega junto! 32 How

    Open Source Changed My Life with Max Stoiber