Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tudo que você sempre quis saber sobre testes de...
Search
Frederico Moreira
May 05, 2017
Technology
0
64
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
Share
More Decks by Frederico Moreira
See All by Frederico Moreira
3 Tópicos sobre testes em APIs GraphQL que todo QA deveria saber.
fredmoreira
0
75
Because every QA should know API Testing
fredmoreira
0
130
Para, entenda seu contexto e contribua de maneira efetiva como QA
fredmoreira
0
42
Pirâmide testes mobile, distribua seus testes de maneira efetiva
fredmoreira
1
50
Porque todo QA deveria saber testes de APIs
fredmoreira
0
130
Testes de APIs
fredmoreira
0
72
Microservices alterando seu mindset de tester
fredmoreira
1
140
Palestra de como testar sua API Rest no Grupo de Teste Carioca
fredmoreira
0
36
Docker para testers - Um passeio fora da caixa
fredmoreira
0
50
Other Decks in Technology
See All in Technology
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
140
韓非子に学ぶAI活用術
tomfook
3
1k
DMBOKを使ってレバレジーズのデータマネジメントを評価した
leveragestech
0
400
イベントで大活躍する電子ペーパー名札を作る(その2) 〜 M5PaperとM5PaperS3 〜 / IoTLT @ JLCPCB オープンハードカンファレンス
you
PRO
0
210
ThetaOS - A Mythical Machine comes Alive
aslander
0
200
データマネジメント戦略Night - 4社のリアルを語る会
ktatsuya
1
380
DDD×仕様駆動で回す高品質開発のプロセス設計
littlehands
6
2.5k
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
150
スピンアウト講座06_認証系(API-OAuth-MCP)入門
overflowinc
0
1.3k
The Rise of Browser Automation: AI-Powered Web Interaction in 2026
marcthompson_seo
0
310
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
120
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
1
170
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Amusing Abliteration
ianozsvald
0
140
Google's AI Overviews - The New Search
badams
0
950
Music & Morning Musume
bryan
47
7.1k
Odyssey Design
rkendrick25
PRO
2
560
It's Worth the Effort
3n
188
29k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
Un-Boring Meetings
codingconduct
0
240
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
160
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Transcript
Frederico Moreira Tudo que você sempre quis saber sobre testes
de APIs Rests, mas que nunca te contaram... @fredaomoreira
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
O que é uma API?
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
Exemplos de APIs: Companhias Aéreas • Google Flights • Sky
Scanner Cálculo de entrega (CEP) • e-commerce Geolocalização • API Google Maps
Pirâmide de Testes “Ideal” Mike Cohn UI Service Unit Manual
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
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
None
None
None
None
None
None
None
None
None
None
None
http://racksburg.com/choosing-an-http-status-code/
Como testar manualmente?
Ferramentas http://www.telerik.com/fiddler https://www.getpostman.com/
Entendendo transações HTTP
request response VIEW
None
#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"}]
Mas eu preciso mesmo automatizar testes de API? “ disse
o QA
None
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
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
Mundo Java https://github.com/fredmoreira/demo-rest-assured https://www.youtube.com/watch?v=dShI6n1CSoY @juliodelimas
Mundo Python https://github.com/fredmoreira/demo-pyresttest https://github.com/svanoort/pyresttest
https://github.com/fredmoreira/phone-book
Segurança O que eu como QA consigo pensar em segurança,
nos testes de APIs?
Dependências NodeJs • Snyk • NSP Java e .NET •
OWASP Dependency-check Python • Dependency-check-py
X-XSS-Protection
Appcanary Tudo que você precisa saber sobre segurança em headers
HTTP https://blog.appcanary.com/2017/http-securit y-headers.html
E se eu sou preguiçoso(a) ?
http://www.mocky.io/
https://apiary.io/
Mas porque? Porque eu como QA deveria saber testar API?
O que teste de API pode me ajudar no meu dia a dia?
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
• 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:
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
Dúvidas?
None