1Robot Framework
Automatisation des tests fonctionnels
(ATDD)
http://robotframework.org/
2L'architecture
Vos scénarios
Vos données
Robot Framework
Built in
+
Standard
Tierce partie
(ex : Selenium2, ssh,...)
Personnelles
(ex : Drupal, ...)
Libraries
RF
Libraries
RF
Scénarios (HTML)
Rapports (HTML)
3
En bref
●
Framework générique
●
Keyword driven
●
Data driven
●
À la Gherkin (Behat, Cucumber, Lettuce)
●
Langages
●
Python / Jython / Iron Python
●
Java
●
Autres langages via XMLRPC
●
API / Hooks pour Java et Python
●
Vos Libraries / Keywords
●
Vos sources de données
4
Libraries
●
Fournissent des « Keywords » pour une cible de tests
particulière :
●
Navigateur
●
SSH
●
Protocole de communication (FTP, ...)
●
...
●
Réalisables en :
●
Python (+ C/C++),
●
Java,
●
Jython
●
Iron Python + autre langage pour CLR .Net
Cohérence langages pour RF et Libraries
5
Libraries standard
●
Builtin : Keywords les plus fréquemment utilisés (comparaison,
accès aux variables, ...). « Builtin » = ne nécessite pas d'import
explicite
●
OperatingSystem : «cd », « ls », « mkdir », « cp », « mv », ...
●
Screenshot : comme son nom l'indique, généralement pour
figurer dans le CR de test
●
Collections : manipulez des listes et des dictionnaires
●
Et aussi : String, Dialogs, XML, Process, Remote
6
Librairies tierces
●
AndroidLibrary et IOSLibrary : Pilotage et introspection d'applis
Android et iOS via Calabash
●
ArchiveLibrary : Exploration des zip, tar.gz et tar.bz2
●
AutoItLibrary : Contrôle et vérification d'appli Windows via AutoIt
●
DatabaseLibrary : Du SQL dans RobotFramework
●
FTPLibrary, HTTPLibrary, SSHLibrary : Devinez quoi...
●
Selenium2Library : Contrôle de Firefox ou Chrome, inspection du
HTML
●
SudsLibrary : Web services SOAP
●
EclipseLibrary et SwingLibrary : Applications Java avec UI
●
Et aussi... http://robotframework.org/#test-libraries
●
Et encore...
https://pypi.python.org/pypi?%3Aaction=search&term=robotframework
7
Votre Library
●
Peut être fournie dans les tests eux-mêmes, composée avec les
keywords existants
*** Settings ***
Documentation Ma belle library perso
...
... bla bla bla
*** Keywords ***
Calculator has been cleared
Push button C
User types "${expression}"
Push buttons ${expression}
8Votre scénario
●
En HTML
●
Dans des tables
●
En CSV
●
Idem...
●
En texte brut
●
C'est le plus simple...
9
Exemple de suite
(minimaliste)
*** Settings ***
Documentation Example test cases using the keyword-driven testing approach.
...
... All tests contain a workflow constructed from keywords in
... `CalculatorLibrary`. Creating new tests or editing existing
... is easy even for people without programming skills.
...
Library CalculatorLibrary
*** Test Cases ***
Push button
Push button 1
Result should be 1
Push multiple buttons
Push button 1
Push button 2
Result should be 12
Clear
Push button 1
Push button C
Result should be ${EMPTY} # ${EMPTY} is a built-in variable
10Support auteur
●
Editeurs
●
Modes pour VIM, Emacs, SublimeText, ...
●
Plugin IntelliJ (PyCharm, PHPStorm, ...) et Eclipse avec
complétion intelligente
●
RIDE : IDE + Testrunner dédié
●
Autres...
●
Sphinx : intégration des tests dans la doc
Scénarios de test
=================
.. literalinclude:: signin_test.txt
:language: robotframework
11
Support PIC
●
Compatible avec les « testrunners » Python classiques (unittest,
test.py, nose, ...)
●
Compatible JUnit
●
Compatible Jenkins / Travis
●
option –-xunit result.xml

