web-dev-qa-db-fra.com

Comment configurer Appium Environment pour Android Automation?

Je travaille en tant que SD dans Test. Je suis nouveau dans l'outil Appium Automation, cet outil est très difficile à configurer pour moi.

J'ai fait référence au lien suivant :: http://unmesh.me/category/appium/

Ce lien m'a aidé à installer Node.js et appium via la ligne de commande, mais je ne suis pas sûr de la bonne façon de le faire.

J'ai reçu le message suivant depuis la ligne de commande:

mani-kandans-MacBook-Pro: plateforme-outils manikandan $ info: Bienvenue dans Appium v0.8.2 (REV e9cc66197ad6a3496322bd77a8699509fc761b69) info: Appium REST écouteur d'interface http démarré le 0.0.0.0:4723 info - socket.io a commencé

Après cela, je n'ai aucune idée. Comment écrire un testcase et l'exécuter via Appium?

Si vous souhaitez partager vos connaissances sur l'outil Appium. Guidez-moi s'il-vous-plaît.

  1. Comment installer Appium?
  2. Comment exécuter testcase via l'outil Appium?
16
Manidroid

Partie un:-. Vous semblez avoir lancé le serveur appium en utilisant le nœud server.js - Vous pouvez vérifier le serveur en allant sur localhost:4723/wd/hub/status dans votre navigateur cela renverra quelques détails du serveur. Vous l'avez déjà fait.

La sortie de la commande ressemblera à ceci confirmant que le serveur est démarré:

info: Welcome to Appium v0.8.1 (REV ***********************************)
info: Appium REST http interface listener started on 0.0.0.0:4723
       info  - socket.io started

Deuxième partie:-. Ensuite, vous utilisez le Selenium RC pour Python, Java ou c # ou quel que soit votre choix de langue. J'ai utilisé c # et je peux fournir des exemples qui devraient être similaires pour vos tests.

Pour ajouter le sélénium à une classe c #: using OpenQA.Selenium.Remote; Vous transmettez toutes vos données à un objet de capacités souhaité par Selenium. Certaines capacités souhaitées personnalisées existent telles que:

  • 'app-package' c'est le nom du package d'application tel que com.myapp.main,
  • 'app-activity' qui est l'activité principale des applications à appeler qui lancera également l'application. Il s'agit souvent d'une activité de démarrage ou d'une activité principale,
  • 'wait-activity' est l'activité qu'Appium vérifiera une fois lancée, ce serait l'activité de l'application mais pour moi c'est différent si pour certains tests une nouvelle activité est lancée que celle qui est appelée,
  • 'version' prenant la Android,
  • 'ID de l'appareil' prenant votre appareil connecté ou AVD à la commande et à l'application qui aura un chemin local vers l'apk que vous souhaitez installer. Ceci est signé et installé au démarrage si une application démissionnaire existe déjà, elle l'ignorera pour vous.

        DesiredCapabilities caps = new DesiredCapabilities();
        caps.SetCapability("app-package", "com.myapp.test");
        caps.SetCapability("browserName", "");
        caps.SetCapability("device", "Android");
        caps.SetCapability("app-activity", "com.myapp.SplashActivity");
        caps.SetCapability("takesScreenshot", true);
        caps.SetCapability("version", "4.1.2");
        caps.SetCapability("device ID", "uniquedeviceid");
        caps.SetCapability("app", @"C:\path to\app\on\pc\app.apk");
    

Suite aux capacités que vous créez, créez un objet pilote Web distant en passant l'URL du concentrateur que vous avez utilisée, par exemple http://localhost:4723/wd/hub et les capacités souhaitées que vous avez créées.

RemoteWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4723/wd/hub/"), caps);

Cette ligne utilise l'ip ou l'hôte du serveur Appium pour commencer à écouter les demandes. Pour moi, cette étape signe installe et lance l'application sur l'appareil connecté, espérons que cela fonctionnera pour vous de la même manière. C'est là que les tests Selenium que vous écrivez sont connectés au serveur Appium.

