Calabash Android – Começando um projeto

Neste post, falaremos sobre a criação de um projeto utilizando Calabash Android e como configurar o aparelho celular para executar os testes.

Caso você não tenha o Calabash Android instalado em seu computador, leia o nosso post Calabash Android – Instalação Parte 1 e Parte 2 e siga o passo a passo.

Organização dos arquivos

1. Apk, jks, keystore_location, keystore_password e keystore_alias

O primeiro passo é criar a pasta para o projeto no diretório que desejar. Dentro da pasta, é necessário salvar o arquivo de extensão .apk e o arquivo de extensão .jks. O arquivo.apk é o aplicativo no qual os testes serão executados. O arquivo.jks e as informações referentes à  keystore_location, keystore_password e keystore_alias devem ser solicitados aos desenvolvedores do projeto.

Aqruivos .jks e .apk

Aqruivos .jks e .apk

 

2. calabash_settings

Com todas as informações anteriores em mãos, abra o CMD dentro da pasta que contém os arquivos .apk e .jks (shift + botão direito do mouse).

Abrindo o CMD direto na pasta

Abrindo o CMD direto na pasta

 

Execute a linha de comando calabash-android setup. Primeiro, insira a keystore_location (arquivo.jks). Depois, insira o password e depois o keystore_alias.

Calabash settings

Criando o arquivo calabash settings

 

Será criado o arquivo .calabash_settings.

Arquivo calabash_settings

Arquivo calabash_settings

 

Para verificar as informações, abra o arquivo utilizando algum editor de texto. As informações contidas no arquivo podem ser alteradas manualmente.

Informações do arquivo calabash_settings

Informações do arquivo calabash_settings

 

3. test_servers

Verificadas as informações no arquivo .calabash_settings, execute as seguintes linhas de comando, nessa ordem.

– calabash-android resign nomeDoApk.apk

– calabash-android build nomeDoApk.apk

Criando a pasta test_servers

Criando a pasta test_servers

 

Será criada a pasta test_servers.

Pasta test_servers

Pasta test_servers

 

4. features

Após verificar que o test server foi criado, execute a linha de comando calabash-android gen.

Ao aparecer a mensagem “Question”, dê Enter para confirmar a ação!

Criando a pasta feature

Criando a pasta feature

 

Será criada a pasta features. Nessa pasta, serão salvos os scripts de teste, com a extensão .feature. Dentro dessa pasta, há a pasta step_definitions, que contém o arquivo calabash_steps, onde os testes serão programados.

Pasta features

Pasta features

 

Agora o seu Calabash Android está configurado para criar os testes automatizados. Mas, antes de executar os testes, é preciso configurar o(s) aparelho(s) celular(es) em que os testes serão executados.


Configurando o aparelho celular

Para executar os testes do Calabash Android no aparelho celular, algumas configurações devem ser feitas. Não se preocupem, nenhuma delas altera o desempenho do aparelho.

1. Habilitar o modo desenvolvedor no aparelho

Para habilitar o modo desenvolvedor, vá em Configurações -> Sobre o telefone. Clique algumas vezes em Número da versão até aparecer uma mensagem informando que você agora é um desenvolvedor. Irá aparecer um novo item no menu.

Pode ser que, em alguns aparelhos, haja outro jeito de habilitar o modo desenvolvedor. Caso a maneira explicada nesse post não funcione em seu aparelho, pesquise como habilitar esse modo.

Modo desenvolvedor habilitado

Modo desenvolvedor habilitado

 

2.  Habilitar a depuração USB

Para ter um maior controle sobre o aparelho, habilite a depuração USB. Ao habilitar o modo desenvolvedor, um novo campo é ativado no menu Configurações do aparelho. Para ativar a depuração USB, vá em “Programador” ou “Opções do desenvolvedor”.

Ativar Depuração USB

Ativar Depuração USB

 

3.  Permitir fontes desconhecidas

Como o aplicativo não é da PlayStore, é preciso permitir a instalação de aplicativos de fontes desconhecidas. Vá em Configurações, Segurança e habilite o Fontes desconhecidas.

Ativar Fontes desconhecidas

Ativar Fontes desconhecidas

 

4. Adb devices

Conecte o aparelho celular no computador via cabo USB. Caso o driver não seja instalado, faça o download no site do fabricante. Abra o CMD e execute o comando adb devices. Serão listados os aparelhos conectados ao seu computador.

Verificando se o aparelho está conectado

Verificando se o aparelho está conectado

 