Présentation de Robot framework

  • 1.
    1Robot Framework Automatisation destests fonctionnels (ATDD) http://robotframework.org/
  • 2.
    2L'architecture Vos scénarios Vos données RobotFramework Built in + Standard Tierce partie (ex : Selenium2, ssh,...) Personnelles (ex : Drupal, ...) Libraries RF Libraries RF Scénarios (HTML) Rapports (HTML)
  • 3.
    3 En bref ● Framework générique ● Keyworddriven ● Data driven ● À la Gherkin (Behat, Cucumber, Lettuce) ● Langages ● Python / Jython / Iron Python ● Java ● Autres langages via XMLRPC ● API / Hooks pour Java et Python ● Vos Libraries / Keywords ● Vos sources de données
  • 4.
    4 Libraries ● Fournissent des « Keywords »pour une cible de tests particulière : ● Navigateur ● SSH ● Protocole de communication (FTP, ...) ● ... ● Réalisables en : ● Python (+ C/C++), ● Java, ● Jython ● Iron Python + autre langage pour CLR .Net Cohérence langages pour RF et Libraries
  • 5.
    5 Libraries standard ● Builtin : Keywordsles plus fréquemment utilisés (comparaison, accès aux variables, ...). « Builtin » = ne nécessite pas d'import explicite ● OperatingSystem : «cd », « ls », « mkdir », « cp », « mv », ... ● Screenshot : comme son nom l'indique, généralement pour figurer dans le CR de test ● Collections : manipulez des listes et des dictionnaires ● Et aussi : String, Dialogs, XML, Process, Remote
  • 6.
    6 Librairies tierces ● AndroidLibrary et IOSLibrary: Pilotage et introspection d'applis Android et iOS via Calabash ● ArchiveLibrary : Exploration des zip, tar.gz et tar.bz2 ● AutoItLibrary : Contrôle et vérification d'appli Windows via AutoIt ● DatabaseLibrary : Du SQL dans RobotFramework ● FTPLibrary, HTTPLibrary, SSHLibrary : Devinez quoi... ● Selenium2Library : Contrôle de Firefox ou Chrome, inspection du HTML ● SudsLibrary : Web services SOAP ● EclipseLibrary et SwingLibrary : Applications Java avec UI ● Et aussi... http://robotframework.org/#test-libraries ● Et encore... https://pypi.python.org/pypi?%3Aaction=search&term=robotframework
  • 7.
    7 Votre Library ● Peut êtrefournie dans les tests eux-mêmes, composée avec les keywords existants *** Settings *** Documentation Ma belle library perso ... ... bla bla bla *** Keywords *** Calculator has been cleared Push button C User types "${expression}" Push buttons ${expression}
  • 8.
    8Votre scénario ● En HTML ● Dansdes tables ● En CSV ● Idem... ● En texte brut ● C'est le plus simple...
  • 9.
    9 Exemple de suite (minimaliste) ***Settings *** Documentation Example test cases using the keyword-driven testing approach. ... ... All tests contain a workflow constructed from keywords in ... `CalculatorLibrary`. Creating new tests or editing existing ... is easy even for people without programming skills. ... Library CalculatorLibrary *** Test Cases *** Push button Push button 1 Result should be 1 Push multiple buttons Push button 1 Push button 2 Result should be 12 Clear Push button 1 Push button C Result should be ${EMPTY} # ${EMPTY} is a built-in variable
  • 10.
    10Support auteur ● Editeurs ● Modes pourVIM, Emacs, SublimeText, ... ● Plugin IntelliJ (PyCharm, PHPStorm, ...) et Eclipse avec complétion intelligente ● RIDE : IDE + Testrunner dédié ● Autres... ● Sphinx : intégration des tests dans la doc Scénarios de test ================= .. literalinclude:: signin_test.txt :language: robotframework
  • 11.
    11 Support PIC ● Compatible avecles « testrunners » Python classiques (unittest, test.py, nose, ...) ● Compatible JUnit ● Compatible Jenkins / Travis ● option –-xunit result.xml