web-dev-qa-db-fra.com

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 une AppleScript pour ouvrir l'outil UIAutomation d'Apple et charger l'application à tester?

Pouvez-vous me dire s'il existe un moyen d'utiliser des scripts ou via la ligne de commande pour ouvrir UIAutomation et sélectionner l'application à tester, ainsi que le script de test?

53
Vijay
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>

pour xcode> = 6.1

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

Il y a quelques points importants à noter cependant:

  1. le paramètre -w n'est pas obligatoire, sauf si vous souhaitez exécuter les scripts sur votre périphérique. Si vous souhaitez exécuter vos scripts sur le simulateur, omettez simplement ce paramètre de la commande.
  2. chemin_complet_application est le chemin d'accès à votre fichier .app créé par votre simulateur. Pour moi, le chemin était 

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

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

  3. Path_to_script.js doit être le chemin complet vers lequel votre script d'automatisation écrit en javascript est enregistré. Rappelez-vous également de mettre ce chemin entre guillemets doubles.

  4. Enfin, chemin des 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 doubles.

C’étaient les points qui me manquaient et qui entraînaient donc certaines des erreurs mentionnées ci-dessus.

54
Farhan Ahmed Wasim

Démarrage de UIAutomation via la ligne de commandeVous pouvez le faire maintenant, à partir de XCode 4.2 pour iOS5 bêta 4 Depuis la ligne de commande, vous pouvez exécuter les instruments pointant sur le modèle d’automatisation et spécifier en tant que variables d’environnement le script de test à exécuter. et 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 

Vous trouverez ci-dessus l'URL de cette source: http://dev-ios.blogspot.com/2011/07/starting-uiautomation-via-command-line.html

Pour plus de détails sur la ligne de commande d’Apple, consultez: http://developer.Apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html

Plus post de l'utilisateur Stacktrace sur la ligne de commande exécutée avec iphone iOS UIAutomation Les instruments peuvent-ils être utilisés à l'aide de la ligne de commande?

J'espère que cela vous aidera - passez une bonne journée :)

22
user887803

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 personnes qui ont écrit des enveloppes de ligne de commande qui n’ont pas été mises à jour depuis un moment et qui ne fonctionnent donc pas (et qui semblaient difficiles à comprendre car j’étais tenté de les ressusciter), j’ai écrit un script bash croire sera plus transparent, plus léger et donc plus facile à entretenir.

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

8
idStar

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

Pour l'utiliser, il vous suffit de faire ce qui suit:

  1. Construisez votre projet dans Xcode pour le simulateur (support de périphérique à venir).
  2. accédez au répertoire .xcodeproj ou .xcworkspace de votre projet.
  3. Exécutez uiauto exec path/to/your/script.js.
6
Michael Enriquez

À chaque nouvelle version de Xcode, le chemin du modèle semble être modifié. L'un des meilleurs moyens de déterminer le chemin du modèle est la commande instruments -s, qui répertorie tous les modèles disponibles.

4
harish

J'ai aussi très intéressé par ce sujet. Ce que j’ai trouvé, c’est cette référence qui montre qu’il existe un moyen de lancer des instruments à partir d’un terminal avec un modèle prédéfini, un emplacement où les résultats doivent être stockés, un périphérique cible sur lequel il doit être exécuté et d’autres paramètres. Vous pouvez aussi simplement taper terminal instruments pour obtenir la liste des paramètres. 

Je n'ai pas réussi à exécuter UI Automation sur iPhone de cette façon. Je n'ai pas essayé de simulateur ou d'application Mac car je suis surtout intéressé par un appareil. J'ai posté une question ici sur SO mais, en l'absence de toute réponse, je pense que peu de gens utilisent des instruments de cette façon. 

Mais on espère pouvoir le lancer, car il existe t son fil court sur le forum des développeurs Apple (vous devez vous connecter) qui suggère que cela peut être fait. J'essaierai cela plus tard, si je réussis, je posterai la solution ici. Si vous parvenez à le faire tourner, vous pouvez vous inscrire ici, car je serai intéressé (et probablement d’autres).

3
yoosiba

il existe un outil pour enregistrer/rejouer des événements d'interface utilisateur avec l'environnement Shell et vous pouvez écrire un script avec Ruby.

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

2
WooKyoung Noh

La bonne façon de procéder 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/
0
barryjones

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

instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
0
Prasad Rampilla