Comment configurer Appium Environment pour L'automatisation Android?

je travaille en tant que SD dans l'Essai. Je suis nouveau à L'outil D'automatisation D'Appium , cet outil est très difficile à mettre en place environnement pour moi .

j'ai évoqué lien suivant :: http://unmesh.me/category/appium/

Ce lien m'a aidé à installer Nœud.js et appium en ligne de commande.Mais je ne suis pas sûr que cette façon de faire.

j'ai reçu un message venant de la ligne de commande :

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

après ça, je n'en ai aucune idée . Comment écrire testcase et l'exécuter à travers Appium?

si vous souhaitez partager vos connaissances sur Appium tool . Merci de me guider.

  1. comment installer Appium?
  2. comment exécuter testcase à travers Appium tool?
15
demandé sur ROMANIA_engineer 2013-07-25 19:14:54

3 réponses

Première Partie:-. Vous semblez avoir lancé le serveur appium en utilisant node server.js - Vous pouvez vérifier le serveur en allant sur localhost:4723/wd/hub/status dans votre navigateur, cela renvoie quelques détails du serveur. Vous l'avez déjà fait.

la sortie de La commande ressemblera à ceci confirme 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 n'importe quelle langue de votre choix. J'ai utilisé c# et peut fournir des exemples cela devrait être similaire pour vos tests.

pour ajouter le sélénium à une Classe c#:using OpenQA.Selenium.Remote; Vous passez toutes vos données à un objet de capacités désirées de sélénium. Certaines capacités souhaitées sur mesure existent telles que:

  • 'app-package' c'est le nom du paquet app tel que com.myapp.principal,
  • "app-activity" qui est l'activité principale apps à appeler qui lancera également l'app. Il s'agit souvent d'une activité d'éclaboussure ou d'une activité principale,
  • l '"activité d'attente" est la activité que Appium vérifiera une fois lancée, ce serait l'Activité app-mais pour moi c'est différent si pour certains tests une nouvelle activité est lancée que celle qui est appelée,
  • 'version' de prendre la version d'android,
  • 'device ID' prend votre périphérique ou AVD attaché à 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à il sautera ceci 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");
    

en suivant les fonctionnalités que vous créez, créez un objet pilote web distant passant l'url du hub que vous avez utilisé E. g 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 l'écoute des requêtes. Pour moi, cette étape signes installe et lance l'application sur le périphérique de stockage j'espère que cela fonctionnera pour vous même. C'est là que les tests de sélénium que vous écrivez sont connecté au serveur Appium.

maintenant utiliser le created driver object vous pouvez accéder aux commandes selenium rc dont Appium a implémenté de nombreuses alternatives pour les tests android. Pendant chacune de ces périodes, la fenêtre de votre console Appium server devrait vous indiquer s'il y a des problèmes.

la sortie sera codée en couleur pour aider à identifier les échecs à partir de cette fenêtre, mais vous pouvez gérer ceux-ci à votre façon et la sortie vers un fichier si nécessaire.

mise à Jour pour plusieurs périphériques Je ne suis pas certain de l'utilisation de plusieurs appareils, je considérerais grille de sélénium mes précédentes tentatives d'ajouter 2 périphériques à une machine et de tester ont été entachées de confusion où adb était incapable de distinguer quel que soit l'id du périphérique ajouté à la configuration et aux commandes. L'équipe D'Appium a fait des améliorations pour ajouter des fonctionnalités de grille au serveur, je vous recommande d'avoir un regard sur Appium Grid (lien mis à jour)

je m'en excuse pour mon manque l'expérience avec grid pour vous aider davantage.

Cordialement, Brian

15
répondu BrianC 2014-06-02 12:08:51

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

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

ce lien traite principalement des sections suivantes

  1. Installation JDK
  2. chemin D'Installation SDK Android setup
  3. Installation D'Appium

    a) Utilisation du noeud.js

    b) en utilisant L'Appium.exe

3
répondu Sravan 2014-12-16 06:53:55

Voici mon env.fichier 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
répondu Whitney Imura 2013-09-26 21:20:01