Automator sur un serveur distant

39 views
Skip to first unread message

Quentin Valmori

unread,
Nov 5, 2012, 10:40:15 AM11/5/12
to cocoahea...@googlegroups.com
Salut à tous, 

Je suis en train de réfléchir à comment automatiser certains tests fonctionnels et d'interfaces sur des applications iOS, et j'aimerais avoir, si possible, quelques retours d'expérience sur ce que vous avez déjà testé et comment avoir mis en place la solution.

Ce que j'ai en tête, c'est de mettre en place XCode et Automator sur un serveur distant tournant sous Mac OS X Server, mais : 
- Est-ce que je vais pouvoir lancer le simulateur depuis ce serveur ?
- Lancer Automator pour faire les tests ?
- Pouvoir ré-écrire les tests via le serveur directement ?

Et la solution ultime, serait de pouvoir envoyer un "signal" (je ne sais pas comment encore) à ce serveur pour lui dire "Vas-y lance-moi les tests tout seul maintenant". 

Avez-vous déjà mis en place ce genre de solutions ? 

Merci d'avance  

Vincent Tourraine

unread,
Nov 5, 2012, 6:04:09 PM11/5/12
to cocoahea...@googlegroups.com
Vaste sujet.

As-tu entendu parler de l'intégration continue, par exemple, ou cherches-tu des réponses plus concrètes ?

Automator ne t'aidera pas beaucoup, a priori, par contre la commande “xcodebuild” fera tout ce dont tu as besoin.

Nicolas Bouilleaud

unread,
Nov 6, 2012, 5:14:13 PM11/6/12
to cocoahea...@googlegroups.com, Quentin Valmori
C'est compliqué.

J'ai eu l'occasion de mettre ça en place avec un serveur d'intégration jenkins + xcodebuild "classique". Quelques écueils :
* le simulateur n'est pas applescriptable, encore moins avec automator.
* il n'y a pas d'api officielle pour lancer le simulateur depuis la ligne de commande. WaxSim et iOS-Sim utilisent des apis privées.
* il est rigoureusement impossible de lancer plusieurs instances du simulateur en parallèle sur le même mac. (Même dans des sessions utilisateurs séparées).
* pour les tests d'intégration à proprement parler, il y a plusieurs frameworks, mais aucun n'est vraiment satisfaisant :
* UIAutomation, le truc d'Apple en javascript était vraiment trop limité la dernière fois que j'ai regardé, et impossible à driver depuis une ligne de commande. (Ça ne marche qu'avec Instruments)
Frank (pas essayé) m'a l'air un peu lourdingue, et demande d'écrire les tests séparément, au format cucumber.
KIF, que j'utilise, permet d'écrire les tests en objective-C et donc s'intègre plus simplement de ce côté; par contre, l'api est *déroutante*, et les tests sont difficiles à débugguer.

Bref, c'est possible, et au final ça marche, mais ça reste assez frustrant. Mieux vaut être déjà à l'aise avec xcodebuild et un serveur d'intégration.

Plus généralement, je suis assez dérouté devant ces outils : j'ai l'impression qu'il s'agit de technos de rubyistes adaptées telles-quelles pour iOS (on teste une appli native et pas un site web, pour commencer). Si je voulais faire des tests de haut niveau sur une appli mac, justement, j'utiliserais Applescript ou Automator. On est très très loin de ça.

Si quelqu'un a un avis un peu plus général sur la "bonne façon" de faire des tests d'interface, ça m'intéresse assez.

(Sans jugement de valeur sur les rubyistes. :D)

(Je suis parti du principe que tu n'avais pas encore écrit tes tests, mais ton mail reste flou sur le sujet. Tu as déjà une solution qui tourne en local ?)

--
Nicolas
--
You received this message because you are subscribed to the Google Groups "CocoaHeads France" group.
To view this discussion on the web visit https://groups.google.com/d/msg/cocoaheads-france/-/K-7OAaLzsi8J.
To post to this group, send email to cocoahea...@googlegroups.com.
To unsubscribe from this group, send email to cocoaheads-fra...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cocoaheads-france?hl=en.

Quentin Valmori

unread,
Nov 6, 2012, 5:48:59 PM11/6/12
to Nicolas Bouilleaud, cocoahea...@googlegroups.com
Merci Nicolas pour ton excellent retour, j'en prends bonne note.

À l'heure actuelle j'ai des tests écrits pour des applications web qui tournent sur du Selenium et du Jenkins, mais rien du côté Android et iOS. Enfin sur iOS, j'ai quelques tests qui tournent localement via Automation mais j'aimerais justement pouvoir pousser ça beaucoup plus loin et avoir une intégration continue avec des tests d'interface sur mes applications.  

Je n'en suis qu'à l'étape de réflexion et de prise de retour d'expérience pour voir si je vais dans la bonne direction ou si certains se sont déjà cassés les dents avant moi. 

Je suis un peu comme toi, à la recherche de la bonne façon de faire du test d'interface / fonctionnement sur iOS. 


--
Quentin Valmori 
Gutenberg Technology / Lelivrescolaire.fr

Guillaume Cerquant

unread,
Nov 7, 2012, 4:27:57 AM11/7/12
to cocoahea...@googlegroups.com
Quentin,

Pour la partie UIAutomation mentionné par Nicolas, regarde la doc d'Apple :
http://developer.apple.com/library/ios/#documentation/DeveloperTools/Reference/UIAutomationRef/Introduction/Introduction.html
et
http://developer.apple.com/library/ios/#documentation/DeveloperTools/Reference/UIAutomationRef/_index.html

Tu as aussi la présentation de la WWDC 2010 (j'ai pas vérifié si les confs des 2 dernières années avaient couvert ce sujet, probablement que si).
https://developer.apple.com/videos/wwdc/2010/?id=306

et ce tutorial qui présente une mise en pratique :
http://blog.manbolo.com/2012/04/08/ios-automated-tests-with-uiautomation

Une idée sympa utilisant ce framework : le test du singe :
http://cocoamanifest.net/articles/2012/11/chaos-testing-with-ui-automonkey.html

Je n'ai pas encore eu l'occasion de tester cela.
Si tu le fais avant nous… ça ferait une bonne présentation CocoaHeads ;)



--
Guillaume

KPM (Kypselia)

unread,
Nov 7, 2012, 7:03:07 AM11/7/12
to cocoahea...@googlegroups.com, KPM (Kypselia)
Il y a aussi la conférence d'Alex Repty à la dernière conf ObjCGN : https://gumroad.com/l/OC12A4
Reply all
Reply to author
Forward
0 new messages