24
Premiers pas avec Sikuli Par Erwan 'Labynocle' Ben Souiden ([email protected] - @labynocle) Durée : 30 minutes Version du document : 0.1

Light Talk - Premier pas avec Sikuli

Embed Size (px)

DESCRIPTION

Petite présentation de Sikuli versus Selenium. L'exemple est de la présentation est disponnible sur https://github.com/labynocle/talk-td_tp

Citation preview

Page 1: Light Talk - Premier pas avec Sikuli

Premiers pas avec Sikuli

Par Erwan 'Labynocle' Ben Souiden ([email protected] ­ @labynocle)Durée : 30 minutesVersion du document : 0.1

Page 2: Light Talk - Premier pas avec Sikuli

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

Page 3: Light Talk - Premier pas avec Sikuli

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é open­sourceet 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/SikuliX­IDE

Page 4: Light Talk - Premier pas avec Sikuli

4Premier pas avec Sikuli

Mais je connais déjà Selenium ! ::

(image: Futurama ­ memegenerator.net)

Page 5: Light Talk - Premier pas avec Sikuli

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é

Page 6: Light Talk - Premier pas avec Sikuli

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 !

Page 7: Light Talk - Premier pas avec Sikuli

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 !

Page 8: Light Talk - Premier pas avec Sikuli

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 !

Page 9: Light Talk - Premier pas avec Sikuli

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

Page 10: Light Talk - Premier pas avec Sikuli

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]

Page 11: Light Talk - Premier pas avec Sikuli

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)

Page 12: Light Talk - Premier pas avec Sikuli

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

Page 13: Light Talk - Premier pas avec Sikuli

13Premier pas avec Sikuli

Mais je connais déjà Selenium ! ::

Les tests Selenium se génère avec une IDE – plugin Firefox

Page 14: Light Talk - Premier pas avec Sikuli

14Premier pas avec Sikuli

Mais je connais déjà Selenium ! ::

Le code généré pour le test est en Java...

Page 15: Light Talk - Premier pas avec Sikuli

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

Page 16: Light Talk - Premier pas avec Sikuli

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/

Page 17: Light Talk - Premier pas avec Sikuli

17Premier pas avec Sikuli

Voyons ce que ça donne ::

l'IDE :

Page 18: Light Talk - Premier pas avec Sikuli

18Premier pas avec Sikuli

Voyons ce que ça donne ::

Exemple de script dans l'IDE:

Page 19: Light Talk - Premier pas avec Sikuli

19Premier pas avec Sikuli

Voyons ce que ça donne ::

Code généré par l'IDE :

Page 20: Light Talk - Premier pas avec Sikuli

20Premier pas avec Sikuli

Voyons ce que ça donne ::

(image: memegenerator.net)

Page 21: Light Talk - Premier pas avec Sikuli

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...

Page 22: Light Talk - Premier pas avec Sikuli

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

Page 23: Light Talk - Premier pas avec Sikuli

23Premier pas avec Sikuli

Conclusion ::

Don't believe me try it yourself!

(image: The Big Bang Theory TV Show)

Page 24: Light Talk - Premier pas avec Sikuli

24Premier pas avec Sikuli

Conclusion ::

Questions ?

(image: xkcd.org)