Integrační testy - Selenium

18
Intro Selenium Selenium IDE Selenium WebDriver Selenium Grid The Plan Integration tests Jakub Novotn´ y October 13, 2014 Jakub Novotn´ y Keyup Integration tests

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