SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister
Testes em APIs
REST com
Rest-Assured
São Paulo | 22/07/2015
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
goldtips.by/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 métodos 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",
"message":”Julio, seja bem-vindo a API da Qualister",
"data":
{
"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",
"message":”Julio, seja bem-vindo a API da Qualister",
"data":
{
"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",
"message":”Julio, seja bem-vindo a API da Qualister",
"data":
{
"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",
"message":”Julio, seja bem-vindo a API da Qualister",
"data":
{
"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
Rest-Assured
• É uma biblioteca escrita em Java criada para simplificar
testes de serviços baseados em REST;
• Ele é compatível com os principais métodos, 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()
.assertThat()
.statusCode(200)
.body(“mensagem", containsString("Julio"));
Enviar o valor “Julio" pelo parâmetro
"nome"
Requisitar o path “/“ usando metodo 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. O diretório bin do Maven deve ser setado nas
variáveis globais do sistema operacional.



[@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!
Hands-on
1. Criar um novo projeto Maven no Eclipse
2. Criar adicionar as dependências ao pom.xml























3. Criar o package br.com.qualister.Testes em src/test/java
<dependencies>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
<version>2.4.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.4.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
Hands-on
4. Criar uma classe de teste do JUnit e nomea-la como
"QualisterAPITests"
5. Adicionar a ela as importações para utilização do
RestAssured:





6. Configurar a conexão com a API Rest dentro do construtor
da classe de testes













import static com.jayway.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
import static com.jayway.restassured.module.jsv.JsonSchemaValidator.*;
public QualisterAPITests() {
baseURI = "http://localhost/qualister-api/";
port = 8888;
authentication = basic("qualister", "qualister");
}
Hands-on
7. Escrever um teste chamado testMostrarDadosQualister,
que basicamente apresenta a resposta à requisição GET
ao path “/“:













8. Ao executar o teste, teremos o status passed no JUnit e
no console será apresentada a resposta, similar à que
vimos anteriormente.





@Test
public void testMostrarDadosQualister() {
given()
.param("nome", "Julio")
.when()
.get("/")
.then()
.log()
.body();
}
Hands-on
9. Capture o valor da propriedade “status" e valide se é
igual a "success":





















String status = given()
.param("nome", "Julio")
.when()
.get("/")
.then()
.log()
.body()
.extract()
.body()
.path("status");
Assert.assertEquals("success", status);
Hands-on
10.Neste caso, poderíamos usar asserções do próprio
RestAssured usando matchers do Hamcrest:















11.Uma asserção quem é muito poderosa também é a que
valida o esquema da resposta obtida. Veja como usar:



.body(matchesJsonSchemaInClasspath("meu-esquema.json"))





given()
.param("nome", "Julio")
.when()
.get("/")
.then()
.log()
.body()
.assertThat()
.body("status", equalTo("success"))
.body("message", containsString("Julio"))
.statusCode(200);
Hands-on
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Dados da Qualister",
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"atuacao": {
"type": "array"
},
"consultores": {
"type": "object",
"properties": {
"quantidade": {
"type": "integer",
"minimum": 0
},
"nomes": {
"type": "array",
"uniqueItems": true
}
}
}
}
}
},
"required": ["status", "message", "data"]
}
Hands-on
12.Para executar os testes via linha de comando, acesse o
diretório onde está o arquivo pom.xml do projeto e
execute o comando abaixo:
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira / @eliasnogueira
http://bit.ly/1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Maurício Silva / @silvamauriciob
http://bit.ly/1G3yhzC
Status Codes HTTP
Frederico Moreira / @fredaomoreira
http://bit.ly/1GC2vKw
contato@qualister.com.br
(48) 3285-5615
twitter.com/qualister
facebook.com/qualister
linkedin.com/company/qualister

Mais conteúdo relacionado

Mais procurados

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 efetivaFrederico Augusto Do Carmo Moreira
 
Karate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter ThomasKarate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter Thomasintuit_india
 
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
 
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
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1alinebiath
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testesElias Nogueira
 
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
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de TesteElias Nogueira
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaElias Nogueira
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
 
Karate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made SimpleKarate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made SimpleVodqaBLR
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JSNàtali Cabral
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 
JavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and KarmaJavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and KarmaChristopher Bartling
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de softwareQualister
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Bertrand Delacretaz
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoElias Nogueira
 

Mais procurados (20)

Plano de teste
Plano de testePlano de teste
Plano de teste
 
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
 
Karate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter ThomasKarate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter Thomas
 
Unit Test
Unit TestUnit Test
Unit Test
 
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
 
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
 
Testando API REST - Parte 1
Testando API REST - Parte 1Testando API REST - Parte 1
Testando API REST - Parte 1
 
Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
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
 
Arquitetura de Automação de Teste
Arquitetura de Automação de TesteArquitetura de Automação de Teste
Arquitetura de Automação de Teste
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto Java
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
Karate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made SimpleKarate - Web-Service API Testing Made Simple
Karate - Web-Service API Testing Made Simple
 
Testes E2E em Cypress com JS
Testes E2E em Cypress com JSTestes E2E em Cypress com JS
Testes E2E em Cypress com JS
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
JavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and KarmaJavaScript TDD with Jasmine and Karma
JavaScript TDD with Jasmine and Karma
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
Automação de teste de software
Automação de teste de softwareAutomação de teste de software
Automação de teste de software
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 

Destaque

Com fer uns bunyols de quaresma
Com fer uns bunyols de quaresmaCom fer uns bunyols de quaresma
Com fer uns bunyols de quaresmajvidalialcover
 
Tipos de contenedores
Tipos de contenedoresTipos de contenedores
Tipos de contenedoresastrid2014
 
Hypothesis ORCID presentation
Hypothesis ORCID presentationHypothesis ORCID presentation
Hypothesis ORCID presentationORCID, Inc
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com CodeceptionJúlio de Lima
 
Mi materia favorita♥
Mi   materia   favorita♥Mi   materia   favorita♥
Mi materia favorita♥Kerly lisseth
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeKamilla Queiroz Xavier
 
5 years. voc. weather clothes
5 years. voc. weather clothes5 years. voc. weather clothes
5 years. voc. weather clothesjvidalialcover
 
Lightning Talk Session - arXiv (S. Warner)
Lightning Talk Session - arXiv (S. Warner)Lightning Talk Session - arXiv (S. Warner)
Lightning Talk Session - arXiv (S. Warner)ORCID, Inc
 
l'entusiasme dels cinc anys
l'entusiasme dels cinc anysl'entusiasme dels cinc anys
l'entusiasme dels cinc anysjvidalialcover
 
Soal seleksi stis 2015 2016 mate-matika
Soal seleksi stis 2015 2016 mate-matikaSoal seleksi stis 2015 2016 mate-matika
Soal seleksi stis 2015 2016 mate-matikaAri Saputra
 

Destaque (15)

Com fer uns bunyols de quaresma
Com fer uns bunyols de quaresmaCom fer uns bunyols de quaresma
Com fer uns bunyols de quaresma
 
Tipos de contenedores
Tipos de contenedoresTipos de contenedores
Tipos de contenedores
 
Hypothesis ORCID presentation
Hypothesis ORCID presentationHypothesis ORCID presentation
Hypothesis ORCID presentation
 
Guia#1 Mantenimiento
Guia#1 MantenimientoGuia#1 Mantenimiento
Guia#1 Mantenimiento
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception
 
Mi materia favorita♥
Mi   materia   favorita♥Mi   materia   favorita♥
Mi materia favorita♥
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
Hoja de vida
Hoja de vidaHoja de vida
Hoja de vida
 
5 years. voc. weather clothes
5 years. voc. weather clothes5 years. voc. weather clothes
5 years. voc. weather clothes
 
Lightning Talk Session - arXiv (S. Warner)
Lightning Talk Session - arXiv (S. Warner)Lightning Talk Session - arXiv (S. Warner)
Lightning Talk Session - arXiv (S. Warner)
 
l'entusiasme dels cinc anys
l'entusiasme dels cinc anysl'entusiasme dels cinc anys
l'entusiasme dels cinc anys
 
Magnetom flash 45
Magnetom flash 45Magnetom flash 45
Magnetom flash 45
 
la festa de carnaval
la festa de carnavalla festa de carnaval
la festa de carnaval
 
Neuroimaging teddy
Neuroimaging teddyNeuroimaging teddy
Neuroimaging teddy
 
Soal seleksi stis 2015 2016 mate-matika
Soal seleksi stis 2015 2016 mate-matikaSoal seleksi stis 2015 2016 mate-matika
Soal seleksi stis 2015 2016 mate-matika
 

Semelhante a Testes REST com Rest-Assured

Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitQualister
 
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredPalestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredJúlio de Lima
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driverJúlio de Lima
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverQualister
 
[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
 
Maturidade em automação de testes
Maturidade em automação de testesMaturidade em automação de testes
Maturidade em automação de testesCristiano Caetano
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliverySamanta Cicilia
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareJeremias Araujo
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados Webcasts developerWorks Brasil
 
Certificacoes java
Certificacoes javaCertificacoes java
Certificacoes javaBruno Garcia
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end seleniumQualister
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Trabalho 4 Semestre e 5 Semestre 2015
Trabalho 4 Semestre e 5 Semestre 2015Trabalho 4 Semestre e 5 Semestre 2015
Trabalho 4 Semestre e 5 Semestre 2015Rodrigo Marinho
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumSandy Maciel
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.iotdc-globalcode
 
Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Alain Ageev, SFPC
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 

Semelhante a Testes REST com Rest-Assured (20)

Palestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnitPalestra Rest-Assured com Maven e JUnit
Palestra Rest-Assured com Maven e JUnit
 
Palestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-AssuredPalestra sobre automação de testes em APIs Rest com Rest-Assured
Palestra sobre automação de testes em APIs Rest com Rest-Assured
 
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
13º É dia de Java: Automação de Testes Funcionais com Selenium Web driver
 
Automação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriverAutomação de testes funcionais com selenium webdriver
Automação de testes funcionais com selenium webdriver
 
[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
 
Maturidade em automação de testes
Maturidade em automação de testesMaturidade em automação de testes
Maturidade em automação de testes
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Ferramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de softwareFerramentas open source para auxiliar os testes de software
Ferramentas open source para auxiliar os testes de software
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados Reusabilidade na Utilização de Frameworks Automatizados
Reusabilidade na Utilização de Frameworks Automatizados
 
Certificacoes java
Certificacoes javaCertificacoes java
Certificacoes java
 
Caipira agil automacao front end selenium
Caipira agil automacao front end seleniumCaipira agil automacao front end selenium
Caipira agil automacao front end selenium
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Falando sobre DevOps no azure
Falando sobre DevOps no azureFalando sobre DevOps no azure
Falando sobre DevOps no azure
 
Trabalho 4 Semestre e 5 Semestre 2015
Trabalho 4 Semestre e 5 Semestre 2015Trabalho 4 Semestre e 5 Semestre 2015
Trabalho 4 Semestre e 5 Semestre 2015
 
Introdução a testes de software utilizando selenium
Introdução a testes de software utilizando seleniumIntrodução a testes de software utilizando selenium
Introdução a testes de software utilizando selenium
 
AppTesting
AppTestingAppTesting
AppTesting
 
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.ioTDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
TDC2018SP | Trilha Testes - Testes de carga e performance com Gatling.io
 
Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3Introdução aos fundamentos de teste de software 3
Introdução aos fundamentos de teste de software 3
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 

Mais de Júlio de Lima

[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes CamadasJúlio de Lima
 
ALTER FACE Test Heuristic
ALTER FACE Test HeuristicALTER FACE Test Heuristic
ALTER FACE Test HeuristicJúlio de Lima
 
[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testesJúlio de Lima
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Júlio de Lima
 
[TDC2019] Inteligência Artificial e Testes in a Nutshell
[TDC2019] Inteligência Artificial e Testes  in a Nutshell[TDC2019] Inteligência Artificial e Testes  in a Nutshell
[TDC2019] Inteligência Artificial e Testes in a NutshellJúlio de Lima
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de SoftwareJúlio de Lima
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em RiscoJúlio de Lima
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosJúlio de Lima
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de APIJúlio de Lima
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAsJúlio de Lima
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextosJúlio de Lima
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen FrameworkJúlio de Lima
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com ProphecyJúlio de Lima
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?Júlio de Lima
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
[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
 
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
 

Mais de Júlio de Lima (20)

[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas
 
ALTER FACE Test Heuristic
ALTER FACE Test HeuristicALTER FACE Test Heuristic
ALTER FACE Test Heuristic
 
[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)
 
[TDC2019] Inteligência Artificial e Testes in a Nutshell
[TDC2019] Inteligência Artificial e Testes  in a Nutshell[TDC2019] Inteligência Artificial e Testes  in a Nutshell
[TDC2019] Inteligência Artificial e Testes in a Nutshell
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes Contextos
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API
 
[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs[Front in Sampa 2018] Desenvolvendo como QAs
[Front in Sampa 2018] Desenvolvendo como QAs
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextos
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
[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
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 

Testes REST com Rest-Assured

  • 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 goldtips.by/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 métodos 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", "message":”Julio, seja bem-vindo a API da Qualister", "data": { "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", "message":”Julio, seja bem-vindo a API da Qualister", "data": { "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", "message":”Julio, seja bem-vindo a API da Qualister", "data": { "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", "message":”Julio, seja bem-vindo a API da Qualister", "data": { "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
  • 13.
  • 14. Rest-Assured • É uma biblioteca escrita em Java criada para simplificar testes de serviços baseados em REST; • Ele é compatível com os principais métodos, 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() .assertThat() .statusCode(200) .body(“mensagem", containsString("Julio")); Enviar o valor “Julio" pelo parâmetro "nome" Requisitar o path “/“ usando metodo 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. O diretório bin do Maven deve ser setado nas variáveis globais do sistema operacional.
 
 [@fonte=https://maven.apache.org] • O JUnit é um framework open-source utilizado para facilitar a criação dos testes automatizados. 
 
 [@fonte=http://junit.org]
  • 19. Hands-on 1. Criar um novo projeto Maven no Eclipse 2. Criar adicionar as dependências ao pom.xml
 
 
 
 
 
 
 
 
 
 
 
 3. Criar o package br.com.qualister.Testes em src/test/java <dependencies> <dependency> <groupId>com.jayway.restassured</groupId> <artifactId>rest-assured</artifactId> <version>2.4.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.jayway.restassured</groupId> <artifactId>json-schema-validator</artifactId> <version>2.4.1</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
  • 20. Hands-on 4. Criar uma classe de teste do JUnit e nomea-la como "QualisterAPITests" 5. Adicionar a ela as importações para utilização do RestAssured:
 
 
 6. Configurar a conexão com a API Rest dentro do construtor da classe de testes
 
 
 
 
 
 
 import static com.jayway.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; import static com.jayway.restassured.module.jsv.JsonSchemaValidator.*; public QualisterAPITests() { baseURI = "http://localhost/qualister-api/"; port = 8888; authentication = basic("qualister", "qualister"); }
  • 21. Hands-on 7. Escrever um teste chamado testMostrarDadosQualister, que basicamente apresenta a resposta à requisição GET ao path “/“:
 
 
 
 
 
 
 8. Ao executar o teste, teremos o status passed no JUnit e no console será apresentada a resposta, similar à que vimos anteriormente.
 
 
 @Test public void testMostrarDadosQualister() { given() .param("nome", "Julio") .when() .get("/") .then() .log() .body(); }
  • 22. Hands-on 9. Capture o valor da propriedade “status" e valide se é igual a "success":
 
 
 
 
 
 
 
 
 
 
 String status = given() .param("nome", "Julio") .when() .get("/") .then() .log() .body() .extract() .body() .path("status"); Assert.assertEquals("success", status);
  • 23. Hands-on 10.Neste caso, poderíamos usar asserções do próprio RestAssured usando matchers do Hamcrest:
 
 
 
 
 
 
 
 11.Uma asserção quem é muito poderosa também é a que valida o esquema da resposta obtida. Veja como usar:
 
 .body(matchesJsonSchemaInClasspath("meu-esquema.json"))
 
 
 given() .param("nome", "Julio") .when() .get("/") .then() .log() .body() .assertThat() .body("status", equalTo("success")) .body("message", containsString("Julio")) .statusCode(200);
  • 24. Hands-on { "$schema": "http://json-schema.org/draft-04/schema#", "title": "Dados da Qualister", "type": "object", "properties": { "data": { "type": "object", "properties": { "atuacao": { "type": "array" }, "consultores": { "type": "object", "properties": { "quantidade": { "type": "integer", "minimum": 0 }, "nomes": { "type": "array", "uniqueItems": true } } } } } }, "required": ["status", "message", "data"] }
  • 25. Hands-on 12.Para executar os testes via linha de comando, acesse o diretório onde está o arquivo pom.xml do projeto e execute o comando abaixo: mvn test -Dtest=QualisterAPITests
  • 26. Links interessantes Categorizando testes em Unit Elias Nogueira / @eliasnogueira http://bit.ly/1Jxnb8w Rest-Assured escrevendo em Groovy (GitHub) Maurício Silva / @silvamauriciob http://bit.ly/1G3yhzC Status Codes HTTP Frederico Moreira / @fredaomoreira http://bit.ly/1GC2vKw