54 votes

Peut la UI Automation instrument être exécuté depuis la ligne de commande?

Est-il possible d'ouvrir l' UIAutomation instrument via le terminal?

Il sera possible d'écrire un AppleScript pour ouvrir Apple UIAutomation outil et de charger l'application pour être testé?

Pouvez-vous s'il vous plaît dites-moi est-il de toute façon à l'aide de scripts ou par l'intermédiaire de la ligne de commande, nous pouvons ouvrir UIAutomation et sélectionnez l'application à tester, ainsi que de sélectionner le script de test?

55voto

Farhan Ahmed Wasim Points 584

instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

pour xcode >= 4.5

instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate <full_path_to_application> -e UIASCRIPT <path_to_script.js> -e UIARESULTSPATH <output_results_path>

Il ya quelques choses importantes à noter cependant:

  1. le paramètre-w n'est pas requis, sauf si vous voulez exécuter des scripts sur votre appareil. Si vous souhaitez exécuter vos scripts sur le simulateur, tout simplement omettre ce paramètre de la commande.
  2. full_path_to_application est le chemin d'accès à votre .application fichier qui est créé par votre simulateur. Pour moi, le chemin a été

    /Utilisateurs/fwasim/Bibliothèque/Application Support/Simulateur d'iPhone/5.0/Applications/AA6BA2E1-D505-4864-BECC-29ADEE28194D/name_of_application.app

    ce chemin peut être différent pour quelqu'un d'autre en fonction de ce que la version iOS êtes-vous en cours d'exécution sur votre simulateur. Aussi n'oubliez pas de mettre ce chemin d'accès entre guillemets doubles.

  3. L'path_to_script.js doit être le CHEMIN COMPLET vers votre automatisation d'un script écrit en javascript est enregistré. Aussi n'oubliez pas de mettre ce chemin d'accès entre guillemets doubles.

  4. Enfin de sortie des résultats path est le chemin d'accès où vous souhaitez enregistrer les résultats de sortie. Aussi n'oubliez pas de mettre ce chemin d'accès entre guillemets doubles.

Tels étaient les points que j'avais été absent et, par conséquent, a été d'obtenir certaines des erreurs mentionnées ci-dessus.

22voto

user887803 Points 211

Départ UIAutomation via la ligne de commande Vous pouvez le faire maintenant, en commençant avec XCode 4.2 beta 4 pour iOS5 En ligne de commande, vous pouvez exécuter des instruments de pointage à l'automatisation de modèle et de préciser que les variables d'environnement le test du script que vous souhaitez exécuter, et le chemin de destination pour les résultats:

instruments -w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -e UIASCRIPT

Ci-dessus est à partir de cette source url: http://dev-ios.blogspot.com/2011/07/starting-uiautomation-via-command-line.html

Voir plus de détails sur la ligne de commande à partir d'Apple: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html

Plus de poste de Stacktrace de l'utilisateur en ligne de commande à exécuter avec iphone iOS UIAutomation Peut être des Instruments utilisés en utilisant la ligne de commande?

Espérons que cela aide - avoir une bonne journée :)

8voto

idStar Points 3735

Mis à jour et testé pour Xcode 6.0.1:

instruments -w 'iPhone 5s' \
    -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
    '/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/E71B915E-051D-4BEF-9083-34416D02EC91/RoadRunnerRadar.app' \
    -e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \
    -e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/'

Inspiré par d'autres qui ont écrit de la ligne de commande wrappers qui n'ont pas été mis à jour en temps, et n'a donc pas de travail (et semblait difficile de donner un sens comme j'ai été tenté de résurrection), j'ai écrit un shell bash script qui je pense sera plus transparent, plus léger et donc plus facile à maintenir.

Vous pouvez trouver le projet sur github et un compagnon de blog.

6voto

Michael Enriquez Points 1166

Au lieu de le long instruments de commande, j'ai écrit un wrapper qui est plus facile à utiliser: https://github.com/enriquez/uiauto

Pour l'utiliser, vous avez juste à faire ce qui suit:

  1. Construire votre projet dans Xcode pour le simulateur (dispositif de soutien à venir).
  2. cd à l'endroit où votre projet .xcodeproj ou .xcworkspace est situé.
  3. Exécutez uiauto exec path/to/your/script.js.

4voto

harish Points 41

Avec chaque nouvelle version de Xcode le chemin d'accès au modèle semble être changé. Une des meilleures façons de trouver le chemin d'accès du modèle est - instruments -s commande qui serait la liste de tous les modèles disponibles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X