Integrační testy - Selenium
Transcript of Integrační testy - Selenium
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Integration tests
Jakub Novotny
October 13, 2014
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Why integration testing?
I unit tests just for units
I database? ajax? ...?
I test complex modular system in the real environment
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium
Framework for automated web browser testing
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium Components
I Selenium IDE
I Selenium RemoteControll (deprecated)
I Selenium WebDriver
I Selenium Grid
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium IDE
I Firefox plugin
I create and run sequence of commandsI good for
I simple base of new testI bug reproduction
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium IDE
I record sequence of commands
I choose or write commands
I select elements
I choose content verifications
I export
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium IDE - Commands
I actions: open, type, clickAndWait, ...
I assertions: assertTitle, assertTextPresent,assertTextPresent, assertElementPresent,assertValue, ...
I verifications: verifyTitle, verifyTextPresent,verifyTextPresent, verifyElementPresent,verifyValue, ...
I wait: waitForPageToLoad, waitForTextPresent,waitForAlert, ...
I store and print: storeAlert $varName, storeText$varName, echo $varName, ...
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium IDE - Creating the test
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium IDE - Custom Commands
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Exported Script
1 def t e s t g r e e t p y t h o n ( s e l f ) :2 d r i v e r = s e l f . d r i v e r3 d r i v e r . g e t ( s e l f . b a s e u r l + ”/ i n t e g r a t i o n t e s t i n g /” )4 d r i v e r . f i n d e l e m e n t b y n a m e ( ”name” ) . c l e a r ( )5 d r i v e r . f i n d e l e m e n t b y n a m e ( ”name” ) . s e n d k e y s ( ” Jakub ” )6 d r i v e r . f i n d e l e m e n t b y c s s s e l e c t o r ( ” button ” ) . c l i c k ( )7 s e l f . a s s e r t E q u a l ( ” H e l l o Jakub ” , d r i v e r .
f i n d e l e m e n t b y c s s s e l e c t o r ( ”h1” ) . t e x t )
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium WebDriver
I API for controlling the browsers
I programing against WebDriver
I similar commands as in Selenium IDE
I can be run after automatically after some action
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium WebDriver - Browser Drivers
I Firefox
I Chrome
I Android
I IE
I Safari
I PhantomJS
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium WebDriver - Languages
I Java
I C#
I Ruby
I Python
I Javascript (Node)
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Selenium Grid
I controls and runs the tests on several machines
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
PHP Project
I git hook
I deploy on test server
I run unit tests
I run the selenium tests under PhantomJS
I run tests on several browsers (testers/BrowserStack)
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Java Project
I build by Jenkins (runs unit tests)
I deploy on test server
I run the selenium tests under PhantomJS
I run tests on several browsers (testers/BrowserStack)
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
Java Project
I Selenium Grid plugin for jenkins
I build by Jenkins (runs unit tests)
I deploy on test server
I run the selenium tests on several browsers automatically
Jakub Novotny Keyup
Integration tests
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan
This is the end ...
...beautiful friendThis is the end, my only friend, the endOf our elaborate plans, the endOf everything that stands, the endNo safety or surprise, the endI’ll never look into your eyes, again
Jakub Novotny Keyup
Integration tests