BIGtheme.net http://bigtheme.net/ecommerce/opencart OpenCart Templates
24/09/2017 - 4:45 AM

Criando projeto de automação de testes mobile – Parte 2

Vamos iniciar a segunda parte, então começaremos por editar o arquivo env.rb, este arquivo é carregado primeiramente quando rodarmos os testes, vamos adicionar no env.rb o seguinte código:

Para você acessar o arquivo env.rb você deve seguir este path: nome-projeto/features/support/env.rb

 

require "appium_lib"
require "pry"


def caps
    { caps: { deviceName: "Samsung",
        platformName: "Android",
        deviceName: "J7 Galaxy"
        app: (File.join(File.dirname(__FILE__), "PreciseUnitConversion.apk")),
        appPackage: "com.ba.universalconverter",
        appActivity: "MainConverterActivity",
        newCommandTimeout: "3600",
    appium_lib: { wait: 20,
    		  debug: false
    			  }

  }}
end

Appium::Driver.new(caps)
Appium.promote_appium_methods Object

Vamos entender cada uma das linhas:

Linha 1 e 2: São bibliotecas necessárias para rodar os testes.

Linha 5: Criamos uma nova função chamada caps, esta funcão tem vários atributos nela, vamos entender cada um

  • platformName
  • deviceName
  • app
  • appPackage
  • appActivity
  • newCommandTimeout
  • debug
Qual plataforma você quer utilizar, você pode optar por

  • iOS
  • Android
  • FirefoxOS
Que tipo de device e seu nome você usará? Pode ser um emulador/simulador ou device real conectado ao local que irá rodar os testes.

Para descobrir o nome do device real, conecte-o com a opção de desenvolvedor: DEPURAÇÃO DE USB(debug) habilitada e no seu terminar insira o seguinte comando: “$adb devices” então mostrará o nome do device.
Exemplo:

Neste parâmetro você precisa inserir o local exato onde está seu app ou qual URL. Este arquivo pode ser um .ipa ou apk  ou .zip contendo esses dois arquivos. O Appium irá pegar esse arquivo e tentar instalar no primeiro device (caso você não especifique o deviceName) ou irá instalar no device que você definio em deviceName.

Exemplo:

  • /users/quatest/teste/meu.apk
  • http://quatest.com.br/teste/app.ipa
Java Package do app que você irá rodar

Exemplo:

  • com.example.quatest.meuApp
  • com.android.home
Nome da activity que irá abrir do Package

Exemplo:

  • MainActivity
  • .Setting
 Quanto tempo (em segundos) o Appium irá aguardar um novo comando até assumir que o client finalizou para encerrar a sessão.

Exemplo:

  • 20
  • 60
Este parâmetro você irá setar com TRUE ou FALSE para que os logs mudem conforme sua escolha para debugar

 

Outro arquivo que vamos adicionar é o hooks.rb.

Para você acessar o arquico hooks.rb você deve seguir este path: nome-projeto/features/support/hooks.rb

Vamos adicionar o seguinte código:

Before do
  $driver.start_driver	
end

After do |scenario|
  if scenario.failed?
    unless File.directory?("screenshots") 
      FileUtils.mkdir_p("screenshots")
    end

    time_stamp = Time.now.strftime("%Y-%m-%d_%H.%M.%S")
    screenshot_name = "#{time_stamp}.png"
    screenshot_file = File.join("screenshots", screenshot_name)
    $driver.screenshot(screenshot_file)
    embed("#{screenshot_file}", "image/png")
  end
  $driver.driver_quit
end

AfterConfiguration do
  FileUtils.rm_r("screenshots") if File.directory?("screenshots") 
end

O Before fará com que o driver seja iniciado antes dos testes iniciarem

O Afer fará com que em caso de falha de algum cenário irá tirar um screeshot e salvar e fará o driver parar.

AfterConfiguration deletará a pasta sempre que iniciar uma nova rodada de testes para excluir os screenshots antigos.

 

Vamos adicionar esses arquivos? Qualquer dúvida só deixar seu comentário!

 

 

 

 

Sobre Luiz Lohn

Luiz Lohn
Mobile QA Engineer, trabalha há mais de 4 anos com qualidade e teste de software. Atualmente na SocialBase trabalha com automação e testes manuais de Aplicativos Móveis. Fundador do site QUATEST e coordenador do GUTS-SC

Deixe uma resposta

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