20
[email protected] (48) 3285-5615 twitter.com/qualister facebook.com/qualister linkedin.com/company/qualister Testes em APIs REST com Rest-Assured Slides disponíveis em: http://bit.ly/1Hg4pUD

Palestra sobre automação de testes em APIs Rest com Rest-Assured

Embed Size (px)

Citation preview

Page 1: Palestra sobre automação de testes em APIs Rest com Rest-Assured

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Testes em APIs REST com

Rest-AssuredSlides disponiacuteveis em

httpbitly1Hg4pUD

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

twittercomjuliodelimas

brlinkedincominjuliodelimas

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 verbos 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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 2: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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

twittercomjuliodelimas

brlinkedincominjuliodelimas

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 verbos 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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 3: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 verbos 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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 4: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 verbos 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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 5: Palestra sobre automação de testes em APIs Rest com Rest-Assured

O que eacute REST

bull Eacute um estilo de arquitetura utilizado para criaccedilatildeo de APIs

bull Trabalha geralmente sobre o protocolo HTTPHTTPS usando verbos 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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 6: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 7: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 8: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 ldquomensagemrdquordquoJulio seja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 9: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 10: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 11: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 12: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 mensagemrdquordquoSeja bem-vindo a API da Qualister ldquodadosrdquo 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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 13: Palestra sobre automação de testes em APIs Rest com Rest-Assured

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 verbos 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() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 14: Palestra sobre automação de testes em APIs Rest com Rest-Assured

Rest-Assured

Exemplo de teste

given() param(ldquonome Julio) when() get(ldquo) then() statusCode(200) body(ldquomensagem containsString(Julio))

Enviar o valor ldquoJulio pelo paracircmetro nome

Requisitar o path ldquoldquo usando verbo 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 [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 15: Palestra sobre automação de testes em APIs Rest com Rest-Assured

Componentes auxiliares

Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a

estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 16: Palestra sobre automação de testes em APIs Rest com Rest-Assured

Componentes auxiliaresbull Utilizaremos o Maven para tornar mais simples a

estruturaccedilatildeo do projeto dependecircncias e execuccedilatildeo dos testes [fonte=httpsmavenapacheorg]

bull O JUnit eacute um framework open-source utilizado para facilitar a criaccedilatildeo dos testes automatizados [fonte=httpjunitorg]

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 17: Palestra sobre automação de testes em APIs Rest com Rest-Assured

Hands-onViacutedeo disponiacutevel em

httpbitly1QMZ3od

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 18: Palestra sobre automação de testes em APIs Rest com Rest-Assured

Workshop Rest-Assured

Inscreva-se em

httpbitly1EIMuSr

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister

Page 19: Palestra sobre automação de testes em APIs Rest com Rest-Assured

contatoqualistercombr

(48) 3285-5615

twittercomqualister

facebookcomqualister

linkedincomcompanyqualister