SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Automação de
Testes de API
com Postman
Exploring Path
Apresentação01
Conceitos iniciais
Testes, Automação de Teste, API, RESTful…
Utilizando o Postman
Reconhecimento, Rodando a primeira Requisição
Criando e Rodando nossos Testes
Aba “Test”, Bibliotecas e Assertion Functions
02
03
04
05
06
Perguntas ???
Temas futuros
Acrescentando nossos testes no Build: Github + Travis CI + Postman + Heroku
Lucas Amaral
Quality Assurance
Portfólio GC/Adtalem
Brasil
Desde 2008 na estrada: Dev (-),
Requisitos (++), QA (++)
Testes e Automação
Put things together
Conceitos Iniciais
Definindo o essencial
A atividade de teste é o processo de executar um
programa com a intenção de descobrir ERROS.01
Atividades voltadas para planejamento,
preparação e avaliação de produtos de software
e produtos de trabalho relacionados a fim de
determinar se elas satisfazem os requisitos
especificados e demonstrar que estão aptas para
sua finalidade
02
Utilização de software para desempenhar
ou dar suporte às atividades de teste
Automação
03
Testes e
Automação
QA >>> Testes
Antes de gerar flames sobre o conceito de testes exposto, lembre-se que QA >>> Testes
A propósito, leia ESTE ARTIGO
Flame alert!
API, REST e RESTful
Put things together
APIApplication Programming
Interface
API é um conjunto de rotinas e padrões de programação para acesso a um
aplicativo de software ou plataforma baseado na Web
APIs entregam funcionalidades a websites;
APIs estão por trás das aplicações/softwares online (SaaS);
APIs suportam as aplicações móveis (Apps Mobile);
“A API é o livro de regras, que estabelece os padrões de comunicação que
poderão ser usados naquela interação. Se eu quero programar uma aplicação
que use os dados do Twitter, eu devo usar o livro de regras conforme definido
pelo Twitter, pela API do Twitter.” (Sensedia)
Resumindo
APIApplication Programming
Interface
• REST é um Modelo arquitetural Funciona em cima do HTTP através de
requisições simples. Suporta várias representações: XML, JSON, YML.
RESTful são Aplicações que seguem o padrão REST
• SOAP é um Protocolo que utiliza HTTP para fazer chamadas no padrão RPC:
Remote Procedure Call. Suporta somente XML
REST (RESTful) x SOAP
Veja mais sobre os níveis de maturidade de Richardson
Requests e Responses
A ideia por trás: Client/Server
Server retorna Response para
Client
Realiza validações, autenticação,
…
Server processa a Request
Envia uma requisição ao Server
informando a ação desejada e
parâmetros necessários/desejados.
Client faz uma Request
HTTP
Request
Composição básica de
uma Request
GET | POST | PUT | PATCH | DELETE
HEAD | OPTIONS | TRACE | CONNECT
• Verbos ou Métodos HTTP
http://jsonplaceholder.typicode.com/users
• URL (Resource e Parâmetros)
• HEADER
• BODY
HTTP
Response
Composição básica de
uma Response
• HEADER
• BODY
1XX: Informacional
2XX: Sucesso na Requisição
3XX: Redirecionamento
4XX: Erro no Cliente
• 401: Unauthorized
• 403: Forbidden
• 404: Not Found
5XX: Erro no Servidor
Mais em: httpstatuses.com
• HTTP Status Codes
Requests e Responses
Características de requests e responses
onlinecurl.com
Acessar
http://jsonplaceholder.typicode.com
/users
Digite a URL no campo Verifique o
Resultado
Tanto Request como Response são compostas basicamente pelas seções HEADER e
BODY. Cada uma possui uma série de atributos definidos no momento do desenvolvimento
e que dependem também do resource que está sendo requisitado.
O jsonplaceholder.typicode.com é uma casca de API RESTful para testes
RESPONSE HEADER
RESPONSE BODY
Utilizando o Postman
Put things together
POSTMAN
Ambiente completo para
Desenvolvimento de APIs
https://www.getpostman.com
Interface do Postman
Sidebar
Collections
Folders
Conjunto de Requests
Requests
Mais uma forma de agrupar/organizer Requests
Requests a serem executadas
Detalhes da Request
Method, URL, Header, Environment
Detalhes da Response
Body, Header
Vamos aos
Testes
Quando
testamos a
API…
… estamos na parte
intermediária da Pirâmide
de Testes
Leia mais
Testes no Postman
Os testes no Postman são escritos em Javascript
Fast, flexible, and lean implementa
tion of core jQuery designed specif
ically for the server.
Cheerio
A modern JavaScript utility library
delivering modularity, performance
& extras
Lodash
JavaScript library of crypto standards
Crypto.js
Criando Testes
Aba “Test”, Bibliotecas e Assertion Functions
You can simply impress your
audience and add a unique zing
and appeal to your Presentations.
Your Text Here
A aba “Tests”
Nesta aba são escritos todos os testes relacionados à Request em
questão. Cada teste é especificado com a função:
pm.test(testName:String, specFunction:Function):Function
Principais
Objetos
Objetos a manipuláveis
nos testes
Link API
pm.response
.code:Number
.reason():Function → String
.headers:HeaderList
.responseTime:Number
.text():Function → String
.json():Function → Object
Objeto Response
request (read-only)
.url:Url
.headers:HeaderList
Objeto Request
Assertions
Assertions usando em cima do Objeto
Response usando o .to.have
pm.response.to.have (to.not.have)
.status(code:Number)
.status(reason:String)
.header(key:String)
.header(key:String, optionalValue:String)
.body()
.body(optionalValue:String)
.body(optionalValue:RegExp)
.jsonBody()
.jsonBody(optionalExpectEqual:Object)
.jsonBody(optionalExpectPath:String)
.jsonBody(optionalExpectPath:String,
optionalValue:*)
Funções de Assertion – to.have
Assertions
Assertion acerca do Código do
Response usando palavras chave
pm.response.to.be (to.not.be)
.info [1XX status]
.success [2XX status]
.ok [200 status]
.redirection [3XX status]
.clientError [4XX status]
.serverError [5XX status]
.error [4XX or 5XX status]
.accepted [202 status]
.badRequest [400 status]
.unauthorized [401 status]
.forbidden [403 status]
.notFound [404 status]
.rateLimited [429 status]
Funções de Assertion – to.be
Assertions
Função de Assertion genérica
utilizando a biblioteca BDD ChaiJS
pm.expect(assertion:*):Function → Assertion
pm.expect(valor).[cadeia].[função].(valor)
Onde essa cadeia é montada e a função é disponível de acordo com o padrã
o da biblioteca ChaiJS
pm.expect(pm.response.json().length).to.equal(9)
pm.expect(pm.response.code).to.not.be.oneOf([300, 400,
500, 100])
Funções de Assertion - pm.expect
Rodando Testes
Send e Runner
Runner
Executa a chamada de toda uma
Collections rodando os testes e
gerando o Report de testes
Obs: Os testes são executados a cada “Send” de uma request e são exibidos na aba
“Tests Results”
Questions?
Papo futuro
Material
Alguns links relevantes para essa
palestra
• Post da Sensedia sobre Testes de API, Postman e Newman
• https://sensedia.com/blog/apis/realizacao-de-testes-em-api-rest/
• https://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funcio
na/
• Instalando Node no Windows
• http://nodesource.com/blog/installing-nodejs-tutorial-windows/
• Importante para rodar o Newman
• Documentação Newman
• https://www.npmjs.com/package/newman
• Marvel API
• https://developer.marvel.com/docs
• Mockando uma API
• https://mockaroo.com/
• API do Postman
• https://www.getpostman.com/docs/v6/
• https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_a
pi_reference
• Outros resources:
• https://thecuriousdev.org/postman-test-api
• https://www.udemy.com/restful-apis/learn/v4/overview
• http://jsonplaceholder.typicode.com
• http://downloads.sensedia.com/webinar-design-de-apis-restful/
• https://onebitcode.com/api-completa-rails/
• + os links distribuídos pela apresentação
Vlw, flws
/doamaral in/lopesdoamaral

