ab workshop automacao rest web mobile -...

76
Testes vão muito além do TDD Automação para REST, Web e Mobile

Upload: hanguyet

Post on 10-Apr-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Testes vão muito além do TDDAutomação para REST, Web e Mobile

Page 2: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EliasNogueira

adaptworks.com.br

eliasnogueira

fb.com/elias.nogueira.teste

Agile Coach & Trainer na Adaptworks

QA Engineer

Professor de Pós Graduação na Unisinos/RS

eliasnogueira.com

Page 3: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

PORQUESEPREOCUPARCOMQUALIDADE?

Page 4: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

PORQUEAUTOMATIZAR?

TesteManual:maisrápidodecriarmaismuitolentoparaexecutar.

TesteAutomatizado:criaçãorelativamentedemoradamasmuitorápidoparaexecutar.

Execuções

Tempo

para

criação

Manual

Automatizado

Page 5: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

PIRÂMIDEDEAUTOMAÇÃODETESTE

https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid

Page 6: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

JSON

JavaScript Object Notation

Éindependentedelinguagemdeprogramação

NãorequerJavaScript parautilizarenãoédependentedeJavaScript

ÉbaseadonoObjetoLiteraldeJavaScript– var gato = {nome: ”Felicia”, idade: 2}

UmtextoemJSONpodeserconvertidodiretamenteparaumObjetoJavaScript

Page 7: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

JSON

Page 8: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

LinksÚteis

http://www.json.org

http://www.jsoneditoronline.org

http://www.w3schools.com/json/

https://www.udemy.com/json-training-a-javascript-object-notation-course

JSON

Page 9: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

REpresentational State Transfer (REST)

ÉumestilodearquiteturautilizadoparacriaçãodeAPIs

TrabalhasobreprotocolosHTTPusandoverbosPOST,GET,PUT,DELETE,OPTION,PATCHeHEAD

UtilizarespostasnoformatoJSONouXML

REST

Page 10: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

GeralmenteligadosamétodosCRUD(Create,Read,Update,Delete)

Método AçãoGET ReceberinformaçõesPOST CriarinformaçõesPUT CriarouatualizarinformaçõesDELETE Removerinformações

REST

Page 11: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Oquefaz? Verbo URL Exemplo

Listapessoas GET /api/person /api/person

Retornaapessoapeloid* GET /api/person/:id /api/person/27

Adicionaaspessoas* POST /api/person /api/person

Atualizaumapessoapelo id* PUT /api/person/:id /api/person/33

Removeumapessoa peloid DELETE /api/person/:id /api/person/52

*Necessárioenviaroscamposcomoparâmetros

REST

Page 12: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

LinksÚteis

http://rest.elkstein.org

https://www.infoq.com/br/articles/rest-introduction

REST

Page 13: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Há várias formas deefetuar testesmanuais em APIsREST

Asmais utilizadas são vialinha decomando oubrowser:

CURL(linha decomando)PostMan (plugindoGoogleChrome)RestEasy(plugindoFirefox)RestClient (plugindoFirefox)

CURL- https://curl.haxx.sePostMan - https://www.getpostman.com

RestClient - https://addons.mozilla.org/en-US/firefox/addon/restclient/

TESTEMANUALREST

Rest Easy - https://addons.mozilla.org/en-us/firefox/addon/rest-easy/

Page 14: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Método URLdaAPI

Corpo

Resposta

Page 15: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

PréCondições– RESTEasy aberto– URLbasecomohttp://eliasnogueira.com/tdc/workshop

Passos1. InformeométodoGET2. InformeaURLbasemais:

• api/person3. CliqueemSend

ResultadosEsperados– Listadepessoasexistentesnosistema

TESTEMANUALREST- EXERCÍCIO1Obtendopessoas

Page 16: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

TESTEMANUALREST- EXERCÍCIO2Criandoumnovoregistro(pessoa)

PréCondições– RESTEasy aberto– URLbasecomohttp://eliasnogueira.com/tdc/workshop

Passos1. InformeométodoPOST2. InformeaURLbasemais:

• api/person3. InformenoBodyosdadosqueserão enviados,noformato JSON

{ "name":"Joao Carlos", "address":"Av Paulista, 1000", "hobbies":"Skate”

}4. CliqueemSend

ResultadosEsperados– Statuscode =200naabaResponseHeaders– PessoacadastradaedadossendoexibidosnaabaResponseBody

