Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Brazil (Minas Gerais) ● Café, testes e pão de queijo ● MTC - Minas Testing Conference @fredaomoreira

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

“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

Slide 5

Slide 5 text

Exemplos ● Google ○ Google Maps ○ Google Flights ● Accommodation ○ Trivago ○ Booking ● Payment providers ○ Paypal

Slide 6

Slide 6 text

https:/ /graphql.org

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

2) Como testar

Slide 9

Slide 9 text

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’

Slide 10

Slide 10 text

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"

Slide 11

Slide 11 text

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"

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Ferramentas para explorar manualmente:

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Agile Testers ● Fórum ● Agile Testers Conference ● QAnsei ● assert(QA) ● fredmoreira.com (in progress) ● https://medium.com/assertqua lityassurance @fredaomoreira

Slide 19

Slide 19 text

3) Automatize seus testes

Slide 20

Slide 20 text

Mas eu realmente preciso automatizar Testes de API GraphQL?

Slide 21

Slide 21 text

Automated Testing Frameworks:

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

API Test Project DB Environment

Slide 24

Slide 24 text

API Test Project DB Query / Mutation Environment

Slide 25

Slide 25 text

Show me the code...

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Questions?