Mais conteúdo relacionado

Mais procurados

Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
TestNG Annotations in Selenium | Edureka
TestNG Annotations in Selenium | EdurekaTestNG Annotations in Selenium | Edureka
TestNG Annotations in Selenium | EdurekaEdureka!
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API TestingSauce Labs
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsQASymphony
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileElias Nogueira
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Softwaremarthahuback
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Elias Nogueira
 
Setting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation FrameworkSetting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation Frameworkvaluebound
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With AppiumKnoldus Inc.
 
Mockito a simple, intuitive mocking framework
Mockito   a simple, intuitive mocking frameworkMockito   a simple, intuitive mocking framework
Mockito a simple, intuitive mocking frameworkPhat VU
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioHYS Enterprise
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosphelypploch
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first stepsRenato Primavera
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 

Mais procurados (20)

Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
TestNG Annotations in Selenium | Edureka
TestNG Annotations in Selenium | EdurekaTestNG Annotations in Selenium | Edureka
TestNG Annotations in Selenium | Edureka
 
Testes Unitários
Testes UnitáriosTestes Unitários
Testes Unitários
 
An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
 
RESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and JenkinsRESTful API Testing using Postman, Newman, and Jenkins
RESTful API Testing using Postman, Newman, and Jenkins
 
Automação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e MobileAutomação de Teste para REST, Web e Mobile
Automação de Teste para REST, Web e Mobile
 
Tecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De SoftwareTecnicas Para Planejamento E Execucao De Testes De Software
Tecnicas Para Planejamento E Execucao De Testes De Software
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
Confie no seu pipeline: Teste automaticamente um aplicativo Java de ponta a p...
 
Setting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation FrameworkSetting up Page Object Model in Automation Framework
Setting up Page Object Model in Automation Framework
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Mockito a simple, intuitive mocking framework
Mockito   a simple, intuitive mocking frameworkMockito   a simple, intuitive mocking framework
Mockito a simple, intuitive mocking framework
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SC
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenario
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriver
 
Spring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutosSpring Boot - Uma app do 0 a Web em 30 minutos
Spring Boot - Uma app do 0 a Web em 30 minutos
 
JUnit & Mockito, first steps
JUnit & Mockito, first stepsJUnit & Mockito, first steps
JUnit & Mockito, first steps
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 

Semelhante a Automação de testes de API utilizando Postman

[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CI[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CINathanael Silva
 
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çãoRequestia Software
 
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 cucumberRafael Berçam
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredQualister
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIElias Nogueira
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiiMasters
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Pythonantonio sérgio nogueira
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixAndré Déo
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIIvan Paulovich
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOWesley Lemos
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com CodeceptionQualister
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com SpringMateus Malaquias
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyantonio sérgio nogueira
 
HTTP, Requisição e Resposta
HTTP, Requisição e RespostaHTTP, Requisição e Resposta
HTTP, Requisição e RespostaThiago Rondon
 

Semelhante a Automação de testes de API utilizando Postman (20)

[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CI[ATC] Testando sua API com HTTPARTY e Rodando em um CI
[ATC] Testando sua API com HTTPARTY e Rodando em um CI
 
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
 
Palestra VRaptor 3
Palestra VRaptor 3Palestra VRaptor 3
Palestra VRaptor 3
 
Explorando a API Rest Jira Cloud
Explorando a API Rest Jira CloudExplorando a API Rest Jira Cloud
Explorando a API Rest Jira Cloud
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
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
 
Palestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-AssuredPalestra sobre Automação de Testes com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Web Services Rest
Web Services RestWeb Services Rest
Web Services Rest
 
De a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de APIDe a máxima cobertura nos seus testes de API
De a máxima cobertura nos seus testes de API
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan ScafiInterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
InterCon 2017 - Design Coerente: decisões de tecnologia para APIs - Ravan Scafi
 
Servidor de Aplicação Web: CherryPy - Python
Servidor de Aplicação  Web: CherryPy - PythonServidor de Aplicação  Web: CherryPy - Python
Servidor de Aplicação Web: CherryPy - Python
 
Monitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com ZabbixMonitoramento de Aplicações Web Modernas com Zabbix
Monitoramento de Aplicações Web Modernas com Zabbix
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
 
Construindo APIs RESTful com Spring
Construindo APIs RESTful com SpringConstruindo APIs RESTful com Spring
Construindo APIs RESTful com Spring
 
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPyDesenvolvendo uma Aplicação WEB usando o Python e o CherryPy
Desenvolvendo uma Aplicação WEB usando o Python e o CherryPy
 
HTTP, Requisição e Resposta
HTTP, Requisição e RespostaHTTP, Requisição e Resposta
HTTP, Requisição e Resposta
 

Mais de Lucas Amaral

Técnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaTécnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaLucas Amaral
 
Qualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e CulturaQualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e CulturaLucas Amaral
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareLucas Amaral
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - FundamentosLucas Amaral
 
Processos de Software - 101
Processos  de Software - 101Processos  de Software - 101
Processos de Software - 101Lucas Amaral
 
Gerenciamento de Projetos - 101
Gerenciamento de Projetos - 101Gerenciamento de Projetos - 101
Gerenciamento de Projetos - 101Lucas Amaral
 
Rastreamento e Telemetria Veicular
Rastreamento e Telemetria VeicularRastreamento e Telemetria Veicular
Rastreamento e Telemetria VeicularLucas Amaral
 
Certics – Gestão de Negócios
Certics – Gestão de NegóciosCertics – Gestão de Negócios
Certics – Gestão de NegóciosLucas Amaral
 

Mais de Lucas Amaral (8)

Técnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-PretaTécnicas de Testes Funcionais Caixa-Preta
Técnicas de Testes Funcionais Caixa-Preta
 
Qualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e CulturaQualidade de Software: Atividades e Cultura
Qualidade de Software: Atividades e Cultura
 
Introdução à Gerência de configuração de Software
Introdução à Gerência de configuração de SoftwareIntrodução à Gerência de configuração de Software
Introdução à Gerência de configuração de Software
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - Fundamentos
 
Processos de Software - 101
Processos  de Software - 101Processos  de Software - 101
Processos de Software - 101
 
Gerenciamento de Projetos - 101
Gerenciamento de Projetos - 101Gerenciamento de Projetos - 101
Gerenciamento de Projetos - 101
 
Rastreamento e Telemetria Veicular
Rastreamento e Telemetria VeicularRastreamento e Telemetria Veicular
Rastreamento e Telemetria Veicular
 
Certics – Gestão de Negócios
Certics – Gestão de NegóciosCertics – Gestão de Negócios
Certics – Gestão de Negócios
 

Automação de testes de API utilizando Postman

  • 1. Automação de Testes de API com Postman
  • 2. Exploring Path Apresentação01 Conceitos iniciais Testes, Automação de Teste, API, RESTful… Utilizando o Postman Reconhecimento, Rodando a primeira Requisição Criando e Rodando nossos Testes Aba “Test”, Bibliotecas e Assertion Functions 02 03 04 05 06 Perguntas ??? Temas futuros Acrescentando nossos testes no Build: Github + Travis CI + Postman + Heroku
  • 3. Lucas Amaral Quality Assurance Portfólio GC/Adtalem Brasil Desde 2008 na estrada: Dev (-), Requisitos (++), QA (++)
  • 4. Testes e Automação Put things together
  • 5. Conceitos Iniciais Definindo o essencial A atividade de teste é o processo de executar um programa com a intenção de descobrir ERROS.01 Atividades voltadas para planejamento, preparação e avaliação de produtos de software e produtos de trabalho relacionados a fim de determinar se elas satisfazem os requisitos especificados e demonstrar que estão aptas para sua finalidade 02 Utilização de software para desempenhar ou dar suporte às atividades de teste Automação 03 Testes e Automação
  • 6. QA >>> Testes Antes de gerar flames sobre o conceito de testes exposto, lembre-se que QA >>> Testes A propósito, leia ESTE ARTIGO Flame alert!
  • 7. API, REST e RESTful Put things together
  • 8. APIApplication Programming Interface API é um conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web APIs entregam funcionalidades a websites; APIs estão por trás das aplicações/softwares online (SaaS); APIs suportam as aplicações móveis (Apps Mobile); “A API é o livro de regras, que estabelece os padrões de comunicação que poderão ser usados naquela interação. Se eu quero programar uma aplicação que use os dados do Twitter, eu devo usar o livro de regras conforme definido pelo Twitter, pela API do Twitter.” (Sensedia) Resumindo
  • 9. APIApplication Programming Interface • REST é um Modelo arquitetural Funciona em cima do HTTP através de requisições simples. Suporta várias representações: XML, JSON, YML. RESTful são Aplicações que seguem o padrão REST • SOAP é um Protocolo que utiliza HTTP para fazer chamadas no padrão RPC: Remote Procedure Call. Suporta somente XML REST (RESTful) x SOAP Veja mais sobre os níveis de maturidade de Richardson
  • 10. Requests e Responses A ideia por trás: Client/Server Server retorna Response para Client Realiza validações, autenticação, … Server processa a Request Envia uma requisição ao Server informando a ação desejada e parâmetros necessários/desejados. Client faz uma Request
  • 11. HTTP Request Composição básica de uma Request GET | POST | PUT | PATCH | DELETE HEAD | OPTIONS | TRACE | CONNECT • Verbos ou Métodos HTTP http://jsonplaceholder.typicode.com/users • URL (Resource e Parâmetros) • HEADER • BODY
  • 12. HTTP Response Composição básica de uma Response • HEADER • BODY 1XX: Informacional 2XX: Sucesso na Requisição 3XX: Redirecionamento 4XX: Erro no Cliente • 401: Unauthorized • 403: Forbidden • 404: Not Found 5XX: Erro no Servidor Mais em: httpstatuses.com • HTTP Status Codes
  • 13. Requests e Responses Características de requests e responses onlinecurl.com Acessar http://jsonplaceholder.typicode.com /users Digite a URL no campo Verifique o Resultado Tanto Request como Response são compostas basicamente pelas seções HEADER e BODY. Cada uma possui uma série de atributos definidos no momento do desenvolvimento e que dependem também do resource que está sendo requisitado. O jsonplaceholder.typicode.com é uma casca de API RESTful para testes
  • 16. Utilizando o Postman Put things together
  • 17. POSTMAN Ambiente completo para Desenvolvimento de APIs https://www.getpostman.com
  • 19. Sidebar Collections Folders Conjunto de Requests Requests Mais uma forma de agrupar/organizer Requests Requests a serem executadas
  • 20. Detalhes da Request Method, URL, Header, Environment
  • 23. Quando testamos a API… … estamos na parte intermediária da Pirâmide de Testes Leia mais
  • 24. Testes no Postman Os testes no Postman são escritos em Javascript Fast, flexible, and lean implementa tion of core jQuery designed specif ically for the server. Cheerio A modern JavaScript utility library delivering modularity, performance & extras Lodash JavaScript library of crypto standards Crypto.js
  • 25. Criando Testes Aba “Test”, Bibliotecas e Assertion Functions
  • 26. You can simply impress your audience and add a unique zing and appeal to your Presentations. Your Text Here A aba “Tests” Nesta aba são escritos todos os testes relacionados à Request em questão. Cada teste é especificado com a função: pm.test(testName:String, specFunction:Function):Function
  • 27. Principais Objetos Objetos a manipuláveis nos testes Link API pm.response .code:Number .reason():Function → String .headers:HeaderList .responseTime:Number .text():Function → String .json():Function → Object Objeto Response request (read-only) .url:Url .headers:HeaderList Objeto Request
  • 28. Assertions Assertions usando em cima do Objeto Response usando o .to.have pm.response.to.have (to.not.have) .status(code:Number) .status(reason:String) .header(key:String) .header(key:String, optionalValue:String) .body() .body(optionalValue:String) .body(optionalValue:RegExp) .jsonBody() .jsonBody(optionalExpectEqual:Object) .jsonBody(optionalExpectPath:String) .jsonBody(optionalExpectPath:String, optionalValue:*) Funções de Assertion – to.have
  • 29. Assertions Assertion acerca do Código do Response usando palavras chave pm.response.to.be (to.not.be) .info [1XX status] .success [2XX status] .ok [200 status] .redirection [3XX status] .clientError [4XX status] .serverError [5XX status] .error [4XX or 5XX status] .accepted [202 status] .badRequest [400 status] .unauthorized [401 status] .forbidden [403 status] .notFound [404 status] .rateLimited [429 status] Funções de Assertion – to.be
  • 30. Assertions Função de Assertion genérica utilizando a biblioteca BDD ChaiJS pm.expect(assertion:*):Function → Assertion pm.expect(valor).[cadeia].[função].(valor) Onde essa cadeia é montada e a função é disponível de acordo com o padrã o da biblioteca ChaiJS pm.expect(pm.response.json().length).to.equal(9) pm.expect(pm.response.code).to.not.be.oneOf([300, 400, 500, 100]) Funções de Assertion - pm.expect
  • 32. Runner Executa a chamada de toda uma Collections rodando os testes e gerando o Report de testes Obs: Os testes são executados a cada “Send” de uma request e são exibidos na aba “Tests Results”
  • 35. Material Alguns links relevantes para essa palestra • Post da Sensedia sobre Testes de API, Postman e Newman • https://sensedia.com/blog/apis/realizacao-de-testes-em-api-rest/ • https://sensedia.com/blog/apis/o-que-sao-apis-parte-2-como-uma-api-funcio na/ • Instalando Node no Windows • http://nodesource.com/blog/installing-nodejs-tutorial-windows/ • Importante para rodar o Newman • Documentação Newman • https://www.npmjs.com/package/newman • Marvel API • https://developer.marvel.com/docs • Mockando uma API • https://mockaroo.com/ • API do Postman • https://www.getpostman.com/docs/v6/ • https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_a pi_reference • Outros resources: • https://thecuriousdev.org/postman-test-api • https://www.udemy.com/restful-apis/learn/v4/overview • http://jsonplaceholder.typicode.com • http://downloads.sensedia.com/webinar-design-de-apis-restful/ • https://onebitcode.com/api-completa-rails/ • + os links distribuídos pela apresentação