Observação:anotar oIDgerado

Page 17: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

TESTEMANUALREST- EXERCÍCIO3Pesquisandopeloregistroinserido

PréCondições– RESTEasy aberto– URLbasecomohttp://eliasnogueira.com/tdc/workshop

Passos1. InformeométodoGET2. InformeaURLbasemais:

• api/person/{id}3. O{id} deve ser oIDanotado anteriormente4. CliqueemSend

ResultadosEsperados– Statuscode =200naabaResponseHeaders– DadosdapessoasendoexibidosnaabaResponseBody

Page 18: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

TESTEMANUALREST- EXERCÍCIO4Alterandooregistroinserido

PréCondições– RESTEasy aberto– URLbasecomohttp://eliasnogueira.com/tdc/workshop

Passos1. InformeométodoPUT2. InformeaURLbasemais:

• api/person/{id}3. O{id} deve ser oIDanotado anteriormente4. InformenoBodyosdadosqueserão enviados,noformato JSON

{ "name":”SEU NOME",

}

5. CliqueemSend

ResultadosEsperados– Statuscode =200naabaResponseHeaders– DadosdapessoaalteradasendoexibidosnaabaResponseBody

Page 19: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

TESTEMANUALREST- EXERCÍCIO5Removendooregistroinserido

PréCondições– RESTEasy aberto– URLbasecomohttp://eliasnogueira.com/tdc/workshop

Passos1. InformeométodoDELETE2. InformeaURLbasemais:

• api/person/{id}3. O{id} deve ser oIDanotado anteriormente4. CliqueemSend

ResultadosEsperados– Statuscode =200naabaResponseHeaders– ResponseBodycominformação success:true

Page 20: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

ExisteumagamadeferramentasutilizadasparaautomaçãodeenviodeverbosREST

NósutilizaremosoREST-Assuredhttps://github.com/jayway/rest-assured

TESTEAUTOMATIZADOREST

Page 21: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EleéumaDLSdefácilutilizaçãoparaautomatizarserviçosRESTondepoderemosvalidarosresultadosesperados

AsintaxedeutilizaçãoémuitoparecidacomoGiven-When-Then doBDD

TESTEAUTOMATIZADOREST

Page 22: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

TESTEAUTOMATIZADOREST

Page 23: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EstruturadaClassedeTeste

1.Import EstáticoÉnecessárioefetuardoisimports estáticos

TESTEAUTOMATIZADOREST

Page 24: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EstruturadaClassedeTeste

2.Pre CondiçãoÉnecessárioinformar

• URI:URLbasedeacessoaAPI• basePath:contextodeacessoaAPI

TESTEAUTOMATIZADOREST

Page 25: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EstruturadaClassedeTeste

3.TesteutilizandooscomandosdoRestAssuredCriaçãodeumcenáriodetesteparaexecução

TESTEAUTOMATIZADOREST

Page 26: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Criarumpacotechamadotdc.workshop.rest napastasrc/test/java2. CriarumaJUnitTestCase chamadaTestePessoaApi3. Desenvolveramesmaclassedescritaabaixo

TESTEAUTOMATIZADOREST- EXERCÍCIO1CriandoaEstrutura

Page 27: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. AdicionarummétododetestechamadotesteValidacaoPessoa2. EfetuarumachamadaGETparaperson/{id}einformeumIDconhecido3. Validaroresultadodecadaatributoretornado

TESTEAUTOMATIZADOREST- EXERCÍCIO2ObterumaPessoapeloID

Page 28: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Criarumnovopacoteemsrc/main/java chamadotdc.workshop.rest2. NestepacotecriarumaclassechamadaPessoa3. Adicionarosatributos,construtoremétodos abaixo

TESTEAUTOMATIZADOREST- EXERCÍCIO3CriarumanovaPessoa

Page 29: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. AdicionarummétododetestechamadotesteInserirPessoa2. EfetuarumPOSTpassandoosdadoscomoJSON pelabody3. Validar os valores deatributo dapessoa cadastrada

TESTEAUTOMATIZADOREST- EXERCÍCIO3CriarumanovaPessoa

Page 30: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. AdicionarummétododetestechamadotesteAlterarPessoa2. EfetuarumachamadaPUTparaperson/{id}einformeumIDconhecido3. Adicionar ocontentType como JSON einformar na bodyumnovonome

