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

PrograMaria 2021

Avatar for Camila Maia Camila Maia
September 18, 2021

PrograMaria 2021

Avatar for Camila Maia

Camila Maia

September 18, 2021
Tweet

More Decks by Camila Maia

Other Decks in Technology

Transcript

  1. Quem sou eu? - Desenvolvedora Backend - 10+ anos xp

    👵 - Python 🐍 e Ruby 💎 - OpenSource e Comunidades ❤ - Organização de eventos: Pyjamas, EuroPython, Python Brasil….
  2. Motivação Erros de integração 💥 - Clientes enviando campos diferentes

    do esperado - Frontend recebendo campos diferentes do esperado
  3. • Framework de código aberto • Command line interface (CLI)

    • Escrito em Python Objetivos: 1. Fornecer Live Documentation 2. Possibilitar a implementação de Testes de Integração O quê é?
  4. # scanapi.yaml 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 path: https://pokeapi.co/api/v2/ pokemon / name: pokeapi :: pokemon :: list_all
  5. ... 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: results_length_is_20 assert: ${{ len(response.json()["results"]) == 20 }} - name: count_is_gte_1118 assert: ${{ response.json()["count"] >= 1118 }} Como funciona? https://requests.readthedocs.io Testes de Integração ✅
  6. Como funciona? - Pegar detalhes de um Pokémon - Neste

    caso o dado é “estático”, mas poderia não ser https://pokeapi.co/api/v2/pokemon/bulbasaur Encadeamento ⛓
  7. Como funciona? ... endpoints: - 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} pokemon/${pokemon_name}
  8. Como funciona? E tem mais 🎉 - Especificação também é

    aceita em JSON - Especificação em vários arquivos - Delay entre requests - Relatórios Customizados - VS Code Plugin
  9. Próximos passos E o futuro? 🔮 • Foco: aumentar a

    adoção da ferramenta. Divulgação! Falando em novas features, e se…. • Exportar: OpenAPI, Postman Collection, Insomnia… Esforço quase nulo para adoção!
  10. Por que utilizar ScanAPI? 8 motivos! 1. Funciona para qualquer

    API REST 2. Excelente para testar e documentar APIs próprias e de terceiros 3. É possível encadear requests, o que é essencial para testar cenários complexos 4. A documentação é gerada automaticamente, ela nunca fica desatualizada 5. É simples. A sintaxe é simples e não requer quase nenhum conhecimento específico da linguagem 6. É extremamente flexível 7. É seguro 8. Não há nada no mercado que faça o que o ScanAPI faz