Automação mobile com calabash
-
Upload
josenildo-amorim -
Category
Software
-
view
69 -
download
2
Transcript of Automação mobile com calabash
Automação mobile com CalabashGrupo de Testes Carioca + Meetech
Josenildo Amorim- 6 anos de QA - Foco recente em automação - Agilismo é vida!- QA para ajudar a fazer o melhor produto
Afinal, o que o mobile tem de diferente?
Fragmentaçãoi see versions… everywhere!
Tamanhos de tela
Galaxy S5 vs iPhone 5S
size matters !
mas parece que o jogo virou...
Tá, e como eu automatizo isso?
Calabash
- Criado pela LessPainful, comprado pela Xamarin
- Open source- Cross plataform- Testes escritos em Ruby- Cucumber
Calabash Android
Arquitetura Android
Calabash Android: Passo a Passo
- Gerar Apk (Android Studio/Terminal)- Assinar Apk para criação do test
server- Conectar device/simulator- Executar especificações
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
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
Calabash iOS
(em alguns casos, calabash cucumber)
Arquitetura iOS
Calabash iOS: Passo a Passo
- Configurar projeto no Xcode- Gerar App com target do Calabash
(Xcode/ Terminal)- Verificar device/simulator conectados- Executar especificações
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.
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)
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
Debugar é preciso!
Debugando
- Elementos para interagir com o app- Query- Console em Ruby- Acesso aos métodos que você escreveu- Resolução de erros
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
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
Estrutura do
projeto
Arquitetura de Projeto em 3 camadas
Screen
Steps
FeatureCucumber
Ruby
Ruby
Feature
Especificação da funcionalidade, composta por Contexto, Cenários e Passos.
Steps
Automação dos passos presentes nos cenários da feature.
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.
Conhecendo o sunomono
Não é esse (mas é bom também)
- Monta a estrutura básica do projeto- Possui métodos base- Cross plataform- Scripts para facilitar os builds- Aceitamos PRs :)
Sunomono
Dúvidas?
Links- Site oficial do Calabash- Github calabash android- Github calabash iOS- Github sunomono
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