light talk - premier pas avec sikuli

Post on 30-Nov-2014

671 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

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

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)

top related