Post on 30-Nov-2014
description
Premiers pas avec Sikuli
Par Erwan 'Labynocle' Ben Souiden (erwan@aleikoum.net @labynocle)Durée : 30 minutesVersion du document : 0.1
2Premier pas avec Sikuli
Plan de la présentation
I. Sikuli kesako ?
II. Mais je connais déjà Selenium !
III. Voyons ce que ça donne...
IV. Conclusion
3Premier pas avec Sikuli
Sikuli kesako ? ::
Sikuli est un système pour automatiser les tests des GUIs
La particularité de ce système est qu'il repose entièrement sur des screenshots pour réaliser lestests et actions
Le projet est initialement dévéloppé par l'User Interface Design Group du MIT
Aujourd'hui le projet est maintenu par Raimund 'RaiMan' Hocke, la communauté opensourceet le Sikuli Lab (University of Colorado Boulder)
La version stable courante est la 1.0.1 – sortie le 12/08/2013 – écrit en Jython
Le projet est sous license MIT
Le site officiel : http://www.sikuli.org/
Les sources du projet : https://github.com/RaiMan/SikuliXIDE
4Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
(image: Futurama memegenerator.net)
5Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Selenium réalise des tests et des actions uniquement sur les objets d'une page web(comme une div, une image, un lien...)
Importantes implications : • Les développeurs doivent concevoir les pages pour être testées – tout doit avoir des IDs
• Selenium ne vérifie que le code et non la perception utilisateur
• On ne peut tester que des éléments Web avec Selenium...
• … et pas forcément tout – comme le Flash !
Selenium est donc par nature limité
6Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Selenium ne vérifie que le code et non la perception utilisateur – exemple image cassée
Non détecté par Selenium !
7Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Selenium ne vérifie que le code et non la perception utilisateur – exemple image piratée
Non détecté par Selenium !
8Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Selenium ne vérifie que le code et non la perception utilisateur – interprétation différente
Non détecté par Selenium !
9Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Les développeurs doivent concevoir les pages pour être testées Les développeurs doivent concevoir les pages pour être testées
id=player_control_play
10Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Les développeurs doivent concevoir les pages pour être testées Les développeurs doivent concevoir les pages pour être testées
//a[@id='naboo_menu_element_playlist_544759055']/span[2]
11Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Les développeurs doivent concevoir les pages pour être testées Les développeurs doivent concevoir les pages pour être testées
link=Distractions (Intro)
12Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Les développeurs doivent concevoir les pages pour être testées Les développeurs doivent concevoir les pages pour être testées
//tr[@id='naboo_datagrid_track_2262046']/td[6]/div/aou //a[contains(@href, '/album/225975')]
ou //tr[2]/td[6]/div/a
13Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Les tests Selenium se génère avec une IDE – plugin Firefox
14Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Le code généré pour le test est en Java...
15Premier pas avec Sikuli
Mais je connais déjà Selenium ! ::
Selenium est un très bon outil mais :
Lourd à maintenir, à garder à jour ou à reprendre
Compliqué à debugger
IDE pas très intuitive (cf. live record)
Limité aux tests d'interface web
Cependant il reste intéressant car :
Tolérant au changement de look de l'interface
Valide l'intégrité du code
16Premier pas avec Sikuli
Voyons ce que ça donne ::
Sous Debian/Ubuntu Installation simplifiée par package :apt-get install sikuli-ide
ouapt-get install libcv2.4 libhighgui2.4 libcvaux2.4 \
libswing-layout-java libsikuli-script-jniwget https://launchpad.net/sikuli/sikulix/1.0.1/+download/sikuli-setup.jarjava -jar sikuli-setup.jar
Utilisation facile :Lancer l'IDE : ./runIDE
Lancer un script : ./runIDE -r ./Test1.sikuli/
17Premier pas avec Sikuli
Voyons ce que ça donne ::
l'IDE :
18Premier pas avec Sikuli
Voyons ce que ça donne ::
Exemple de script dans l'IDE:
19Premier pas avec Sikuli
Voyons ce que ça donne ::
Code généré par l'IDE :
20Premier pas avec Sikuli
Voyons ce que ça donne ::
(image: memegenerator.net)
21Premier pas avec Sikuli
Conclusion ::
Sikuli est un système pour automatiser les tests des GUIs de n'importe quelle application : sites web,applications (Iphone, Androïd, Flash)...
Valide l'expérience utilisateur
Les scripts sont écrits en Python
Une IDE existe pour générer automatiquement les tests sans jamais avoir scripter
Facile à faire évoluer et maintenir
Tout ce qu'on peut faire en python peut être fait avec Sikuli
Packages pour l'installation, communauté réactive, intégration facile dans Jenkins, cross plateform...
22Premier pas avec Sikuli
Conclusion ::
Transition Selenium Sikuli coûteuse→
Non tolérant à une refonte visuel
Ne test pas l'intégrité du code
Attention aux faux positifs !
Techno encore jeune
23Premier pas avec Sikuli
Conclusion ::
Don't believe me try it yourself!
(image: The Big Bang Theory TV Show)
24Premier pas avec Sikuli
Conclusion ::
Questions ?
(image: xkcd.org)