SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Testando sua API com HTTPARTY e
Rodando em um CI
#ATC #Manaus
Quem sou
QA Analyst - Concrete
O que vamos ver?
● API
○ Por quê API?
○ Exemplos do uso de API
● REST
● Protocolo HTTP
○ Métodos HTTP
○ HTTP Status Code
● Por quê teste de API?
○ HTTParty
○ RSpec
○ Como Testar?
○ Como é na prática?
● Integração Contínua
○ Jenkins
○ Como é na prática?
API - Application Programming Interface
Interface de programação de aplicativos. Uma API é um conjunto de
comandos, funções, protocolos e objetos que os programadores podem
usar para criar software ou interagir com um sistema externo. Ele
fornece aos desenvolvedores comandos padrão para executar
operações comuns para que não tenham que escrever o código do
zero."
TechTerms, 2017
Por quê API?
● Construções de novas aplicações
● Desempenho da sua aplicação
● Desenvolvedores não precisam desenvolver tudo do zero
● Serviço pode ser usado em mais de uma aplicação dentro ou fora de
uma empresa
Login com Facebook
API's do Dropbox
Exemplos do uso de API
CEP dos Correios
REST - REpresentational State Transfer
Transferência de Dados Representacional é um estilo de arquitetura e
uma abordagem às comunicações que é freqüentemente usada no
desenvolvimento de serviços da Web. Normalmente é executado em
HTTP (Hypertext Transfer Protocol).
REST - REpresentational State Transfer
● Interações entre clientes e serviços são aprimoradas por ter um número
limitado de operações (verbos).
● Flexibilidade é fornecida ao atribuir recursos seus próprios
identificadores de recursos universais (URIs) únicos.
● Como cada verbo tem um significado específico (GET, POST, PUT e
DELETE), o REST evita a ambiguidade. Ou seja, dependendo de como o
recurso será consumido através do identificador, o seu comportamento
irá mudar.
REST - REpresentational State Transfer
As interações são compostas, principalmente, de três informações:
● Endpoint: endereços web que executam as ações e são acessados
diretamente pelos clientes.
● Verbo: ação desejada a ser realizada no recurso identificado.
● Body: Informações que são enviadas, como dados de um cadastro.
Protocolo HTTP
O protocolo HTTP define métodos (às vezes referidos como verbos) para
indicar a ação desejada a ser realizada no recurso identificado.
Quantos aos métodos, existem 4 que são os mais utilizados.
Métodos HTTP
GET
POST
PUT
DELETE
VERBOS NÃO-IDEMPOTENTES VERBOS IDEMPOTENTES
HTTP Status Code
Esse é outro item importante para a arquitetura de uma API REST, porque, da mesma
maneira que acontece como os verbos HTTP, elas formam um padrão facilmente
reconhecido por quem for consumir o webservice.
Os códigos de sucesso tem o padrão 20x, os de redirecionamento 30x, os de erro do
cliente 40x e os de erro de servidor 50x.
Os principais códigos utilizados para as respostas de um endpoint são:
Por quê teste de API?
“Ideal”
Unit
Service
UI
Manual
HTTParty
É um gem ruby que simplifica a manipulação de request e
response REST.
RSpec
O RSpec é um framework BDD (Behaviour-Driven Development
ou Desenvolvimento Guiado por Comportamento) escrito em
Ruby, que permite que você escreva testes em uma linguagem
mais natural.
Como Testar?
GET
POST
PUT
DELETE
Faça um request GET para um conteúdo específico e
verifique se o status code 200 foi retornado.
Depois verifique se o conteúdo esperado foi retornado
também.
Como Testar?
GET
POST
PUT
DELETE
Faça um request com POST e verifique se o status code
201 foi retornado
Depois, faça um request com GET para o conteúdo
gravado anteriormente e verifique se o mesmo foi salvo
corretamente.
Adicione testes POST com request incorretos, como falta
de conteúdo por exemplo, que irão falhar. Deve-se
retornar status code 400 ( Bad Request).
Como Testar?
GET
POST
PUT
DELETE
Faça um request PUT para atualizar um conteúdo e
verifique se o status code 204 foi retornado
Depois, faça um request com GET para um conteúdo
alterado e verifique se retorna o novo conteúdo.
Como Testar?
GET
POST
PUT
DELETE
Faça um DELETE para um conteúdo específico.
Depois faça um GET para o ID do conteúdo anterior,
deve-se retornar status code 404 (Not Found).
API de teste
POST: api/series -> Adicionar série
GET: api/series -> Retornar todas as séries
GET: api/series/serie_id -> Retornar uma série específica
PUT: api/series/serie_id -> Atualizar uma série específica
DELETE: api/series/serie_id -> Deletar uma série específica
E como é na
prática???
Integração Contínua
Integração Contínua é uma metodologia moderna de
desenvolvimento, em que os desenvolvedores envolvidos em um
projeto integram seus trabalhos continuamente.
Jenkins
Jenkins é um servidor de automação de código aberto escrito em Java. A
Jenkins ajuda a automatizar a parte não humana do processo de
desenvolvimento de software, com integração contínua e facilitando
aspectos técnicos de entrega contínua.
E como é na
prática???
Referências
● https://techterms.com/
● https://blog.mbeck.com.br/
● Tech Target - Search Microservices
● https://fredmoreira.com/
● https://www.concrete.com.br/2015/03/06/integracao-continua-para-djang
o-no-jenkins/
● Mike, Cohn. Succeeding with agile: Software Development Using Scrum.
● Crispin, Lisa. Gregory, Janet. Agile Testing: A practical guide for testers
and agile teams.
@nathsilv
www.facebook.com/nathanael.araujos
www.linkedin.com/in/nathanaelaraujo/
OBRIGAAADOOO!!!

