SlideShare uma empresa Scribd logo
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister
Testes em APIs
REST com
Rest-Assured
Slides disponíveis em:
http://bit.ly/1Hg4pUD
Palestrante
Júlio de Lima
Especialista em teste de software com ênfase em
automação de testes de software, possui formação em
Tecnologia da Informação e certificações internacionais
(CTFL e CTAL-TM pelo ISTQB) e nacional (CBTS pela ALATS)
julio.lima@qualister.com.br
twitter.com/juliodelimas
br.linkedin.com/in/juliodelimas
Sobre a Qualister
• Fundada em 2007
• Mais de 1.000 clientes em todo o Brasil
• Mais de 50 cursos sobre teste de software
• Mais de 3.000 alunos formados
• Áreas de atuação:
• Consultoria na área de teste qualidade de
software
• Cursos
• Revenda de ferramentas
O que é REST?
O que é REST?
• É um estilo de arquitetura utilizado para
criação de APIs;
• Trabalha, geralmente, sobre o protocolo
HTTP/HTTPS usando verbos POST, GET, PUT,
DELETE, OPTIONS, PATCH e HEAD;
• Utiliza respostas no formato JSON ou XML.

[@fonte=http://rest.elkstein.org]
Como testar manualmente?
Como testar manualmente?
Utilizando cURL, um recurso disponível em
sistemas operacionais Unix através de linha de
comando, podemos fazer uma requisição
através do comando:
curl -i -X GET “http://localhost:
8888/qualister-api/?nome=Julio"
--user qualister:qualister
[@fonte=http://curl.haxx.se/docs/httpscripting.html]
Como testar manualmente?
Então receberemos a seguinte resposta:
HTTP/1.1 200 OK
Date: Sun, 10 May 2015 02:03:04 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8
PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/
v5.20.0
X-Powered-By: PHP/5.6.2
Content-Length: 280
Content-Type: application/json
{
"status":"success",
“mensagem”:”Julio, seja bem-vindo a API da Qualister",
“dados”:
{
"atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"],
"consultores":
{
"quantidade":5,
"nomes":["Cristiano Caetano","Elias Nogueira","Julio de
Lima","Marcio Cunha","Roberto Ungarelli"]
}
}
}
Validando respostas
Validando resposta: Esquema
HTTP/1.1 200 OK
Date: Sun, 10 May 2015 02:03:04 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8
PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/
v5.20.0
X-Powered-By: PHP/5.6.2
Content-Length: 280
Content-Type: application/json
{
"status":"success",
"mensagem”:”Seja bem-vindo a API da Qualister",
“dados”:
{
"atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"],
"consultores":
{
"quantidade":5,
"nomes":["Cristiano Caetano","Elias Nogueira","Julio de
Lima","Marcio Cunha","Roberto Ungarelli"]
}
}
}
A resposta terá a propriedade “status" e
o valor será do tipo string
Essa propriedade
deverá ser um Array!
A resposta terá a propriedade
“dados.atuacao” e não deverá ter itens
duplicados
Validando resposta: Corpo
HTTP/1.1 200 OK
Date: Sun, 10 May 2015 02:03:04 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8
PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/
v5.20.0
X-Powered-By: PHP/5.6.2
Content-Length: 280
Content-Type: application/json
{
"status":"success",
"mensagem”:”Seja bem-vindo a API da Qualister",
“dados”:
{
"atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"],
"consultores":
{
"quantidade":5,
"nomes":["Cristiano Caetano","Elias Nogueira","Julio de
Lima","Marcio Cunha","Roberto Ungarelli"]
}
}
}
“status" deverá ser igual a
"success"
“dados.consultores.quantidade”
deverá ser igual a 5
“dados.atuacao” deverá ter um
item "Consultoria"
Validando resposta: Cabeçalho
HTTP/1.1 200 OK
Date: Sun, 10 May 2015 02:03:04 GMT
Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8
PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/
v5.20.0
X-Powered-By: PHP/5.6.2
Content-Length: 280
Content-Type: application/json
{
"status":"success",
"mensagem”:”Seja bem-vindo a API da Qualister",
“dados”:
{
"atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"],
"consultores":
{
"quantidade":5,
"nomes":["Cristiano Caetano","Elias Nogueira","Julio de
Lima","Marcio Cunha","Roberto Ungarelli"]
}
}
}
“Status Code" deverá ser igual a 200
Palestra Rest-Assured com Maven e JUnit
Rest-Assured
• É uma biblioteca escrita em Java criada para simplificar
testes de serviços baseados em REST;
• Ele é compatível com os principais verbos, podendo
simular requisições: POST, GET, PUT, DELETE, OPTIONS,
PATCH e HEAD;
• Possui mecanismos para validação do esquema, corpo e
cabeçalho das requisições;
• Utiliza a sintaxe de especificação por exemplos, o Given-
When-Then, muito conhecida em testes dirigidos por
comportamento (BDD).
[@fonte=https://code.google.com/p/rest-assured/wiki/Usage]
Rest-Assured
Exemplo de teste:
given()
.param(“nome", "Julio")
.when()
.get(“/")
.then()
.statusCode(200).
.body(“mensagem", containsString("Julio"));
Enviar o valor “Julio" pelo parâmetro
"nome"
Requisitar o path “/“ usando verbo GET
Validar que o Status Code
é 200 (Sucesso)
Validar que a propriedade
“mensagem" contem a string
"Julio"
Componentes auxiliares
Componentes auxiliares
• Utilizaremos o Maven para tornar mais simples a
estruturação do projeto, dependências e execução dos
testes.



[@fonte=https://maven.apache.org]
• O JUnit é um framework open-source utilizado para
facilitar a criação dos testes automatizados. 



[@fonte=http://junit.org]
Hands-on!
Vídeo disponível em:
http://bit.ly/1QMZ3od
Workshop
Rest-Assured
Inscreva-se em
http://bit.ly/1EIMuSr
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister

Mais conteúdo relacionado

PDF
DEV-OPS para teste de software
PDF
Caipira agil automacao front end selenium
PDF
Automacao de testes com keyword driven
PPTX
Agile testing
PDF
Testes performance nuvem com j meter e blazemeter
PDF
Teste software metodos metodologia ageis agil agile testing
PDF
[PHPConferenceBR] Automação de testes com Codeception
PDF
Perspectivas em teste de software
DEV-OPS para teste de software
Caipira agil automacao front end selenium
Automacao de testes com keyword driven
Agile testing
Testes performance nuvem com j meter e blazemeter
Teste software metodos metodologia ageis agil agile testing
[PHPConferenceBR] Automação de testes com Codeception
Perspectivas em teste de software

Mais procurados (20)

PDF
Juntando para multiplicar
PDF
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
PDF
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
PDF
Tendências em teste de software
PDF
Testes em Web Services - conceitos e ferramentas
PDF
Palestra sobre automação de testes em APIs Rest com Rest-Assured
PDF
Palestra sobre Automação de Testes com Rest-Assured
PDF
Testes para dispositivos móveis
PDF
Palestra DevOps para Teste de Software
PDF
Mini curso de testes ágeis
PPT
Como testar aplicativos ios e android
PDF
Teste performance carga stress jmeter
PDF
Maturidade em automação de testes
PDF
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
PDF
Medindo a performance de aplicações web com JMeter
PDF
Como integrar um Agile Tester no seu time
PPT
Automação de testes: Teoria e Prática (SENAI) - Qualister
PDF
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
PDF
TDC-2014 Automação de testes para não programadores com selenium e keyword dr...
PDF
Tecnicas de projeto design especificacao modelagem de casos de testes
Juntando para multiplicar
Teste de performance na nuvem com JMeter e BlazeMeter TDC2014
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
Tendências em teste de software
Testes em Web Services - conceitos e ferramentas
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre Automação de Testes com Rest-Assured
Testes para dispositivos móveis
Palestra DevOps para Teste de Software
Mini curso de testes ágeis
Como testar aplicativos ios e android
Teste performance carga stress jmeter
Maturidade em automação de testes
Palestra Automação de Testes em Dispositivos Móveis na Nuvem (BRATESTE2013)
Medindo a performance de aplicações web com JMeter
Como integrar um Agile Tester no seu time
Automação de testes: Teoria e Prática (SENAI) - Qualister
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
TDC-2014 Automação de testes para não programadores com selenium e keyword dr...
Tecnicas de projeto design especificacao modelagem de casos de testes
Anúncio

Destaque (17)

PDF
Testes ágeis
PDF
Testes de usabilidade com uma pitada de lean ux
PDF
Testando a integração com APIs - RSonRails/11
PPTX
Docker e suas tecnologias
PDF
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
PDF
Automação de testes BDD e ATDD
PDF
Testes de segurança desafios e oportunidades
PPTX
ALM - Testes Exploratórios
PDF
Changing Your Testing Mindset, Booster Conference, Bergen, Norway, 2014
PDF
Testes em métodos ágeis
PPT
Introdução ao TDD
PDF
Curso Teste de performance, carga e stress JMeter
PDF
Gestão de defeitos e testes com Jira
PDF
Curso testes avaliação Usabilidade
PPTX
Teste e Qualidade de Software
PDF
Automação de testes funcionais com selenium webdriver
PPTX
Engenharia de Software II - Teste de segurança de software
Testes ágeis
Testes de usabilidade com uma pitada de lean ux
Testando a integração com APIs - RSonRails/11
Docker e suas tecnologias
BRATESTE 2013 - Automação de testes de dispositivos móveis na nuvem
Automação de testes BDD e ATDD
Testes de segurança desafios e oportunidades
ALM - Testes Exploratórios
Changing Your Testing Mindset, Booster Conference, Bergen, Norway, 2014
Testes em métodos ágeis
Introdução ao TDD
Curso Teste de performance, carga e stress JMeter
Gestão de defeitos e testes com Jira
Curso testes avaliação Usabilidade
Teste e Qualidade de Software
Automação de testes funcionais com selenium webdriver
Engenharia de Software II - Teste de segurança de software
Anúncio

Semelhante a Palestra Rest-Assured com Maven e JUnit (20)

PDF
TDC2015: Testes em APIs REST com Rest-Assured
PDF
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QA
PPT
Testes Ágeis: 1° Seminário Paranaense de Qualidade de Software
PPTX
Agile Testing
PPTX
Certificações em Teste e Qualidade de Software
PDF
Testes em WebServices: Conceitos e Ferramentas
PDF
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
PPTX
Palestra Ufpb
PPTX
Palestra Teste de Software: princípios, ferramentas e carreira
ODP
Certificacao Php
PDF
Automacao de testes mitos e verdades
PDF
O Papel do QA numa Software House - Porto Tech Hub 2025
PDF
TDD e UnitTest em Java
PDF
Certificacoes java
PDF
Desenvolvimento web com python e django
PPTX
BluDotNet - Conhecendo o Team Foundation Server 2010
PDF
Faculdade Pitagoras 2014: Palestra sobre Fundamentos e Carreira em Teste de S...
PPS
Automação de testes para equipes agile
PPTX
Papéis em Teste e Qualidade de Software
PDF
A Carreira de Desenvolvedor: do Jr ao Sênior
TDC2015: Testes em APIs REST com Rest-Assured
Iterasys Test Show 2010 - Carreira e Certificação em Teste e QA
Testes Ágeis: 1° Seminário Paranaense de Qualidade de Software
Agile Testing
Certificações em Teste e Qualidade de Software
Testes em WebServices: Conceitos e Ferramentas
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
Palestra Ufpb
Palestra Teste de Software: princípios, ferramentas e carreira
Certificacao Php
Automacao de testes mitos e verdades
O Papel do QA numa Software House - Porto Tech Hub 2025
TDD e UnitTest em Java
Certificacoes java
Desenvolvimento web com python e django
BluDotNet - Conhecendo o Team Foundation Server 2010
Faculdade Pitagoras 2014: Palestra sobre Fundamentos e Carreira em Teste de S...
Automação de testes para equipes agile
Papéis em Teste e Qualidade de Software
A Carreira de Desenvolvedor: do Jr ao Sênior

Último (19)

PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Processos na gestão de transportes, TM100 Col18
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
COBITxITIL-Entenda as diferença em uso governança TI
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula04-Academia Heri- Tecnologia Geral 2025
Aula 18 - Manipulacao De Arquivos python
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Apple Pippin Uma breve introdução. - David Glotz
Processos na gestão de transportes, TM100 Col18

Palestra Rest-Assured com Maven e JUnit

  • 1. contato@qualister.com.br (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister Testes em APIs REST com Rest-Assured Slides disponíveis em: http://bit.ly/1Hg4pUD
  • 2. Palestrante Júlio de Lima Especialista em teste de software com ênfase em automação de testes de software, possui formação em Tecnologia da Informação e certificações internacionais (CTFL e CTAL-TM pelo ISTQB) e nacional (CBTS pela ALATS) julio.lima@qualister.com.br twitter.com/juliodelimas br.linkedin.com/in/juliodelimas
  • 3. Sobre a Qualister • Fundada em 2007 • Mais de 1.000 clientes em todo o Brasil • Mais de 50 cursos sobre teste de software • Mais de 3.000 alunos formados • Áreas de atuação: • Consultoria na área de teste qualidade de software • Cursos • Revenda de ferramentas
  • 4. O que é REST?
  • 5. O que é REST? • É um estilo de arquitetura utilizado para criação de APIs; • Trabalha, geralmente, sobre o protocolo HTTP/HTTPS usando verbos POST, GET, PUT, DELETE, OPTIONS, PATCH e HEAD; • Utiliza respostas no formato JSON ou XML.
 [@fonte=http://rest.elkstein.org]
  • 7. Como testar manualmente? Utilizando cURL, um recurso disponível em sistemas operacionais Unix através de linha de comando, podemos fazer uma requisição através do comando: curl -i -X GET “http://localhost: 8888/qualister-api/?nome=Julio" --user qualister:qualister [@fonte=http://curl.haxx.se/docs/httpscripting.html]
  • 8. Como testar manualmente? Então receberemos a seguinte resposta: HTTP/1.1 200 OK Date: Sun, 10 May 2015 02:03:04 GMT Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/ v5.20.0 X-Powered-By: PHP/5.6.2 Content-Length: 280 Content-Type: application/json { "status":"success", “mensagem”:”Julio, seja bem-vindo a API da Qualister", “dados”: { "atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"], "consultores": { "quantidade":5, "nomes":["Cristiano Caetano","Elias Nogueira","Julio de Lima","Marcio Cunha","Roberto Ungarelli"] } } }
  • 10. Validando resposta: Esquema HTTP/1.1 200 OK Date: Sun, 10 May 2015 02:03:04 GMT Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/ v5.20.0 X-Powered-By: PHP/5.6.2 Content-Length: 280 Content-Type: application/json { "status":"success", "mensagem”:”Seja bem-vindo a API da Qualister", “dados”: { "atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"], "consultores": { "quantidade":5, "nomes":["Cristiano Caetano","Elias Nogueira","Julio de Lima","Marcio Cunha","Roberto Ungarelli"] } } } A resposta terá a propriedade “status" e o valor será do tipo string Essa propriedade deverá ser um Array! A resposta terá a propriedade “dados.atuacao” e não deverá ter itens duplicados
  • 11. Validando resposta: Corpo HTTP/1.1 200 OK Date: Sun, 10 May 2015 02:03:04 GMT Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/ v5.20.0 X-Powered-By: PHP/5.6.2 Content-Length: 280 Content-Type: application/json { "status":"success", "mensagem”:”Seja bem-vindo a API da Qualister", “dados”: { "atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"], "consultores": { "quantidade":5, "nomes":["Cristiano Caetano","Elias Nogueira","Julio de Lima","Marcio Cunha","Roberto Ungarelli"] } } } “status" deverá ser igual a "success" “dados.consultores.quantidade” deverá ser igual a 5 “dados.atuacao” deverá ter um item "Consultoria"
  • 12. Validando resposta: Cabeçalho HTTP/1.1 200 OK Date: Sun, 10 May 2015 02:03:04 GMT Server: Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zd DAV/2 mod_perl/2.0.8 Perl/ v5.20.0 X-Powered-By: PHP/5.6.2 Content-Length: 280 Content-Type: application/json { "status":"success", "mensagem”:”Seja bem-vindo a API da Qualister", “dados”: { "atuacao":["Treinamentos","Consultoria","Revenda de ferramentas"], "consultores": { "quantidade":5, "nomes":["Cristiano Caetano","Elias Nogueira","Julio de Lima","Marcio Cunha","Roberto Ungarelli"] } } } “Status Code" deverá ser igual a 200
  • 14. Rest-Assured • É uma biblioteca escrita em Java criada para simplificar testes de serviços baseados em REST; • Ele é compatível com os principais verbos, podendo simular requisições: POST, GET, PUT, DELETE, OPTIONS, PATCH e HEAD; • Possui mecanismos para validação do esquema, corpo e cabeçalho das requisições; • Utiliza a sintaxe de especificação por exemplos, o Given- When-Then, muito conhecida em testes dirigidos por comportamento (BDD). [@fonte=https://code.google.com/p/rest-assured/wiki/Usage]
  • 15. Rest-Assured Exemplo de teste: given() .param(“nome", "Julio") .when() .get(“/") .then() .statusCode(200). .body(“mensagem", containsString("Julio")); Enviar o valor “Julio" pelo parâmetro "nome" Requisitar o path “/“ usando verbo GET Validar que o Status Code é 200 (Sucesso) Validar que a propriedade “mensagem" contem a string "Julio"
  • 17. Componentes auxiliares • Utilizaremos o Maven para tornar mais simples a estruturação do projeto, dependências e execução dos testes.
 
 [@fonte=https://maven.apache.org] • O JUnit é um framework open-source utilizado para facilitar a criação dos testes automatizados. 
 
 [@fonte=http://junit.org]