View
332
Download
7
Category
Preview:
Citation preview
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Testes em APIs REST com
Rest-Assured
Satildeo Paulo | 22072015
Palestrante
Juacutelio de Lima Especialista em teste de software com ecircnfase em automaccedilatildeo de testes de software possui formaccedilatildeo em Tecnologia da Informaccedilatildeo e certificaccedilotildees internacionais (CTFL e CTAL-TM pelo ISTQB) e nacional (CBTS pela ALATS)
juliolimaqualistercombr
twittercomjuliodelimasbrlinkedincominjuliodelimas
goldtipsbyjuliodelimas
Sobre a Qualister
bull Fundada em 2007 bull Mais de 1000 clientes em todo o Brasil bull Mais de 50 cursos sobre teste de software bull Mais de 3000 alunos formados bull Aacutereas de atuaccedilatildeo bull Consultoria na aacuterea de teste qualidade de
software bull Cursos bull Revenda de ferramentas
O que eacute REST
O que eacute REST
bull Eacute um estilo de arquitetura utilizado para criaccedilatildeo de APIs
bull Trabalha geralmente sobre o protocolo HTTPHTTPS usando meacutetodos POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Utiliza respostas no formato JSON ou XML
[fonte=httprestelksteinorg]
Como testar manualmente
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Palestrante
Juacutelio de Lima Especialista em teste de software com ecircnfase em automaccedilatildeo de testes de software possui formaccedilatildeo em Tecnologia da Informaccedilatildeo e certificaccedilotildees internacionais (CTFL e CTAL-TM pelo ISTQB) e nacional (CBTS pela ALATS)
juliolimaqualistercombr
twittercomjuliodelimasbrlinkedincominjuliodelimas
goldtipsbyjuliodelimas
Sobre a Qualister
bull Fundada em 2007 bull Mais de 1000 clientes em todo o Brasil bull Mais de 50 cursos sobre teste de software bull Mais de 3000 alunos formados bull Aacutereas de atuaccedilatildeo bull Consultoria na aacuterea de teste qualidade de
software bull Cursos bull Revenda de ferramentas
O que eacute REST
O que eacute REST
bull Eacute um estilo de arquitetura utilizado para criaccedilatildeo de APIs
bull Trabalha geralmente sobre o protocolo HTTPHTTPS usando meacutetodos POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Utiliza respostas no formato JSON ou XML
[fonte=httprestelksteinorg]
Como testar manualmente
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Sobre a Qualister
bull Fundada em 2007 bull Mais de 1000 clientes em todo o Brasil bull Mais de 50 cursos sobre teste de software bull Mais de 3000 alunos formados bull Aacutereas de atuaccedilatildeo bull Consultoria na aacuterea de teste qualidade de
software bull Cursos bull Revenda de ferramentas
O que eacute REST
O que eacute REST
bull Eacute um estilo de arquitetura utilizado para criaccedilatildeo de APIs
bull Trabalha geralmente sobre o protocolo HTTPHTTPS usando meacutetodos POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Utiliza respostas no formato JSON ou XML
[fonte=httprestelksteinorg]
Como testar manualmente
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
O que eacute REST
O que eacute REST
bull Eacute um estilo de arquitetura utilizado para criaccedilatildeo de APIs
bull Trabalha geralmente sobre o protocolo HTTPHTTPS usando meacutetodos POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Utiliza respostas no formato JSON ou XML
[fonte=httprestelksteinorg]
Como testar manualmente
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
O que eacute REST
bull Eacute um estilo de arquitetura utilizado para criaccedilatildeo de APIs
bull Trabalha geralmente sobre o protocolo HTTPHTTPS usando meacutetodos POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Utiliza respostas no formato JSON ou XML
[fonte=httprestelksteinorg]
Como testar manualmente
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Como testar manualmente
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Como testar manualmente
Utilizando cURL um recurso disponiacutevel em sistemas operacionais Unix atraveacutes de linha de comando podemos fazer uma requisiccedilatildeo atraveacutes do comando
curl -i -X GET ldquohttplocalhost8888qualister-apinome=Julio --user qualisterqualister
[fonte=httpcurlhaxxsedocshttpscriptinghtml]
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Como testar manualmente
Entatildeo receberemos a seguinte respostaHTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Validando respostas
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Validando resposta Esquema
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
A resposta teraacute a propriedade ldquostatus e o valor seraacute do tipo string
Essa propriedade deveraacute ser um Array
A resposta teraacute a propriedade ldquodadosatuacaordquo e natildeo deveraacute ter itens
duplicados
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Validando resposta Corpo
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquostatus deveraacute ser igual a success
ldquodadosconsultoresquantidaderdquo deveraacute ser igual a 5
ldquodadosatuacaordquo deveraacute ter um item Consultoria
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Validando resposta Cabeccedilalho
HTTP11 200 OK Date Sun 10 May 2015 020304 GMT Server Apache2229 (Unix) mod_fastcgi246 mod_wsgi34 Python278 PHP562 mod_ssl2229 OpenSSL098zd DAV2 mod_perl208 Perlv5200 X-Powered-By PHP562 Content-Length 280 Content-Type applicationjson
statussuccess messagerdquoJulio seja bem-vindo a API da Qualister data atuacao[TreinamentosConsultoriaRevenda de ferramentas] consultores quantidade5 nomes[Cristiano CaetanoElias NogueiraJulio de LimaMarcio CunhaRoberto Ungarelli]
ldquoStatus Code deveraacute ser igual a 200
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Rest-Assured
bull Eacute uma biblioteca escrita em Java criada para simplificar testes de serviccedilos baseados em REST
bull Ele eacute compatiacutevel com os principais meacutetodos podendo simular requisiccedilotildees POST GET PUT DELETE OPTIONS PATCH e HEAD
bull Possui mecanismos para validaccedilatildeo do esquema corpo e cabeccedilalho das requisiccedilotildees
bull Utiliza a sintaxe de especificaccedilatildeo por exemplos o Given-When-Then muito conhecida em testes dirigidos por comportamento (BDD)
[fonte=httpscodegooglecomprest-assuredwikiUsage]
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Rest-Assured
Exemplo de teste
given()
param(ldquonome Julio)
when()
get(ldquo)
then()
assertThat()
statusCode(200)
body(ldquomensagem containsString(Julio))
Enviar o valor ldquoJulio pelo paracircmetro nome
Requisitar o path ldquoldquo usando metodo GET
Validar que o Status Code eacute 200 (Sucesso) Validar que a propriedade
ldquomensagem contem a string Julio
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Componentes auxiliares
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a
estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes O diretoacuterio bin do Maven deve ser setado nas variaacuteveis globais do sistema operacional[fonte=httpsmavenapacheorg]
bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on1 Criar um novo projeto Maven no Eclipse
2 Criar adicionar as dependecircncias ao pomxml
3 Criar o package brcomqualisterTestes em srctestjava
ltdependenciesgt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtrest-assuredltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtcomjaywayrestassuredltgroupIdgt ltartifactIdgtjson-schema-validatorltartifactIdgt ltversiongt241ltversiongt ltscopegttestltscopegt ltdependencygt ltdependencygt ltgroupIdgtjunitltgroupIdgt ltartifactIdgtjunitltartifactIdgt ltversiongt412ltversiongt ltdependencygt ltdependenciesgt
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on4 Criar uma classe de teste do JUnit e nomea-la como
QualisterAPITests
5 Adicionar a ela as importaccedilotildees para utilizaccedilatildeo do RestAssured
6 Configurar a conexatildeo com a API Rest dentro do construtor da classe de testes
import static comjaywayrestassuredRestAssuredimport static orghamcrestMatchersimport static comjaywayrestassuredmodulejsvJsonSchemaValidator
public QualisterAPITests() baseURI = httplocalhostqualister-apiport = 8888authentication = basic(qualister qualister)
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on7 Escrever um teste chamado testMostrarDadosQualister
que basicamente apresenta a resposta agrave requisiccedilatildeo GET ao path ldquoldquo
8 Ao executar o teste teremos o status passed no JUnit e no console seraacute apresentada a resposta similar agrave que vimos anteriormente
Testpublic void testMostrarDadosQualister()
given()param(nome Julio)
when()get()
then()log()
body()
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on9 Capture o valor da propriedade ldquostatus e valide se eacute
igual a success
String status = given()param(nome Julio)
when()get()
then()log()
body()extract()
body()path(status)
AssertassertEquals(success status)
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on10Neste caso poderiacuteamos usar asserccedilotildees do proacuteprio
RestAssured usando matchers do Hamcrest
11Uma asserccedilatildeo quem eacute muito poderosa tambeacutem eacute a que valida o esquema da resposta obtida Veja como usarbody(matchesJsonSchemaInClasspath(meu-esquemajson))
given()param(nome Julio)
when()get()
then()log()
body()assertThat()
body(status equalTo(success))
body(message containsString(Julio))
statusCode(200)
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on
$schema httpjson-schemaorgdraft-04schematitle Dados da Qualistertype objectproperties
data type objectproperties
atuacao type array
consultores
type objectproperties
quantidade type integerminimum 0
nomes
type arrayuniqueItems true
required [status message data]
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Hands-on12Para executar os testes via linha de comando acesse o
diretoacuterio onde estaacute o arquivo pomxml do projeto e execute o comando abaixo
mvn test -Dtest=QualisterAPITests
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Links interessantes
Categorizando testes em Unit
Elias Nogueira eliasnogueira
httpbitly1Jxnb8w
Rest-Assured escrevendo em Groovy (GitHub)
Mauriacutecio Silva silvamauriciob
httpbitly1G3yhzC
Status Codes HTTP
Frederico Moreira fredaomoreira
httpbitly1GC2vKw
contatoqualistercombr
(48) 3285-5615
twittercomqualister
facebookcomqualister
linkedincomcompanyqualister
Recommended