TESTEAUTOMATIZADOREST- EXERCÍCIO4AlterarumaPessoa

Page 31: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. AdicionarummétododetestechamadotesteRemoverPesspa2. EfetuarumachamadaDELETEparaperson/{id}einformeumIDconhecido3. Validar oretorno dostatus como true

TESTEAUTOMATIZADOREST- EXERCÍCIO5RemoverumaPessoa

Page 32: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

PROBLEMADOTESTEMANUALWEB

5 5

2

7

10

3

1

Ciclo1 Ciclo2 Ciclo3 Ciclo4

Núm

erode

Fun

cion

alidades

1semana 1semana 1semana

Funcionalidadeexistente NovaFuncionalidade

Page 33: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

CriarumanovaPessoa

Passos1. ClicarnobotãoAdicionar2. Preencherosseguintescampos

• Nome:<seunome>• Endereço:<suacidade>• Hobbies:<seuhobbie>

3. ClicarnobotãoSalvar

ResultadosEsperados1. Voltarparaalistagemdepessoas2. Apresentarapessoainseridana

listagem

CENÁRIOTESTEWEB

PesquisarumaPessoa

Passos1. Preencherocampo”Pesquisar…”

comoNomecadastradoanteriormente

ResultadosEsperados1. Apresentarapenasa

linha/registroreferenteaonomepesquisado

Page 34: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Parainteragircomoselementosdeve-mosconhecê-los,logodevemosinspeciona-losparadescobrirosseusatributoseaformacomqueiremosidentificá-losnoscript

OsbrowsersmaismodernospossuemafuncionalidadedeinspecionarelementosHTML,queéapráticadedescobrirocódigo-fonteespecificamentedeumelemento.

NósusaremosoFirebug,quepodeserextensívelatravésdeplugins paranosajudaralocalizaralgunselementos

PodemosabriroFirebug pelomenuTools ->WebDeveloper ->Firebug ->OpenFirebug ouclicandonoíconedatoolbar

INSPECIONANDOELEMENTOS

Page 35: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Parainspecionarcliquenobotãodeinspeçãoeapóscliquenoelementoquevocêdesejainspecionar

INSPECIONANDOELEMENTOS

Botãodeinspeção

Page 36: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

OSeleniumWebDriveré uma APIparainteração comelementos webem umbrowser,simulando asmesmasações deusuário

http://seleniumhq.org

AUTOMAÇÃOWEB

Page 37: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

OSelenium baseia-seemtrêsprincípiosbásicosparaautomaçãoweb:

– Navegação:aberturadobrowser,acessoapáginasecontroledenavegação

– Interrogação:identificaçãodeumelemento

– Manipulação:interaçãocomoelemento(clicks,preenchimentos,etc…)

AUTOMAÇÃOWEB

Page 38: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Navegação

OpontodepartidaparaautilizaçãodoWebDriver éaclasseWebDriver,quequandoinstanciadajáabreobrowser(driver)referenciado

Jáanavegaçãoàumapáginaéfeitapelocomandoget()

AUTOMAÇÃOWEB

Page 39: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Criarumpacotechamadotdc.workshop.web napastasrc/test/java2. CriarumaJUnitTestCase chamadaAdicionarPessoaTeste3. AlteraonomedométododetesteparatesteAdiconarPessoa()4. Desenvolveramesmaclassedescritaabaixo5. Executeoscript(MenuRun ->Run)oucliqueem

ResultadosEsperados1. AbriroFirefox eacessar apáginadoWorkshop

AUTOMAÇÃOWEB- EXERCÍCIO1CriaraEstruturaeNavegação

Page 40: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Interrogação

AinterrogaçãoéaformacomqueoWebDriver iráencontraroselementosnatela.IssoéfeitoatravésdométodofindElement()

Estemétodorecebecomoparâmetroaformadelocalizar(estratégia)

AUTOMAÇÃOWEB

By.id Localiza oelementopeloatributoid

By.name Localizaoelementopeloatributo name

By.tagName Localizaoelemento porumatag

By.linkText Localizaoelemento pelonomedolink

By.partialLinkText Localiza oelementopelonomeparcialdolink

By.cssSelector LocalizaoelementoporCSSSelector

By.className Localizaoelementopeloatributoclass

By.xpath Localizaoelementoporxpath