Maintenant, en utilisant l'objet driver créé, vous pouvez accéder aux commandes Selenium rc dont Appium a implémenté de nombreuses alternatives pour les tests Android. Pendant chacune de ces fenêtres de votre console de serveur Appium devrait vous montrer s'il y a des problèmes.

La sortie sera codée par couleur pour aider à identifier les échecs à partir de cette fenêtre, mais vous pouvez les gérer à votre guise et les exporter dans un fichier si nécessaire.

Mise à jour pour plusieurs appareils Je ne suis pas sûr de l'utilisation de plusieurs appareils, je considérerais grille de sélénium mes tentatives précédentes pour ajouter 2 périphériques à une seule machine et le test était confus où adb était incapable de distinguer indépendamment de l'ajout de l'ID de périphérique à la configuration et aux commandes. L'équipe Appium a apporté des améliorations pour ajouter des fonctionnalités de grille au serveur, je vous recommande de jeter un œil à Appium Grid (lien mis à jour)

Je m'excuse de mon manque d'expérience avec la grille pour vous aider davantage.

Cordialement, Brian

15
BrianC

Il semble être une réponse tardive, mais je suppose que ce message peut aider quelqu'un, qui cherche étape par étape un guide pour installer Appium sur la plate-forme Windows

http://qaautomationworld.blogspot.in/2014/12/appium-setup-for-Android-windows.html

Ce lien traite principalement des sections suivantes

  1. Installation de JDK
  2. Configuration du chemin d'installation du SDK Android
  3. Installation d'Appium

    a) Utilisation de node.js

    b) Utilisation d'Appium.exe

3
Sravan

Voici mon fichier env.rb pour appium Android.

 require 'rubygems'
require 'appium_lib'

# Start Android driver
apk = {
    device: :Android,
    app_path: (true && ENV['apk']) || 'path to apk',
    app_package: (true && ENV['package']) || 'com.foo.cam',
    app_activity: (true && ENV['activity']) || '.SplashActivity',
    app_wait_activity: (true && ENV['activity']) || '.MainActivity',
}
Appium::Driver.new(apk).start_driver

Appium.promote_appium_methods Object

log = Logger.new(STDOUT)

case ENV['log']
  when 'WARN'
    log.level = Logger::WARN
  when 'DEBUG'
    log.level = Logger::DEBUG
  when 'INFO'
    log.level = Logger::INFO
  when 'ERROR'
    log.level = Logger::ERROR
  when 'FATAL'
    log.level = Logger::FATAL
  when 'UNKNOWN'
    log.level = Logger::UNKNOWN
  else
    log.level = Logger::DEBUG
end

log.debug('starting suite')

Before do
  @test_env = {
      device: driver,
      main_activity: (true && ENV['main_activity']) || 'grid.GridLoginActivity',
      logger: log
  }
end

# Optional--clears alerts 
After ('@rate_limit') do |scenario|
  log = @test_env[:logger]
  device = @test_env[:device]

  if scenario.failed?
    begin
      wait = Selenium::WebDriver::Wait.new :timeout => 1
      wait.until { device.alert_accept }
      log.debug('cleared rate limit dialog')
    rescue
      log.error("dialog didn't pop.")
    end
  end

  log.debug('rate_limit finished')
end

After ('@network_connection') do |scenario|
  log = @test_env[:logger]
  device = @test_env[:device]

  if scenario.failed?
    begin
      wait = Selenium::WebDriver::Wait.new :timeout => 1
      wait.until { device.alert_accept }
      log.debug('cleared network connection issue')
    rescue
      log.error("dialog didn't pop.")
    end
  end

  log.debug('network_connection finished')
end
1
Whitney Imura

Pour installer Appium tout d'abord tous les outils de téléchargement requis:

1) Android Studio

2) Fichiers Jar Appium pour Java

3) Java Plugin Selenium Client

4) Serveur Appium

5) Java SDK

Après avoir téléchargé tous ces outils, suivez la procédure étape par étape mentionnée dans ce blog ==> Processus d'installation d'Appium dans Android Studio

0
Ganesh Garad