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.
- comment installer Appium?
- comment exécuter testcase à travers Appium tool?
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
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
- Installation JDK
- chemin D'Installation SDK Android setup
Installation D'Appium
a) Utilisation du noeud.js
b) en utilisant L'Appium.exe
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