driver.findElement(By.estrategia)

Page 41: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Manipulação

Apósterencontradooelementoqueiremosinteragiréprecisoinformalqualotipodeinteração

AUTOMAÇÃOWEB

Interação Descrição

click() Efetuaumcliquenoelemento

clear() Limpaumelemento dotipotextoousimilar

sendKeys() Digitaemumelemento dotipotextoousimular

getText() Pegaotextode umaelemento

Page 42: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Localizandoporid ouname

SãosempreosprimeirosquedevemosidentificarnoHTML

ExemplonoHTML:––

AUTOMAÇÃOWEB

idname

Page 43: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

LocalizandocssSelector

Formadelocalizaçãoquandonãopossuímosid ouname.Podemosutilizá-loatravésdeaidentificaçãodeumaclasseCSSoumesmoporatributosevaloresdeumelemento

Exemploporatributoevalor

Exemplopelaclassecss

AUTOMAÇÃOWEB

Page 44: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. ClicarnobotãoAdicionar2. Preencherosseguintescampos:

– Nome:<seunome>– Endereço:<seuendereco>– Hobbies:<seuhobbie>

3. ClicarnobotãoSalvar4. Executeoscript

AUTOMAÇÃOWEB- EXERCÍCIO2InterrogareInteragircomelementos

ResultadosEsperados1. Redirecionarapáginaparaalistade

pessoas,comapessoacadastradapresentenalista

Page 45: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Validaçãodosdados

Precisamosvalidarosresultadosesperadoseexisteduasformas:– Garantindooretornodeverdadeiro/false– Garantindoaigualdadedeinformações

assertTrueGarantequealgoqueestamosprocurandoéverdadeiro

assertEqualsGarantequeduasinformaçõessãoiguais

AUTOMAÇÃOWEB

Page 46: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Pegueocódigo-fontedapáginaeo

coloqueemumavariável2. InsiraumassertTrue paracadaitem:

• Nome• Endereco• Hobbie

3. Executeoscript

AUTOMAÇÃOWEB- EXERCÍCIO3Validarosdadosinseridos

ResultadosEsperadosValidaçãodetodosositensefetuadacomsucesso(nãoapresentarerrosnaexecução)

Page 47: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

FechandooBrowser

Érecomendadoquefechamosobrowserapósaexecuçãodetesteporváriosmotivos:

1. Paranãogerarefeitoscolateraisnaexecuçãodoteste2. Paraqueocachenãointerfiraemalgumteste3. Paranãoocuparmemórianamáquinadeexecuçãodeteste

driver.quit()Fechaobrowser,encerrandoqualquerjanelaabertapelaautomação

AUTOMAÇÃOWEB

Page 48: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Esperas

ExistemduasformasdeesperanoWebDriver:

– Implícita:apenasumcomandonoiníciodaaberturadobrowserfazcomqueocorraumaespera,portempodeterminado,porqualquerelementoqueestamosinteragindo

– Explícita:colocamosumcomandoparacadaesperanecessáriaantesdainteraçãodoelemento

NósusaremosaesperaExplicitaporumdosprincipaisfatos:saberexatamenteondetermosqueesperarporalgumelementoparaseguirinteragindocomosdemais

AUTOMAÇÃOWEB

Page 49: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EsperaExplícita

OpontoinicialdaesperaExplícitaéaclasseWebDriverWait,quetrazumaespera“global”paraoscriptdeteste.

Otempodeesperaéumaesperadotipo”até”.Ex:secolocamos30segundosdeespera,eoelementofoiapresentadoem4segundos,eleseguiráaexecuçãoaoinvésdeaguardarosoutros26segundosrestantes

AUTOMAÇÃOWEB

Necessitadodriver/browseratual

Tempodeespera

Page 50: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EsperaExplícita

Ométodomaiscomumdeutilizaçãoéountil

Ligamosountil aumaExpectedConditions queeumaclasseestáticaquepossuiumasériedemétodosprontosdeespera

AUTOMAÇÃOWEB

Umdosmétodosdeespera Elementoqueseráaguardado

Page 51: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

EsperaExplícita

Utilizamos,nagrandemaioriadasvezes,umadasduasExpectedConditions abaixo:

– presenceOfElementLocatedQuandooelementonãoexistenoHTML,elogoumaaçãoéexecutadaeleéinserido

