2. 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. 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. 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 : 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. 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 ê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}
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 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. 11
Support PIC
●
Compatible avec les « testrunners » Python classiques (unittest,
test.py, nose, ...)
●
Compatible JUnit
●
Compatible Jenkins / Travis
●
option –-xunit result.xml