Weitere ähnliche Inhalte

Ähnlich wie [ATC] Testando sua API com HTTPARTY e Rodando em um CI

Ähnlich wie [ATC] Testando sua API com HTTPARTY e Rodando em um CI (20)

Meet up teste api htt-party cucumber
Meet up   teste api htt-party cucumberMeet up   teste api htt-party cucumber
Meet up teste api htt-party cucumber
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
Web Services Rest
Web Services RestWeb Services Rest
Web Services Rest
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Testando sua API com HTTParty e RSpec
Testando sua API com HTTParty e RSpecTestando sua API com HTTParty e RSpec
Testando sua API com HTTParty e RSpec
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
WebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuthWebAPI-Route-Translate-BasicAuth
WebAPI-Route-Translate-BasicAuth
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 
365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC365on Lab - Asp.Net MVC
365on Lab - Asp.Net MVC
 
Rest fuuuu front-end
Rest fuuuu front-endRest fuuuu front-end
Rest fuuuu front-end
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
API's Automidia: Provendo Meios Estruturados de Integração
API's Automidia: Provendo Meios Estruturados de IntegraçãoAPI's Automidia: Provendo Meios Estruturados de Integração
API's Automidia: Provendo Meios Estruturados de Integração
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
Um pouco sobre APIs
Um pouco sobre APIsUm pouco sobre APIs
Um pouco sobre APIs
 
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
REST-fuuuu - Boas práticas RESTful [PHPeste 2017]
 
Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 
Diapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdfDiapositivos práticos - Integração de Sistemas.pdf
Diapositivos práticos - Integração de Sistemas.pdf
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net Core
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 