– visibilityOfElementLocatedQuandooelementoexistenapágina,masestáinvisível

AUTOMAÇÃOWEB

Page 52: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOWEB

Page 53: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. EfetueumapesquisanacaixaPesquisar

comoseunome2. Aguardeoelementodatabelareferente

aonomeaparecer3. Validetodososdadosapresentados:

• Nome• Endereco• Hobbie

4. Executeoscript

AUTOMAÇÃOWEB- EXERCÍCIO4Adicionarumaesperaaoscript

ResultadosEsperadosValidaçãodetodosositensefetuadacomsucesso(nãoapresentarerrosnaexecução)

Page 54: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Você já deve ter feito os passos daspré condições desteworkshop,masvalelembrar oqueé necessário paraautomatizaruma app:

– Arquivo .apk ou acesso ao código-fonte daapp– AndroidSDKcom:

• Tools• Build-tools• Platform-tools• SDKPlatforma daversão escolhida• Processador daversão escolhida (ARMou Intel)

– Emulador ou dispositivo real– Ferramenta deautomação deteste

TESTEPARAANDROID

Page 55: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Abrimos oemulador comocomando android avdEle dá apossibilidade decriar umnovoemulador ou iniciá-lo

ABRINDOOEMULADOR

android avd

Page 56: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

INSTALAÇÃODOAPP

DescobrindoonomedodispositivoÉnecessáriosaberonomedodispositivoparainstalaraapp.Ocomandoadb devices exibeonomedodosdispositivosconectadosnasuamáquina(emuladoresoureais)

comando

nomedodispositivo

adb devices

Page 57: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

INSTALAÇÃODOAPP

InstalandooappOcomandoadb install nome_app.apk é quem efetua ainstalação daapp.É necessário ou estar nodiretório daappou informar ocaminho

comando

adb install nome_app.apk

adb install C:\apps\nome_app.apk

Page 58: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

INSPECIONANDOCOMPONENTES

Há uma ferramenta chamada uiautomatorviewer queinspecionaos componentes eseus atributos deformasemelhante ao Firebug

Parainiciá-loclicamos digitamos oseguinte comando noPromptdeComando

uiautomatorviewer

Page 59: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

INSPECIONANDOCOMPONENTES

Botão decapturadatela

Árvore decomponentes

Componenteselecionado

Atributos evalores docomponenteselecionado

Page 60: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

Appium éumaferramentaopensource paraautomatizar:– AplicaçõesmobilenativasouhíbridasparaiOS,Android– AplicaçõeswebmobileparaosbrowsersnativosdoiOS,Android ouGoogleChrome

http://appium.io

Page 61: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

PassosHáquatropassosbásicosparaacriaçãodescriptsdetesteparamobilecomAppium:

1. InformaraAPPeCriaraDesiredCapability2. Abriraconexãocomodispositivo3. Localizareinteragircomcomponentes4. Validarosresultadosesperados

Page 62: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

1.InformaraAPPeCriarDesiredCapabilityElaéresponsávelporinformardadosgeraissobreoquevamostestareonde (capacidades)

AAPPé inseridaatravésdaclasseFile(java.io)

ÉnecessárioinstanciaraclasseDesiredCapabilities()

Depoisénecessárioinformarascapacidades

Page 63: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Criarumapastachamaapp naraizdoprojeto2. Copiaroarquivoworkshop.apk paraapastaapp3. Criarumpacotechamadotdc.workshop.mobile napastasrc/test/java4. CriarumaJUnitTestCase chamadaAdicionarPessoaTeste5. AlteraonomedométododetesteparatesteAdiconarPessoa()6. Desenvolveramesmaclassedescritaabaixo

AUTOMAÇÃOMOBILE- EXERCÍCIO1CriaraEstruturaeDesiredCapabilities

Page 64: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

2.AbriraConexãocomoDispositivoDepoisqueinformamosascapacidadesprecisamosabriraconexãocomodispositivoparaqueelepossareceberoscomandos.

AprimeiraaçãoéconfiguraroAppium.app paraisso.

Page 65: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. AbriroAppium.app2. Cliquenobotão AndroidSettings3. Marqueaopção DeviceNameeinsira otexto ”AndroidEmulator4. Cliquenobotão GeneralSettings5. Marqueaopção OverrideExistingSessions6. Cliquenobotão Launch

