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

Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te contaram...

Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te contaram...

Palestra no TDC 2017 - Florianopolis

Frederico Moreira

May 05, 2017
Tweet

More Decks by Frederico Moreira

Other Decks in Technology

Transcript

  1. Frederico Moreira Tudo que você sempre quis saber sobre testes

    de APIs Rests, mas que nunca te contaram... @fredaomoreira
  2. MG • Café, testes e pão de queijo • MTC

    - Minas Testing Conference Agile Testers • Fórum • Agile Testers Conference UAI, TREM, SÔ • if(pinga && torresmo) @fredaomoreira @ConcreteS
  3. O que é uma API?

  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. “ Fonte: https://goo.gl/zMwp3U
  5. Exemplos de APIs: Companhias Aéreas • Google Flights • Sky

    Scanner Cálculo de entrega (CEP) • e-commerce Geolocalização • API Google Maps
  6. Pirâmide de Testes “Ideal” Mike Cohn UI Service Unit Manual

  7. Testes no Nível de Serviço Preenche o gap entre testes

    unitários e de UI Acontecem em paralelo ao desenvolvimento Foco na funcionalidade e não no comportamento/experiência Testa critérios de aceite mesmo antes da interface(mobile ou web) estar desenvolvida. Subcutaneous Test - Martin Fowler
  8. REST em cima de protocolo HTTP mas você pode usar

    REST com outro protocolos como TCP, UDP e gRPC (http://www.grpc.io/). O mais comum de encontrar no mercado são projetos novos usando
  9. None
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. http://racksburg.com/choosing-an-http-status-code/

  21. Como testar manualmente?

  22. Ferramentas http://www.telerik.com/fiddler https://www.getpostman.com/

  23. Entendendo transações HTTP

  24. request response VIEW

  25. None
  26. #COMANDO CURL curl -i -X GET "http://localhost:5000/contacts?name=Tester" #HEADER HTTP/1.1 200

    OK X-Powered-By: Express Content-Type: application/json; charset=utf-8 Content-Length: 110 ETag: W/"6e-Za+ESrkoytVXhydy0NJoFA" Date: Mon, 14 Mar 2016 18:17:19 GMT Connection: keep-alive #BODY [{"_id":"56d5efa8c82593800291c02b","name":"Tester","mobilephone":"05 52188889999","homephone":"0552133332222"}]
  27. Mas eu preciso mesmo automatizar testes de API? “ disse

    o QA
  28. None
  29. Mundo JS http://frisbyjs.com/ http://www.fredmoreira.com/2014/11/como-voce-anda-testando-sua-api-rest.htm l http://dareid.github.io/chakram/ https://github.com/fredmoreira/ApiTest

  30. Mundo Ruby https://ruby-doc.org/stdlib-2.3.1/libdoc/net/http/rdoc/Net/HTTP.html https://github.com/jnunemaker/httparty https://github.com/jnunemaker/httparty https://github.com/lostisland/faraday https://github.com/fredmoreira/api-test-ruby

  31. Mundo Java https://github.com/fredmoreira/demo-rest-assured https://www.youtube.com/watch?v=dShI6n1CSoY @juliodelimas

  32. Mundo Python https://github.com/fredmoreira/demo-pyresttest https://github.com/svanoort/pyresttest

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

  34. Segurança O que eu como QA consigo pensar em segurança,

    nos testes de APIs?
  35. Dependências NodeJs • Snyk • NSP Java e .NET •

    OWASP Dependency-check Python • Dependency-check-py
  36. X-XSS-Protection

  37. Appcanary Tudo que você precisa saber sobre segurança em headers

    HTTP https://blog.appcanary.com/2017/http-securit y-headers.html
  38. E se eu sou preguiçoso(a) ?

  39. http://www.mocky.io/

  40. https://apiary.io/

  41. Mas porque? Porque eu como QA deveria saber testar API?

    O que teste de API pode me ajudar no meu dia a dia?
  42. Links: • https://snyk.io/ • https://github.com/nodesecurity/nsp • https://www.owasp.org/index.php/OWASP_Dependency_Check • https://github.com/jhermann/dependency-check-py

  43. • http://www.fredmoreira.com/2014/11/como-voce-anda-te stando-sua-api-rest.html • https://httpstatuses.com/ • http://apimetrics.io/2015/03/31/automated-api-testing-ne cessary/ • https://goo.gl/5vM84j

    • http://sensedia.com/blog/apis/sites-para-descobrir-apis/ • http://keeptesting.com.br/2014/09/09/testando-suas-api s-com-frisby-js/ Links:
  44. Repositórios: • https://github.com/fredmoreira/demo-pyresttest • https://github.com/fredmoreira/demo-rest-assured • https://github.com/fredmoreira/ApiTest • https://github.com/fredmoreira/api-test-ruby •

    https://github.com/fredmoreira/phone-book
  45. Dúvidas?

  46. None