SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
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
RESTem 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
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
#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
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?
Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te contaram...

Mais conteúdo relacionado

Mais procurados

Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app HíbridaElias Nogueira
 
Desmistificando os testes de API
Desmistificando os testes de APIDesmistificando os testes de API
Desmistificando os testes de APIJoão Júnior
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a pontaElias Nogueira
 
Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoElias Nogueira
 
Apenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidElias Nogueira
 
A importancia de testes em todos os aspectos
A importancia de testes em todos os aspectosA importancia de testes em todos os aspectos
A importancia de testes em todos os aspectosElias Nogueira
 
Soujava -construindo_ap_is_com_a_open_api_spec_e_java
Soujava  -construindo_ap_is_com_a_open_api_spec_e_javaSoujava  -construindo_ap_is_com_a_open_api_spec_e_java
Soujava -construindo_ap_is_com_a_open_api_spec_e_javaRaphael Rodrigues
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresElias Nogueira
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e gridElias Nogueira
 
InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingSamanta Cicilia
 
Desenvolvimento android rob guice e listview - parte 3
Desenvolvimento android   rob guice e listview - parte 3Desenvolvimento android   rob guice e listview - parte 3
Desenvolvimento android rob guice e listview - parte 3Albert Oliveira
 
TDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App Center
TDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App CenterTDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App Center
TDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App Centertdc-globalcode
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilElias Nogueira
 
A importância dos Testes no Devops
A importância dos Testes no DevopsA importância dos Testes no Devops
A importância dos Testes no DevopsElias Nogueira
 
QAs podem realizar testes de APIs? DEVEM!!!
QAs podem realizar testes de APIs? DEVEM!!!QAs podem realizar testes de APIs? DEVEM!!!
QAs podem realizar testes de APIs? DEVEM!!!Robson Agapito Correa
 
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...David Ruiz
 
Automação em Wearables para Android
Automação em Wearables para AndroidAutomação em Wearables para Android
Automação em Wearables para AndroidElias Nogueira
 

Mais procurados (20)

Automatizando uma app Híbrida
Automatizando uma app HíbridaAutomatizando uma app Híbrida
Automatizando uma app Híbrida
 
Desmistificando os testes de API
Desmistificando os testes de APIDesmistificando os testes de API
Desmistificando os testes de API
 
Testes para Android de ponta a ponta
Testes para Android de ponta a pontaTestes para Android de ponta a ponta
Testes para Android de ponta a ponta
 
Teste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercadoTeste sua app e aumente as chances de mantê-la no mercado
Teste sua app e aumente as chances de mantê-la no mercado
 
Apenas um script de teste para iOS e Android
Apenas um script de teste para iOS e AndroidApenas um script de teste para iOS e Android
Apenas um script de teste para iOS e Android
 
O Testador Técnico
O Testador TécnicoO Testador Técnico
O Testador Técnico
 
A importancia de testes em todos os aspectos
A importancia de testes em todos os aspectosA importancia de testes em todos os aspectos
A importancia de testes em todos os aspectos
 
Soujava -construindo_ap_is_com_a_open_api_spec_e_java
Soujava  -construindo_ap_is_com_a_open_api_spec_e_javaSoujava  -construindo_ap_is_com_a_open_api_spec_e_java
Soujava -construindo_ap_is_com_a_open_api_spec_e_java
 
Como ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadoresComo ensinei mais de 1000 testadores
Como ensinei mais de 1000 testadores
 
Agileze seus testes com automacao e grid
Agileze seus testes com automacao e gridAgileze seus testes com automacao e grid
Agileze seus testes com automacao e grid
 
InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression Testing
 
Desenvolvimento android rob guice e listview - parte 3
Desenvolvimento android   rob guice e listview - parte 3Desenvolvimento android   rob guice e listview - parte 3
Desenvolvimento android rob guice e listview - parte 3
 
TDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App Center
TDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App CenterTDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App Center
TDC2018SP | Trilha Mobile - Precisamos falar sobre Visual Studio App Center
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
A importância dos Testes no Devops
A importância dos Testes no DevopsA importância dos Testes no Devops
A importância dos Testes no Devops
 
Coded UI
Coded UICoded UI
Coded UI
 
Xamarin UI Test + BDD Specflow
Xamarin UI Test + BDD SpecflowXamarin UI Test + BDD Specflow
Xamarin UI Test + BDD Specflow
 
QAs podem realizar testes de APIs? DEVEM!!!
QAs podem realizar testes de APIs? DEVEM!!!QAs podem realizar testes de APIs? DEVEM!!!
QAs podem realizar testes de APIs? DEVEM!!!
 
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
Developer Experience - Escalando Negócios com a melhor experiência ao desenvo...
 
