L’instrument UI Automation peut-il être exécuté à partir de la ligne de commande?

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

Sera-t-il possible d’écrire un UIAutomation AppleScript pour ouvrir l’outil UIAutomation d’Apple et charger l’application à tester?

Pouvez-vous s’il vous plaît me dire est-il possible via scripting ou via la ligne de commande, nous pouvons ouvrir UIAutomation et sélectionnez l’application à tester, ainsi que sélectionner le script de test?

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

pour xcode> = 4.5

 instruments -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\ AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \  -e UIASCRIPT  \ -e UIARESULTSPATH  

pour xcode> = 6.1

 instruments -w  -t \ /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\ AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate \  -e UIASCRIPT  \ -e UIARESULTSPATH  

Il y a quelques points importants à noter cependant:

  1. Le paramètre -w n’est requirejs que si vous souhaitez exécuter les scripts sur votre appareil. Si vous souhaitez exécuter vos scripts sur le simulateur, omettez simplement ce paramètre dans la commande.
  2. full_path_to_application est le chemin d’access à votre fichier .app créé par votre simulateur. Pour moi, le chemin était

    / Users / fwasim / Bibliothèque / Application Support / iPhone Simulator / 5.0 / Applications / AA6BA2E1-D505-4864-BECC-29ADEE28194D / name_of_application.app

    Ce chemin peut être différent pour quiconque selon la version iOS que vous utilisez sur votre simulateur. Rappelez-vous également de mettre ce chemin entre guillemets.

  3. Le path_to_script.js devrait être le FULL PATH vers lequel votre script d’automatisation écrit en javascript est enregistré. Rappelez-vous également de mettre ce chemin entre guillemets.

  4. Enfin, le chemin de résultats de sortie est le chemin où vous souhaitez enregistrer les résultats de sortie. Rappelez-vous également de mettre ce chemin entre guillemets.

C’étaient les points sur lesquels j’avais manqué et je commençais donc à avoir certaines des erreurs mentionnées ci-dessus.

Démarrage de UIAutomation via la ligne de commande Vous pouvez le faire maintenant, à partir de XCode 4.2 pour iOS5 beta 4 Depuis la ligne de commande, vous pouvez exécuter des instruments pointant vers le modèle d’automatisation et spécifier comme script d’environnement le script de test à exécuter:

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

Ci-dessus provient de cette URL source: http://dev-ios.blogspot.com/2011/07/starting-uiautomation-via-command-line.html

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

Plus poste de l’utilisateur Stacktrace sur la ligne de commande exécuté avec iphone iOS UIAutomation Peut-on utiliser les instruments en utilisant la ligne de commande?

J’espère que cela vous aidera – passez une bonne journée 🙂

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 des wrappers en ligne de commande qui n’ont pas été mis à jour depuis un certain temps et qui ne fonctionnaient donc pas (et paraissaient difficiles à comprendre car j’étais tenté de les ressusciter), j’ai écrit un script shell bash crois que sera plus transparent, plus léger et donc plus facile à entretenir.

Vous pouvez trouver le projet sur github et un article de blog associé .

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

Pour l’utiliser, il vous suffit de procéder comme suit:

  1. Construisez votre projet dans Xcode pour le simulateur (support d’appareil à venir).
  2. cd vers l’emplacement de votre projet .xcodeproj ou .xcworkspace.
  3. Exécutez uiauto exec path/to/your/script.js .

Avec chaque nouvelle version de Xcode, le chemin du modèle semble être modifié. Une des meilleures façons de trouver le chemin du modèle est la commande instruments -s qui listerait tous les modèles disponibles.

Je suis aussi très intéressé par ce sujet. Ce que j’ai effectivement trouvé est cette référence qui montre qu’il existe un moyen de lancer des instruments depuis un terminal avec un modèle prédéfini, un emplacement où les résultats doivent être stockés et un périphérique cible sur lequel il doit s’exécuter, ainsi que d’autres parameters. Vous pouvez également simplement saisir les instruments terminaux pour obtenir la liste des parameters.

Je n’ai pas réussi à exécuter UI Automation sur iPhone de cette façon. Je n’ai pas essayé le simulateur ou l’application mac car je m’intéresse surtout à l’appareil. J’ai posté une question ici sur SO mais par manque de réponse, je pense que peu de gens utilisent les instruments de cette manière.

Mais il y a de l’espoir pour le faire fonctionner, car il y a son court fil sur le forum des développeurs Apple (vous devez vous connecter) qui suggère que cela peut être fait. Je vais essayer cela plus tard, si je réussis, je posterai une solution ici. Si vous parvenez à faire en sorte que votre plaidoyer soit lancé, vous serez intéressé (et probablement d’autres).

Il existe un outil pour enregistrer / rejouer les événements de l’interface utilisateur avec un environnement shell, et pourrait écrire un script avec Ruby.

développement d’applications interactives sur iPhone http://github.com/wookay/libcat

Tapez cette commande dans le terminal instruments -s, vous obtenez le chemin du template après le type:

 instruments -t  

La bonne façon de le faire sur un simulateur iOS est la suivante:

 instruments -w 'iPhone 5s (9.1)' \ -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \ 'justTheNameOfYourAppDontAddExtension' \ -e UIASCRIPT '/Users/barry/Dropbox/Public/login.js' \ -e UIARESULTSPATH '/Users/barry/Dropbox/Public/