Pronto! Seu projeto está configurado para a criação dos cenários de teste. No próximo post, aprenderemos como inspecionar os elementos (tais como id’s, texts e etc.) necessários para a criação dos testes automatizados.

Bom fim de semana, pessoal!

Sobre o(a) autor(a)

Letícia Bomfin Ramos
Letícia Bomfin Ramos

Graduanda em Sistemas de Informação pela Pontifícia Universidade Católica de Minas Gerais, iniciando a carreira em 2012 como estagiária da Gerência de Homologação na Prodabel. Hoje, atua como Analista de Qualidade de Software na Take. Apaixonada pela area de qualidade de software, mobile, chatbots e automação de testes. Conquistou o 4º lugar e o prêmio Most Useful Test Report na etapa South America do Software Testing World Cup 2014, ao lado de Samantha (QA), André (QA) e Rhamon (PO).

9 comentários

Comente
    • Boa Tarde Tiago,

      Eu acredito que não, porque é preciso assinar o app para poder executar os testes pelo Calabash.

      • Oi Letícia, tenho a mesma dúvida do Tiago Oliveira. Conversando com um conhecido que trabalha com Calabash no Linux, me disse que não seria necessário ter o arquivo .jks.

        E creio realmente não ser. Veja, no meu caso, trabalho com uma empresa terceira que desenvolve os aplicativos, e eles somente nos liberam o .apk.

        Não consegui avançar a instalação a partir da parte do resign (calabash-android resign nomeDoApk.apk), creio ser por causa do tal arquivo .jks.

        Conhece alguma outra forma de prosseguir com a instalação sem o .jks?

        []s

        • Boa Tarde Carol,

          Eu nunca trabalhei automatizando aplicativo de terceiros e sempre tive acesso ao arquivo .jks. Todos os tutoriais que conheço utilizam esse arquivo também.
          Acho que esse link pode te ajudar, no item 2.
          Vou pesquisar mais sobre! 🙂

          • Entendi! Como te falei, nunca automatizei app de terceiros e sempre tive acesso ao .jks.
            Eu acredito que ele dependa sim do arquivo jks.

  • Se ajudar, este é o erro:


    C:\Users\cciola\cucumber (master)
    λ calabash-android resign busca_cep.apk
    WARN: Did not find ‘jarsigner.exe’ in any standard directory of ‘C:\Program Files\Java\jre1.8.0_101\bin’. Calabash will therefore take longer to load
    C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/helpers.rb:204:in `extract_signature_algorithm_name’: No signature algorithm names found: (RuntimeError)
    Alias name: meualiasname
    Creation date: Mon Jul 11 18:23:43 GMT 2016
    Entry type: keyEntry
    Certificate chain length: 1
    Certificate[1]:
    Owner: CN=carolciola, OU=qualidade, O=empresa, L=saopaulo, ST=saopaulobrasil, C=br
    Issuer: CN=carolciola, OU=qualidade, O=empresa, L=saopaulo, ST=saopaulobrasil, C=br
    Serial number: 5783e429
    Valid from: Mon Jul 11 18:23:37 GMT 2016 until: Fri Nov 27 18:23:37 GMT 2043
    Certificate fingerprints:
    MD5: 8A:08:3E:C2:AD:BE:0B:D0:D9:BE:77:0C:D7:17:E8:77
    SHA1: A0:32:75:C3:49:F8:A8:59:0F:47:11:36:19:F8:62:99:15:48:B7:A5
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/java_keystore.rb:42:in `initialize’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/java_keystore.rb:116:in `new’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/java_keystore.rb:116:in `keystore_from_settings’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/java_keystore.rb:95:in `get_keystores’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/helpers.rb:157:in `sign_apk’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/helpers.rb:118:in `block in resign_apk’
    from C:/Ruby/lib/ruby/2.2.0/tmpdir.rb:88:in `mktmpdir’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/lib/calabash-android/helpers.rb:112:in `resign_apk’
    from C:/Ruby/lib/ruby/gems/2.2.0/gems/calabash-android-0.8.0.pre1/bin/calabash-android:127:in `’
    from C:/Ruby/bin/calabash-android:22:in `load’
    from C:/Ruby/bin/calabash-android:22:in `’

    • Home prices are dropping around the country. And if you want to sell yours you most likely will have to find someone willing to take on debt above what they can afford and a bank still willing to lend to them. The housing market has become a titantic adeutnvre.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Você pode usar as seguintes tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

by Take ® 2015 | Todos os direitos reservados.linkedin