[ATC] Testando sua API com HTTPARTY e Rodando em um CI

  • 1. Testando sua API com HTTPARTY e Rodando em um CI #ATC #Manaus
  • 2. Quem sou QA Analyst - Concrete
  • 3. O que vamos ver? ● API ○ Por quê API? ○ Exemplos do uso de API ● REST ● Protocolo HTTP ○ Métodos HTTP ○ HTTP Status Code ● Por quê teste de API? ○ HTTParty ○ RSpec ○ Como Testar? ○ Como é na prática? ● Integração Contínua ○ Jenkins ○ Como é na prática?
  • 4. API - Application Programming Interface Interface de programação de aplicativos. Uma API é um conjunto de comandos, funções, protocolos e objetos que os programadores podem usar para criar software ou interagir com um sistema externo. Ele fornece aos desenvolvedores comandos padrão para executar operações comuns para que não tenham que escrever o código do zero." TechTerms, 2017
  • 5. Por quê API? ● Construções de novas aplicações ● Desempenho da sua aplicação ● Desenvolvedores não precisam desenvolver tudo do zero ● Serviço pode ser usado em mais de uma aplicação dentro ou fora de uma empresa
  • 6. Login com Facebook API's do Dropbox Exemplos do uso de API CEP dos Correios
  • 7. REST - REpresentational State Transfer Transferência de Dados Representacional é um estilo de arquitetura e uma abordagem às comunicações que é freqüentemente usada no desenvolvimento de serviços da Web. Normalmente é executado em HTTP (Hypertext Transfer Protocol).
  • 8. REST - REpresentational State Transfer ● Interações entre clientes e serviços são aprimoradas por ter um número limitado de operações (verbos). ● Flexibilidade é fornecida ao atribuir recursos seus próprios identificadores de recursos universais (URIs) únicos. ● Como cada verbo tem um significado específico (GET, POST, PUT e DELETE), o REST evita a ambiguidade. Ou seja, dependendo de como o recurso será consumido através do identificador, o seu comportamento irá mudar.
  • 9. REST - REpresentational State Transfer As interações são compostas, principalmente, de três informações: ● Endpoint: endereços web que executam as ações e são acessados diretamente pelos clientes. ● Verbo: ação desejada a ser realizada no recurso identificado. ● Body: Informações que são enviadas, como dados de um cadastro.
  • 10. Protocolo HTTP O protocolo HTTP define métodos (às vezes referidos como verbos) para indicar a ação desejada a ser realizada no recurso identificado. Quantos aos métodos, existem 4 que são os mais utilizados.
  • 13. HTTP Status Code Esse é outro item importante para a arquitetura de uma API REST, porque, da mesma maneira que acontece como os verbos HTTP, elas formam um padrão facilmente reconhecido por quem for consumir o webservice. Os códigos de sucesso tem o padrão 20x, os de redirecionamento 30x, os de erro do cliente 40x e os de erro de servidor 50x. Os principais códigos utilizados para as respostas de um endpoint são:
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Por quê teste de API? “Ideal” Unit Service UI Manual
  • 20. HTTParty É um gem ruby que simplifica a manipulação de request e response REST.
  • 21. RSpec O RSpec é um framework BDD (Behaviour-Driven Development ou Desenvolvimento Guiado por Comportamento) escrito em Ruby, que permite que você escreva testes em uma linguagem mais natural.
  • 22. Como Testar? GET POST PUT DELETE Faça um request GET para um conteúdo específico e verifique se o status code 200 foi retornado. Depois verifique se o conteúdo esperado foi retornado também.
  • 23. Como Testar? GET POST PUT DELETE Faça um request com POST e verifique se o status code 201 foi retornado Depois, faça um request com GET para o conteúdo gravado anteriormente e verifique se o mesmo foi salvo corretamente. Adicione testes POST com request incorretos, como falta de conteúdo por exemplo, que irão falhar. Deve-se retornar status code 400 ( Bad Request).
  • 24. Como Testar? GET POST PUT DELETE Faça um request PUT para atualizar um conteúdo e verifique se o status code 204 foi retornado Depois, faça um request com GET para um conteúdo alterado e verifique se retorna o novo conteúdo.
  • 25. Como Testar? GET POST PUT DELETE Faça um DELETE para um conteúdo específico. Depois faça um GET para o ID do conteúdo anterior, deve-se retornar status code 404 (Not Found).
  • 26. API de teste POST: api/series -> Adicionar série GET: api/series -> Retornar todas as séries GET: api/series/serie_id -> Retornar uma série específica PUT: api/series/serie_id -> Atualizar uma série específica DELETE: api/series/serie_id -> Deletar uma série específica
  • 27. E como é na prática???
  • 28. Integração Contínua Integração Contínua é uma metodologia moderna de desenvolvimento, em que os desenvolvedores envolvidos em um projeto integram seus trabalhos continuamente.
  • 29. Jenkins Jenkins é um servidor de automação de código aberto escrito em Java. A Jenkins ajuda a automatizar a parte não humana do processo de desenvolvimento de software, com integração contínua e facilitando aspectos técnicos de entrega contínua.
  • 30. E como é na prática???
  • 31. Referências ● https://techterms.com/ ● https://blog.mbeck.com.br/ ● Tech Target - Search Microservices ● https://fredmoreira.com/ ● https://www.concrete.com.br/2015/03/06/integracao-continua-para-djang o-no-jenkins/ ● Mike, Cohn. Succeeding with agile: Software Development Using Scrum. ● Crispin, Lisa. Gregory, Janet. Agile Testing: A practical guide for testers and agile teams.