AUTOMAÇÃOMOBILE- EXERCÍCIO2Configurar oAppium.app

Page 66: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

2.AbriraConexãocomoDispositivoAgoraprecisamosadicionarocódigoparaabriraconexãoviaAndroid.

UmlembretequeaURLdeconexão,nonossocaso,élocaleaportaéaconfiguradanoAppium.AindanaURLhásempreocontexto/wd/hub

Page 67: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Inserirotrechodecódigoabaixoantesdo”}”2. AofinaldadigitaçãocoloqueomousesobreotrechodotextoULR,aguarde

ummomentoeselecioneAdd throws declaration

AUTOMAÇÃOMOBILE- EXERCÍCIO3Abrir aConexão comoDispositivo

Page 68: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos3. Ocódigo finaldeve ficar como oabaixo

AUTOMAÇÃOMOBILE- EXERCÍCIO3Abrir aConexão comoDispositivo

Page 69: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

3.LocalizareInteragircomosComponentesComooAppium ébaseadonoSeleniumWebDriver todososcomandosdeinterrogação(localizar)emanipulação(interagir)sãoidênticos.

Masalgumasformasdelocalização são suportadas noAndroid:

Page 70: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. ComaAPPabertanoemuladorabreouiautomatorviewer2. InspecioneosseguintescamposefaçaainteraçãonecessáriasomenteatravésdeID

1. Cliquenobotão+(adicionar)2. PreenchaocampoNome3. PreenchaocampoEndereço4. PreenchaocampoHobbies5. CliquenobotãoSalvar6. CliquenobotãodePesquisar7. Digiteo”Nome”inseridoepareporaqui:-)

• LembrandoqueoIDétodoovalorcontidonoresource-id

AUTOMAÇÃOMOBILE- EXERCÍCIO4Localizar eInteragir comos Componentes

Page 71: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

4.ValidarosResultadosEsperadosTambém é damesma formaqueocorre noSeleniumWebDriverutilizando alguma ferramenta detesteunitário.

Mas,na grande maioria doscasos,utilizaremos somente oassertEquals

Page 72: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. ComaAPPabertanoemuladorabreouiautomatorviewer2. Inspecioneonomedalistaquefoifiltradopelapesquisa3. AtribuaotextodoelementoaumaString4. ValideoresultadocomoassertEquals

AUTOMAÇÃOMOBILE- EXERCÍCIO5Validar os Resultados Esperados

Page 73: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

FinalizaçãoParasaberexatamentequandoaexecuçãoterminou,fecharaapp etambémevitarproblemascomsessãoinserirocomandodriver.quit()paraencerraraexecuçãodotesteeofechandodaapp.

SeaspróximasexecuçõesfalharemlogonoinícioénecessáriopararoAppium.app einicia-lonovamente.

Page 74: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. Adicionarocódigoabaixoparaafinalizaçãodaapp2. ExecutarotestepeloEclipse3. VisualizarseoresultadodoJUnit apresentasucesso

ResultadoEsperado1. Testefalharpornão conseguir localizar obotão +(Adicionar)

AUTOMAÇÃOMOBILE- EXERCÍCIO6Finalizar oteste

Page 75: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

AUTOMAÇÃOCOMAPPIUM

Porqueobotãonãofoilocalizadopeloscript?Sevocêexecutarnovamenteoscriptverásqueosdadosecamposdemoramumpoucoparaseremapresentados.Issosedevearequisiçãoaoservidorparaobterosdados.

Logoprecisamosdeesperarporalgumacoisanatelaparaqueoscriptpossaseguir.

ComooAppium ébaseadonoSeleniumWebDriver asesperassãoasmesmas.

SempreusaremosaesperaatravésdaclassedesuporteExpectedConditions utilizandoométodopresenceOfElementLocated

Page 76: AB Workshop Automacao REST Web Mobile - schd.wsschd.ws/hosted_files/agilebrazil2016/a1/AB_Workshop_Automacao_REST...... criação relativamente demorada mas muito rápido para executar

Passos1. AdicionaaclasseWebDriverWait logoapósoAndroidDriver2. Insiraumaesperaexplícitaparaobotão+(Adicionar)

ResultadoEsperado1. Registroadicionadoetesteexecutadocomsucesso

AUTOMAÇÃOMOBILE- EXERCÍCIO7Inseriraesperapelobotão+(Adicionar)