Automação em Wearables para Android
Automação em Wearables para AndroidAutomação em Wearables para Android
Automação em Wearables para Android
 

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

DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareAndré Dias
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPriscila Coelho S. Blauth
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosFelipe J. R. Vieira
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosStefan Teixeira
 
Espresso 101: Introdução a UI Testing
Espresso 101: Introdução a UI TestingEspresso 101: Introdução a UI Testing
Espresso 101: Introdução a UI TestingOnyo
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeterJúlio de Lima
 
API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...Eduardo Cini
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de softwareQualister
 
API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...Eduardo Cini
 
TDD e UnitTest em Java
TDD e UnitTest em JavaTDD e UnitTest em Java
TDD e UnitTest em JavaJúlio de Lima
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
 
Apresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation AnywhereApresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation AnywhereEduardo Britto
 
Application Insights
Application Insights Application Insights
Application Insights CDS
 
Programando com swagger e go DevFestSP '16
Programando com swagger e go   DevFestSP '16Programando com swagger e go   DevFestSP '16
Programando com swagger e go DevFestSP '16Bruno Ferrari
 
Treinamento Appium - Introdução
Treinamento Appium - IntroduçãoTreinamento Appium - Introdução
Treinamento Appium - IntroduçãoAndré Salla
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptxAnaKlyssia1
 
Seleção de Plataformas de RPA
Seleção de Plataformas de RPASeleção de Plataformas de RPA
Seleção de Plataformas de RPAEduardo Britto
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontatdc-globalcode
 

Semelhante a Tudo que você sempre quis saber sobre testes de APIs REST, mas que nunca te contaram... (20)

Março 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API RestMarço 2016 - Como testar sua API Rest
Março 2016 - Como testar sua API Rest
 
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu SoftwareDevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
DevOps Summit Brasil: +10 Ferramentas para Melhorar a Qualidade do seu Software
 
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTPPalestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
Palestra GUTS - Viabilidade da Automacao Teste Software e Demo QTP
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de Aplicativos
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
 
Espresso 101: Introdução a UI Testing
Espresso 101: Introdução a UI TestingEspresso 101: Introdução a UI Testing
Espresso 101: Introdução a UI Testing
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
 
API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...API testing - Pq a vida não é só ID's, Css, Xpath...
API testing - Pq a vida não é só ID's, Css, Xpath...
 
TDD e UnitTest em Java
TDD e UnitTest em JavaTDD e UnitTest em Java
TDD e UnitTest em Java
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
 
Apresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation AnywhereApresentação Conceitual de RPA com Automation Anywhere
Apresentação Conceitual de RPA com Automation Anywhere
 
Application Insights
Application Insights Application Insights
Application Insights
 
Programando com swagger e go DevFestSP '16
Programando com swagger e go   DevFestSP '16Programando com swagger e go   DevFestSP '16
Programando com swagger e go DevFestSP '16
 
Treinamento Appium - Introdução
Treinamento Appium - IntroduçãoTreinamento Appium - Introdução
Treinamento Appium - Introdução
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
 
Seleção de Plataformas de RPA
Seleção de Plataformas de RPASeleção de Plataformas de RPA
Seleção de Plataformas de RPA
 
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a pontaTestando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
Testando sua aplicação asp.net mvc de forma automatizada de ponta a ponta
 

Mais de Frederico Augusto Do Carmo Moreira

Mais de Frederico Augusto Do Carmo Moreira (6)

PARE, entenda seu contexto e contribua de maneira efetiva como QA
PARE, entenda seu contexto e contribua de maneira efetiva como QAPARE, entenda seu contexto e contribua de maneira efetiva como QA
PARE, entenda seu contexto e contribua de maneira efetiva como QA
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 
Desafio dos testes em uma arquitetura de micro serviços
Desafio dos testes em uma arquitetura de micro serviçosDesafio dos testes em uma arquitetura de micro serviços
Desafio dos testes em uma arquitetura de micro serviços
 
Docker para testers - Um passeio fora da caixa
Docker para testers - Um passeio fora da caixaDocker para testers - Um passeio fora da caixa
Docker para testers - Um passeio fora da caixa
 
Agile Testing - Vamos quebrar esse paradigma?
Agile Testing - Vamos quebrar esse paradigma?Agile Testing - Vamos quebrar esse paradigma?
Agile Testing - Vamos quebrar esse paradigma?
 
Uai Test - Quebrando o Paradigma do Agile Testing
Uai Test - Quebrando o Paradigma do Agile TestingUai Test - Quebrando o Paradigma do Agile Testing
Uai Test - Quebrando o Paradigma do Agile Testing
 

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