Calabash Android Tutorial da Ferramenta de Teste
⚡ Resumo Inteligente
Calabash é uma estrutura de teste de aceitação de código aberto que simula ações reais da interface do usuário em Android e aplicativos iOS, usando linguagem simples. Cucumber cenários baseados em definições de passos em Ruby e um servidor de testes no dispositivo.
O que é a Calabash?
Calabash é uma aceitação de código aberto Testes framework que permite escrever e executar testes para iOS e Android Apps.
É um framework de interface de usuário automatizado que permite escrever testes em Ruby usando Cucumber.
Calabash Funciona habilitando interações automáticas da interface do usuário em um aplicativo móvel, como pressionar botões, inserir texto, validar respostas, etc. Pode ser configurado para ser executado em diferentes dispositivos. Android e dispositivos iOS, que fornecem feedback e validações em tempo real.
⚠️ Nota de versão: Microsoft encerrou suas contribuições para Calabash após o iOS 11 final e Android 8 lançamentos, e o repositório calabash-android Agora se descreve como um projeto em busca de um mantenedor. O passo a passo abaixo foi mantido como estava, e as alternativas modernas são abordadas na última seção.
Porque Calabash Automação?
Antes de instalar qualquer coisa, é útil avaliar o que a estrutura oferece em comparação com o custo de manutenção.
| Vantagens | Desvantagens |
| Ajuda a aumentar o rendimento/produtividade. | É necessária proficiência para escrever os scripts de teste de automação. |
| Melhor qualidade ou maior previsibilidade da qualidade | A depuração do script de teste é um problema importante. |
| Maior robustez (consistência) de processos ou produtos. | A manutenção do teste é cara no caso de métodos de reprodução. |
| Maior consistência da produção e redução de custos e despesas trabalhistas | A manutenção dos arquivos de dados de teste será difícil se o script de teste testar mais telas |
Calabash e BDD
- Calabash is Desenvolvimento orientado para o comportamento (BDD)É o mesmo que Desenvolvimento Orientado a Testes (TDD)Mas, em vez de criar testes para descrever o formato das APIs, o comportamento da aplicação é especificado.
- O BDD é um processo no qual múltiplas partes interessadas contribuem para criar um entendimento comum sobre o que deve ser construído.
- O BDD é útil na construção do software certo e no design da perspectiva do proprietário da empresa.
O diagrama abaixo mostra como um Calabash O conjunto de funcionalidades é estruturado em camadas, desde o arquivo de recursos legível para a área de negócios no topo até a interação com o dispositivo na base.
Como instalar Calabash
Calabash on Windows É necessário instalar quatro pré-requisitos na ordem correta. Conclua cada etapa completamente antes de iniciar a próxima, pois a gem calabash-android verifica a presença do Ruby e do... Android SDK durante a instalação.
Parte I) Instalar Java JDK – Consulte este guia – /instalar-java.html
Parte II) Baixe e instale Ruby.
Passo 1) Baixe o Ruby do URL https://rubyinstaller.org/downloads
Passo 2) Abra o arquivo .exe e siga as instruções na tela. Após a conclusão da instalação, você verá a seguinte tela. Clique em Concluir.
Inicie o prompt de comando com Ruby ativado Windows 10 e digite abaixo do comando.
ruby -v
O console exibe a versão do interpretador instalada, conforme mostrado abaixo.
Parte III) Baixe e instale Android
Etapa 1) Baixar Android Studio at https://developer.android.com/studio
Passo 2) Abra o arquivo .exe, siga as instruções na tela e conclua a instalação. Clique no botão Concluir quando terminar.
Parte IV) Instalar Calabash Android
Passo 1) No console, digite `gem install calabash-android`. A instalação será iniciada e levará algum tempo para ser concluída.
Passo 2) Após a instalação, digite calabash-android version
A estratégia inovadora da Calabash
Com a gem instalada, a próxima tarefa é localizar a pasta do framework e entender a estrutura básica que a acompanha.
Abra a pasta “calabash-android-0.9.0”. Ele reside no caminho C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Os nomes das pastas mudarão em sincronia com a versão ruby/calabash que você instalar em sua máquina.
Abra a pasta do esqueleto do recurso. Fique atento a esta estrutura básica.
- O arquivo *.feature contém cenários que iremos automatizar.
- O método usado pelo arquivo de recurso está escrito no arquivo *.rb dentro da pasta “step_definitions”.
- Métodos comuns, configuração de ambiente, instalação de aplicativos e ganchos devem ser colocados na pasta “suporte”.
Renuncie e construa o aplicativo
- Calabash-android resign *.apk
- Calabash-Android build *.apk
A assinatura do desenvolvedor é substituída por uma chave de depuração para que o servidor de testes possa instrumentar o aplicativo, e a etapa de compilação gera esse servidor de testes, conforme mostra a saída do console abaixo.
Conecte o dispositivo ao sistema/Abra o emulador
Verifique o dispositivo conectado. Digite o comando
adb devices
A lista de dispositivos conectados deve ser exibida. Se o dispositivo estiver ausente, siga as etapas de depuração e emparelhamento USB em Guia de conexão ADB Resolve a maioria dos casos.
Como Encontrar o Localizador de Elementos
- Abra o console. Digite o comando.
calabash-android console "APK Path" start_test_server_in_background
- O comando acima inicia o aplicativo no dispositivo. Para encontrar o localizador de elemento, use o seguinte comando.
query "*"
Isso exibirá todos os localizadores de elementos na tela atual. Os testadores que preferirem um inspetor visual podem verificar a mesma hierarquia com uiautomatorviewer.
Calabash Estrutura do projeto e etapas predefinidas
Em vez de copiar a pasta gem manualmente, o framework pode gerar um projeto funcional para você. Executar o gerador dentro do diretório do seu projeto cria o projeto padrão. Cucumber layout que todo Calabash suíte espera.
calabash-android gen
A árvore gerada separa as três preocupações de um conjunto de ferramentas BDD:
- características/ — os cenários do Pepino, um .recurso arquivo por jornada do usuário.
- recursos/definições_de_etapas/ — os métodos Ruby que correspondem a cada linha Gherkin, incluindo o arquivo calabash_steps.rb incluído.
- recursos/suporte/ — configuração do ambiente e os mecanismos que instalam, iniciam e encerram a aplicação em todos os cenários.
O arquivo calabash_steps.rb incluído é mais importante do que parece à primeira vista. Ele fornece um grande conjunto de passos em inglês prontos para uso, permitindo que um primeiro cenário pressione botões, insira texto e verifique strings visíveis antes mesmo de se escrever um único método personalizado. Passos personalizados só são necessários quando uma jornada se torna mais complexa do que essas frases predefinidas.
É importante conhecer duas configurações de nível de projeto logo de início. Por padrão, as capturas de tela são salvas no diretório de trabalho atual, e a variável de ambiente SCREENSHOT_PATH as redireciona para outro local, o que mantém os artefatos de compilação organizados em uma máquina compartilhada. A interação com diálogos do sistema ou outro aplicativo requer o backend UIAutomator2, iniciado com start_test_server_in_background(with_uiautomator: true).
Criando Novos Scripts
Abra o arquivo de recurso e as seguintes linhas
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
Abra o arquivo de definição de etapa e defina o método no arquivo *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Execute o projeto de teste
Para executar o projeto de teste, use o comando abaixo
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Imprime cada etapa à medida que é executada, e uma execução bem-sucedida termina com o cenário e os totais de etapas mostrados aqui.
comum Calabash Erros e como corrigi-los
A maioria das falhas na primeira execução decorre das regras de empacotamento e permissão das quais o servidor de teste depende, e não do cenário em si. A tabela abaixo relaciona os sintomas relatados com mais frequência às suas causas documentadas.
| Sintoma | Causa provável e solução |
| O aplicativo trava assim que um teste começa. | O APK não possui a permissão android.permission.INTERNET, necessária para que o servidor de testes aceite comandos. Declare a permissão em AndroidManifest.xml e reconstrua. |
| Os botões e o texto não respondem aos toques. | Nenhuma versão do SDK de destino foi declarada. Adicione uma entrada uses-sdk especificando o nível do SDK usado na compilação do aplicativo. |
| O servidor de teste não consegue se conectar ao aplicativo. | O APK não foi assinado novamente com a chave de depuração. Execute o comando de assinatura e, em seguida, compile novamente antes de executar. |
| Nenhum dispositivo é listado em tempo de execução. | A depuração USB está desativada ou o driver está faltando. Primeiro, verifique se o número de série aparece na saída do comando `adb devices`. |
| As etapas falham com um erro de etapa indefinida. | A redação em Gherkin não corresponde a nenhuma expressão regular em step_definitions. Copie o trecho sugerido. Cucumber imprime e implementa. |
Duas entradas no manifesto corrigem as duas primeiras linhas. Adicione-as antes de assinar novamente o APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
As falhas de tempo limite geralmente são ambientais, e não funcionais. Um emulador lento, a inicialização a frio de um aplicativo ou uma sincronização em segundo plano podem fazer com que uma tela ultrapasse o tempo limite definido em `wait_for`, portanto, aumente o tempo limite antes de reescrever uma etapa que estava correta.
Is Calabash Ainda em manutenção? Alternativas para testes modernos em dispositivos móveis
Calabash Não está mais sendo desenvolvido ativamente. Microsoft parou de contribuir após dar suporte à versão final do iOS 11 e Android O projeto já teve 8 versões lançadas e agora é uma base de código aberto arquivada, sem um mantenedor. Os conjuntos de testes existentes ainda funcionam em dispositivos mais antigos, mas é necessário iniciar um novo trabalho em uma estrutura com suporte.
| Quadro | Plataforma | Melhor adequado para |
| Appium | Android e iOS | Suítes multiplataforma em Java, PythonRubi ou JavaScript, e o substituto mais próximo para um Calabash . |
| Espresso | Android só | Testes rápidos em processo escritos em Kotlin ou Java pelos próprios desenvolvedores do aplicativo. |
| Teste XCUIT | Apenas iOS | Nativo Xcode suítes, a sucessora apoiada da aposentada Framework UIAutomation. |
| Maestro e Desintoxicação | Android e iOS | Novos projetos de código aberto voltados para resistência a lascas de memória e aplicações React Native. |
O próprio hábito BDD é transferido sem problemas. Os arquivos de recursos Gherkin permanecem exatamente como estão, e apenas os corpos de definição de etapas são alterados, porque Cucumber fica acima do driver, em vez de dentro dele. As equipes que migram geralmente mantêm os arquivos de recursos e reescrevem as etapas em Ruby com base neles. Appiume reutilizar o mesmo teste móvel matriz de dispositivos e teste de automação oleoduto que eles já executam.
















