automação mobile com calabash
TRANSCRIPT
![Page 1: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/1.jpg)
Automação mobile com CalabashGrupo de Testes Carioca + Meetech
![Page 2: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/2.jpg)
Josenildo Amorim- 6 anos de QA - Foco recente em automação - Agilismo é vida!- QA para ajudar a fazer o melhor produto
![Page 3: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/3.jpg)
Afinal, o que o mobile tem de diferente?
![Page 4: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/4.jpg)
Fragmentaçãoi see versions… everywhere!
![Page 5: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/5.jpg)
Tamanhos de tela
Galaxy S5 vs iPhone 5S
size matters !
mas parece que o jogo virou...
![Page 6: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/6.jpg)
Tá, e como eu automatizo isso?
![Page 7: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/7.jpg)
Calabash
![Page 8: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/8.jpg)
- Criado pela LessPainful, comprado pela Xamarin
- Open source- Cross plataform- Testes escritos em Ruby- Cucumber
![Page 9: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/9.jpg)
Calabash Android
![Page 10: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/10.jpg)
Arquitetura Android
![Page 11: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/11.jpg)
Calabash Android: Passo a Passo
- Gerar Apk (Android Studio/Terminal)- Assinar Apk para criação do test
server- Conectar device/simulator- Executar especificações
![Page 12: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/12.jpg)
Assinar APK calabash-android resign <apk>
Gerar APK Android Studio
./gradlew assembleDebug (mac/linux)gradlew.bat (windows)
Conectar devices/simulator device em modo depuração (adb)
emulator -avd <nome_do_emulator> OU Android Studio
![Page 13: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/13.jpg)
Executar especificaçõesDeve estar dentro do diretório onde estão as featuresApenas um device conectado:
calabash-android run <seu-apk> -p android
Mais de um device conectado:
ADB_DEVICE_ARG="id-do-device" calabash-android run <seu-apk> -p android
![Page 14: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/14.jpg)
Calabash iOS
(em alguns casos, calabash cucumber)
![Page 15: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/15.jpg)
Arquitetura iOS
![Page 16: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/16.jpg)
Calabash iOS: Passo a Passo
- Configurar projeto no Xcode- Gerar App com target do Calabash
(Xcode/ Terminal)- Verificar device/simulator conectados- Executar especificações
![Page 17: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/17.jpg)
Configurando o projeto no Xcodecalabash ios setup - Cria uma nova configuração de build com o calabash.framework. Deve ser executado dentro do diretório do projeto iOS
-cal Target - Uma cópia do target original gerado pelo passo anterior. O build para teste deve ser feito nesse target.Fique atento, pois novas funcionalidades feitas pelos devs ios devem ser linkadas a esse target também, senão o build irá falhar.
![Page 18: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/18.jpg)
Gerar App XCode
xcodebuild - workspace <caminho-do-workspace> -scheme <target-cal> -destination <simulator> -
configuration <build-config>Verificar devices/simulator conectados
xcrun simctl -list (simulator)ios-deploy -c (device)
![Page 19: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/19.jpg)
Executar especificaçõesDeve estar dentro do diretório onde estão as featuresEm simuladores:
APP_BUNDLE_PATH='<caminho-para-app>' DEVICE_TARGET='<id-simulador>' cucumber -p ios
Em devices (deve estar na mesma rede que o mac):
APP_BUNDLE_PATH='<caminho-para-app>' DEVICE_TARGET='<id-device>'
DEVICE_ENDPOINT="<http://ip-do-device:37265>"cucumber -p ios
![Page 20: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/20.jpg)
Debugar é preciso!
![Page 21: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/21.jpg)
Debugando
- Elementos para interagir com o app- Query- Console em Ruby- Acesso aos métodos que você escreveu- Resolução de erros
![Page 22: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/22.jpg)
DebugandoIniciando o console:
calabash-android console <apk>
APP_BUNDLE_PATH='.app/ipa' DEVICE_TARGET='id-device' DEVICE_ENDPOINT ="http://ip-do-device:37265" calabash-ios
console
e em seguida, iniciar a aplicação pelo console..
start_test_server_in_background
![Page 23: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/23.jpg)
Exemplos de consultas no consolequery "* id:'seu id'" <= Retorna os elementos ao id correspondente
query "* marked:'texto ou id'" <= Retorna os elementos ao texto/id correspondente
query "* id:'seu id'", :text <= Retorna o texto do elemento
result = query "* id:'seu id'" <= Adiciona o resultado a uma variável
query "*", :someMethod <= Acessa um método específico como :getError
query "* {text CONTAINS[c] 'text'}" <= Retorna qualquer string que tiver o texto da query
query "* id:'seu id' index:seu index" <= Retorna o elemento pelo index
![Page 24: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/24.jpg)
Estrutura do
projeto
![Page 25: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/25.jpg)
Arquitetura de Projeto em 3 camadas
Screen
Steps
FeatureCucumber
Ruby
Ruby
![Page 26: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/26.jpg)
Feature
Especificação da funcionalidade, composta por Contexto, Cenários e Passos.
![Page 27: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/27.jpg)
![Page 28: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/28.jpg)
Steps
Automação dos passos presentes nos cenários da feature.
![Page 29: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/29.jpg)
![Page 30: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/30.jpg)
Screen
Abstração de uma tela Android/iOS, na forma de uma classe ruby, contendo os elementos que serão utilizados no momento da execução da especificação.
![Page 31: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/31.jpg)
![Page 32: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/32.jpg)
Conhecendo o sunomono
![Page 33: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/33.jpg)
Não é esse (mas é bom também)
![Page 34: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/34.jpg)
- Monta a estrutura básica do projeto- Possui métodos base- Cross plataform- Scripts para facilitar os builds- Aceitamos PRs :)
Sunomono
![Page 35: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/35.jpg)
Dúvidas?
![Page 36: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/36.jpg)
Links- Site oficial do Calabash- Github calabash android- Github calabash iOS- Github sunomono
![Page 37: Automação mobile com calabash](https://reader036.vdocuments.site/reader036/viewer/2022062316/58f2b3c71a28ab81068b4597/html5/thumbnails/37.jpg)
www.concretesolutions.com.br
Rio de Janeiro – Rua São José, 90 – cj. 2121Centro – (21) 2240-2030
São Paulo - Av. Nações Unidas, 11.541 3º andar - Brooklin - (11) 4119-0449
Ajudamos empresas a criar produtos digitais de sucesso