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

3 Tópicos sobre testes em APIs GraphQL que todo QA deveria saber.

3 Tópicos sobre testes em APIs GraphQL que todo QA deveria saber.

No mundo de desenvolvimento de software quando falamos de testes de APIs a primeira coisa que vem na cabeça de grande parte dos QAs é SOAP, REST, HTTP e etc... Atualmente em alguns contextos se fala muito em API GraphQL, você sabe o que é? Você utiliza no seu dia a dia? A ideia desta talk é justamente trazer informações para entender melhor o que seria uma API GraphQL e alguns abordagens de como testar este tipo de API.

Frederico Moreira

May 20, 2020
Tweet

More Decks by Frederico Moreira

Other Decks in Technology

Transcript

  1. 3 Tópicos sobre testes em APIs GraphQL que todo QA

    deveria saber. Frederico Moreira
  2. Brazil (Minas Gerais) • Café, testes e pão de queijo

    • MTC - Minas Testing Conference @fredaomoreira
  3. 1) Conceito “GraphQL é uma linguagem de consulta e ambiente

    de execução voltada a servidores para as interfaces de programação de aplicações(APIs) cuja prioridade é fornecer exatamente os dados que os clientes solicitam e nada além.” Fonte: https://www.redhat.com/pt-br/topics/api/what-is-graphql
  4. “Uma API é criada quando uma empresa de software tem

    a intenção de que outros criadores de software desenvolvam produtos associados ao seu serviço.” API
  5. Exemplos • Google ◦ Google Maps ◦ Google Flights •

    Accommodation ◦ Trivago ◦ Booking • Payment providers ◦ Paypal
  6. https:/ /graphql.org

  7. None
  8. 2) Como testar

  9. Teste no nível de serviço Subcutaneous Test - Martin Fowler

    Preencher o gap entre testes unitários e UI Podem ocorrer em paralelo ao desenvolvimento... Foco na funcionalidade e não na experiência do usuário Import ‘application’
  10. O que avaliamos em testes em APIs Rest ➔ http

    status code 200, 201, 400, 401, 500 ... ➔ body content Json, Plain text, XML ... ➔ http headers "Content-Type"":"application/json"
  11. O que avaliamos em testes em API GraphQL ➔ http

    status code 200, 201, 400, 401, 500 ... ➔ body content Apenas os dados solicitados ➔ http headers "Content-Type"":"application/json"
  12. None
  13. None
  14. Fonte:https://hasura.io/learn/graphql/elm-graphql/intro-to-graphql/

  15. Fonte:https://hasura.io/learn/graphql/elm-graphql/intro-to-graphql/

  16. Ferramentas para explorar manualmente:

  17. None
  18. Agile Testers • Fórum • Agile Testers Conference • QAnsei

    • assert(QA) • fredmoreira.com (in progress) • https://medium.com/assertqua lityassurance @fredaomoreira
  19. 3) Automatize seus testes

  20. Mas eu realmente preciso automatizar Testes de API GraphQL?

  21. Automated Testing Frameworks:

  22. https:/ /github.com/fredmoreira/phone-book-graphql

  23. API Test Project DB Environment

  24. API Test Project DB Query / Mutation Environment

  25. Show me the code...

  26. Referências: • https:/ /github.com/fredmoreira/phone-book-graphql • https:/ /github.com/fredmoreira/phone-book • https:/ /medium.com/assertqualityassurance/graphql-e2e-

    testing-com-jest-apollo-client-80e0c60b1a9d • https:/ /github.com/douglasbolis/graphql-prisma-tests • http:/ /graphql.org/learn/ • https:/ /medium.com/assertqualityassurance
  27. Questions?