SlideShare a Scribd company logo
2
Most read
3
Most read
9
Most read
Testing with Jenkins, Selenium and
      Continuous Deployment
           Max Klymyshyn
              oDesk PS

           Twitter: @maxmaxmaxmax
                  Github: joymax
The problem
We need to run our tests periodically
Tests execution take a lot of time, it’s not an option to run on
integrator’s machine all the time
We want to run our Selenium tests on separated branches
We don’t have persistent Selenium Grid nodes
Blah blah, the CI problem...
The solution

Jenkins as Continuous Integration tool
Selenium Grid + Tests execution service with Amazon AWS
instances on-demand
Deployment tool which can deploy any version of the code
within isolated environment
TOC
Jenkins configuration
Selenium Grid and Amazon AWS architecture
Deployment tool with Fabric, Gunicorn, Nginx (+ Celery,
Redis and Solr)
Shortcuts for developers
A bit about libraries development
Stack
Flask
Mongo
Solr
Redis
Celery
Jenkins

Coverage
Tests results trend (junit reports)
JSLint
Pylint
Tests execution

unit, integration, consistency tests with Nose
Lettuce for forms and overall site UX
JavaScript tests with Rhino and Flask-Jasmine
Selenium UI tests
Selenium Tests
 Execute tests

 Start selenium node(s) with
 requested browser(s)

 Execute selenium tests

 Shutdown node
Selenium Tests and Jenkins
 Headless tests (pass)


 Deploy current commit

 Execute selenium tests

 Destroy deployed commit
on-demand selenium nodes
Tests runner      IE9 / Win

                  IE8 / Win

                   IE7 / Win
Service            FF / Win

                    Chrome / Win

                     FF / Linux
Selenium Grid 2      Chrome / Linux
Selenium tests during dev

Developer execute tests with specific browser
It’s not necessary to have browser
It’s possible to debug tests with IPDB
It’s possible to see what’s going on on remove node using
Selenium Node admin or making screenshots
Tests runner configuration

 [runner]
api_key=XXXXXXXXX
nose_args=-v
nose_single_test_args=-vc
selenium_host=http://s.sample.com/wd/hub
rpc_host=http://rpc.s.sample.com
Browsers configuration
    [internetexplorer-9]
name=internetexplorer
version=9
platform=WINDOWS

[internetexplorer-7]
name=internetexplorer
version=7
platform=WINDOWS
Tests execution
     # Execute selenium tests in all
     browsers
uitestrunner -c browsers.cfg -a

# Execute synchronously in IE9 (+IPDB)
uitestrunner -c browsers.cfg -s -b
internetexplorer-9

# Execute one test
$ uitestrunner -c browsers.cfg 
-b internetexplorer-9 -t
Deployment tool FTW
Get commit or branch      Create virtualenv


Add Solr core             install requirements

Create mongo DB           gunicorn by template

Generate local_settings   celery by template

start services            nginx by template
The flow for developers
The problem:
   QA engineer should check quality of each issue/branch
   Developer should provide β€œlive” url to its branch
Solution:
   Deploy specific branch
   Provide URL to it to QA engineer
Shortcuts for developers

Execute shortcuts in working branch:
doit deploy
doit destroy
doit restart
doit cleanup_build
Summary

Easy-to-demonstrate new changes
Easy to QA
All team members informed about status
Questions?

More Related Content

PPTX
Automation - web testing with selenium
Tzirla Rozental
Β 
PPTX
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Simplilearn
Β 
PDF
Automation Testing using Selenium
Naresh Chintalcheru
Β 
PPT
Selenium Presentation at Engineering Colleges
Vijay Rangaiah
Β 
PPTX
Automation Testing by Selenium Web Driver
Cuelogic Technologies Pvt. Ltd.
Β 
PDF
e2e testing with cypress
Tomasz Bak
Β 
PPTX
An overview of selenium webdriver
Anuraj S.L
Β 
PDF
Postman
Igor Shubovych
Β 
Automation - web testing with selenium
Tzirla Rozental
Β 
Selenium Tutorial For Beginners | Selenium Automation Testing Tutorial | Sele...
Simplilearn
Β 
Automation Testing using Selenium
Naresh Chintalcheru
Β 
Selenium Presentation at Engineering Colleges
Vijay Rangaiah
Β 
Automation Testing by Selenium Web Driver
Cuelogic Technologies Pvt. Ltd.
Β 
e2e testing with cypress
Tomasz Bak
Β 
An overview of selenium webdriver
Anuraj S.L
Β 
Postman
Igor Shubovych
Β 

What's hot (20)

PPTX
Selenium test automation
Srikanth Vuriti
Β 
PPTX
Kubernetes Selenium Grid
Amrit pal singh
Β 
PPTX
Jenkins tutorial
Mamun Rashid, CCDH
Β 
PPTX
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
STePINForum
Β 
PDF
Selenium with Cucumber
Knoldus Inc.
Β 
PDF
Continuous Inspection of Code Quality: SonarQube
Emre DΓΌndar
Β 
PPT
QSpiders - Automation using Selenium
Qspiders - Software Testing Training Institute
Β 
PPT
Selenium
Adam Goucher
Β 
PDF
Cypress - Best Practices
Brian Mann
Β 
PPTX
Selenium WebDriver training
Vijay Krishnan Ramaswamy
Β 
PPTX
Introduction to Docker - 2017
Docker, Inc.
Β 
PPT
Automation testing
Biswajit Pratihari
Β 
KEY
Selenium Grid
nirvdrum
Β 
PDF
Automated testing with Cypress
Yong Shean Chong
Β 
PPTX
Introduction to selenium
Archana Krushnan
Β 
PPTX
Cucumber presenation
Oussama BEN WAFI
Β 
PDF
Selenium at Salesforce Scale
Salesforce Engineering
Β 
PPTX
Mobile Automation with Appium
Manoj Kumar Kumar
Β 
PPTX
BDD WITH CUCUMBER AND JAVA
Srinivas Katakam
Β 
PDF
Automated vs manual testing
Kanoah
Β 
Selenium test automation
Srikanth Vuriti
Β 
Kubernetes Selenium Grid
Amrit pal singh
Β 
Jenkins tutorial
Mamun Rashid, CCDH
Β 
Docker–Grid (A On demand and Scalable dockerized selenium grid architecture)
STePINForum
Β 
Selenium with Cucumber
Knoldus Inc.
Β 
Continuous Inspection of Code Quality: SonarQube
Emre DΓΌndar
Β 
QSpiders - Automation using Selenium
Qspiders - Software Testing Training Institute
Β 
Selenium
Adam Goucher
Β 
Cypress - Best Practices
Brian Mann
Β 
Selenium WebDriver training
Vijay Krishnan Ramaswamy
Β 
Introduction to Docker - 2017
Docker, Inc.
Β 
Automation testing
Biswajit Pratihari
Β 
Selenium Grid
nirvdrum
Β 
Automated testing with Cypress
Yong Shean Chong
Β 
Introduction to selenium
Archana Krushnan
Β 
Cucumber presenation
Oussama BEN WAFI
Β 
Selenium at Salesforce Scale
Salesforce Engineering
Β 
Mobile Automation with Appium
Manoj Kumar Kumar
Β 
BDD WITH CUCUMBER AND JAVA
Srinivas Katakam
Β 
Automated vs manual testing
Kanoah
Β 
Ad

Viewers also liked (20)

PDF
Jenkins & Selenium
adamcarmi
Β 
PPTX
Smarter ways to do selenium automation @ work, Selenium, automation
RIA RUI Society
Β 
PPTX
Genymotion with Jenkins
Vishal Nayak
Β 
PPTX
Using Selenium and Cucumber to test a Healthcare Information System
andytinkham
Β 
PPTX
Wix automation
itay shmool
Β 
PDF
Metrics to guide: agile fluency, continuous delivery and product teams
Wouter Lagerweij
Β 
PPTX
MyHeritage - End 2 End testing Infra
MatanGoren
Β 
PDF
Continous UI testing with Espresso and Jenkins
Sylwester Madej
Β 
PDF
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale
Β 
PPTX
Mobile WebDriver Selendroid
Dominik Dary
Β 
PDF
Writing multi-language documentation using Sphinx
Markus Zapke-GrΓΌndemann
Β 
PDF
Continuous Integration Testing in Django
Kevin Harvey
Β 
PPT
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
SOASTA
Β 
PPTX
Build mobile application that is easy to automate
adamcarmi
Β 
PPTX
Sphinx + robot framework = documentation as result of functional testing
plewicki
Β 
PDF
The road to continuous deployment (PHPCon Poland 2016)
Michiel Rook
Β 
PDF
Jenkins automation
Aleksey Maksimov
Β 
PPTX
Agile scrum roles
David Tzemach
Β 
PDF
Yale Jenkins Show and Tell
E. Camden Fisher
Β 
PPT
Selenium ppt
Pavan Kumar
Β 
Jenkins & Selenium
adamcarmi
Β 
Smarter ways to do selenium automation @ work, Selenium, automation
RIA RUI Society
Β 
Genymotion with Jenkins
Vishal Nayak
Β 
Using Selenium and Cucumber to test a Healthcare Information System
andytinkham
Β 
Wix automation
itay shmool
Β 
Metrics to guide: agile fluency, continuous delivery and product teams
Wouter Lagerweij
Β 
MyHeritage - End 2 End testing Infra
MatanGoren
Β 
Continous UI testing with Espresso and Jenkins
Sylwester Madej
Β 
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale
Β 
Mobile WebDriver Selendroid
Dominik Dary
Β 
Writing multi-language documentation using Sphinx
Markus Zapke-GrΓΌndemann
Β 
Continuous Integration Testing in Django
Kevin Harvey
Β 
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
SOASTA
Β 
Build mobile application that is easy to automate
adamcarmi
Β 
Sphinx + robot framework = documentation as result of functional testing
plewicki
Β 
The road to continuous deployment (PHPCon Poland 2016)
Michiel Rook
Β 
Jenkins automation
Aleksey Maksimov
Β 
Agile scrum roles
David Tzemach
Β 
Yale Jenkins Show and Tell
E. Camden Fisher
Β 
Selenium ppt
Pavan Kumar
Β 
Ad

Similar to Testing with Jenkins, Selenium and Continuous Deployment (20)

PPT
Selenium2 and Jenkins: Almost pain-free UI Testing
mikereedell
Β 
PPTX
Jenkins presentation
Valentin Buryakov
Β 
PPTX
Kubernetes your tests! automation with docker on google cloud platform
LivePerson
Β 
PPTX
Selenium
Mayuresh Wadekar
Β 
PDF
Selenoid: browsers in containers
Ivan Krutov
Β 
PDF
QA Fest 2017. Иван ΠšΡ€ΡƒΡ‚ΠΎΠ². Selenoid: запускаСм Selenium тСсты Π² Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉ...
QAFest
Β 
DOC
Sel
Sandeep A R
Β 
PPTX
Jenkins days workshop pipelines - Eric Long
ericlongtx
Β 
PPTX
Automated Testing using JavaScript
Simon Guest
Β 
ODP
Automated UI testing with Selenium
Yuriy Gerasimov
Β 
ODP
Mastering selenium for automated acceptance tests
Nick Belhomme
Β 
PPT
Selenium (1)
onlinemindq
Β 
PDF
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Andy Pemberton
Β 
PPTX
Selenium – testing tool jack
Jackseen Jeyaluck
Β 
PDF
Automated UI testing.Selenium.DrupalCamp Kyiv 2011
camp_drupal_ua
Β 
DOCX
Best Selenium Online Training
Samatha Kamuni
Β 
PPTX
Automated testing with Drupal
Promet Source
Β 
PPTX
Selenium - Introduction
Sachin-QA
Β 
PPSX
Selenium - Introduction
ANKUR-BA
Β 
PPTX
Selenium
Abror Khoerun Nizam
Β 
Selenium2 and Jenkins: Almost pain-free UI Testing
mikereedell
Β 
Jenkins presentation
Valentin Buryakov
Β 
Kubernetes your tests! automation with docker on google cloud platform
LivePerson
Β 
Selenium
Mayuresh Wadekar
Β 
Selenoid: browsers in containers
Ivan Krutov
Β 
QA Fest 2017. Иван ΠšΡ€ΡƒΡ‚ΠΎΠ². Selenoid: запускаСм Selenium тСсты Π² Docker ΠΊΠΎΠ½Ρ‚Π΅ΠΉ...
QAFest
Β 
Jenkins days workshop pipelines - Eric Long
ericlongtx
Β 
Automated Testing using JavaScript
Simon Guest
Β 
Automated UI testing with Selenium
Yuriy Gerasimov
Β 
Mastering selenium for automated acceptance tests
Nick Belhomme
Β 
Selenium (1)
onlinemindq
Β 
Jenkins Days - Workshop - Let's Build a Pipeline - Los Angeles
Andy Pemberton
Β 
Selenium – testing tool jack
Jackseen Jeyaluck
Β 
Automated UI testing.Selenium.DrupalCamp Kyiv 2011
camp_drupal_ua
Β 
Best Selenium Online Training
Samatha Kamuni
Β 
Automated testing with Drupal
Promet Source
Β 
Selenium - Introduction
Sachin-QA
Β 
Selenium - Introduction
ANKUR-BA
Β 

More from Max Klymyshyn (20)

PDF
Papers We Love Kyiv, July 2018: A Conflict-Free Replicated JSON Datatype
Max Klymyshyn
Β 
PDF
KharkivJS 2017: ΠšΠΎΠ»Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ систСмы ΠΈ CRDT
Max Klymyshyn
Β 
PDF
OdessaJS 2017: Groupware Systems for fun and profit
Max Klymyshyn
Β 
PDF
PyCon Ukraine 2017: Operational Transformation
Max Klymyshyn
Β 
PDF
Communicating Sequential Processes (CSP) in JavaScript
Max Klymyshyn
Β 
PDF
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
Max Klymyshyn
Β 
PDF
Fighting async JavaScript (CSP)
Max Klymyshyn
Β 
PDF
React.js: УскоряСм UX/UI
Max Klymyshyn
Β 
PDF
KharkovPy #12: I/O in Python apps and smart logging (russian)
Max Klymyshyn
Β 
PDF
5 ΠΌΠΈΡ„ΠΎΠ² ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Python
Max Klymyshyn
Β 
PDF
Π˜Π·ΠΎΡ„ΠΎΡ€ΠΌΠ½Ρ‹Π΅ прилоТСния Π½Π° React.js
Max Klymyshyn
Β 
PDF
Π˜Π·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ JavaScript (iForum 2015)
Max Klymyshyn
Β 
PDF
Π’Ρ€Π°Π½ΡΠ΄ΡŽΡΠ΅Ρ€Ρ‹, CSP ΠΊΠ°Π½Π°Π»Ρ‹, нСизмСняСмыС структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² JavaScript
Max Klymyshyn
Β 
PDF
PiterPy 2015 - Π’Ρ€Π°Π½ΡΠ΄ΡŽΡΠ΅Ρ€Ρ‹ ΠΈ Python
Max Klymyshyn
Β 
PDF
Robust web apps with React.js
Max Klymyshyn
Β 
PDF
LvivJS 2014 - Win-win c React.js
Max Klymyshyn
Β 
PDF
Π˜Π½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ ΠΈ JavaScript
Max Klymyshyn
Β 
PDF
Odessapy2013 - Graph databases and Python
Max Klymyshyn
Β 
PDF
Angular.js - JS Camp UKraine 2013
Max Klymyshyn
Β 
PPT
Π—Π°Ρ‡Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ΄?
Max Klymyshyn
Β 
Papers We Love Kyiv, July 2018: A Conflict-Free Replicated JSON Datatype
Max Klymyshyn
Β 
KharkivJS 2017: ΠšΠΎΠ»Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ систСмы ΠΈ CRDT
Max Klymyshyn
Β 
OdessaJS 2017: Groupware Systems for fun and profit
Max Klymyshyn
Β 
PyCon Ukraine 2017: Operational Transformation
Max Klymyshyn
Β 
Communicating Sequential Processes (CSP) in JavaScript
Max Klymyshyn
Β 
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
Max Klymyshyn
Β 
Fighting async JavaScript (CSP)
Max Klymyshyn
Β 
React.js: УскоряСм UX/UI
Max Klymyshyn
Β 
KharkovPy #12: I/O in Python apps and smart logging (russian)
Max Klymyshyn
Β 
5 ΠΌΠΈΡ„ΠΎΠ² ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Python
Max Klymyshyn
Β 
Π˜Π·ΠΎΡ„ΠΎΡ€ΠΌΠ½Ρ‹Π΅ прилоТСния Π½Π° React.js
Max Klymyshyn
Β 
Π˜Π·ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ JavaScript (iForum 2015)
Max Klymyshyn
Β 
Π’Ρ€Π°Π½ΡΠ΄ΡŽΡΠ΅Ρ€Ρ‹, CSP ΠΊΠ°Π½Π°Π»Ρ‹, нСизмСняСмыС структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² JavaScript
Max Klymyshyn
Β 
PiterPy 2015 - Π’Ρ€Π°Π½ΡΠ΄ΡŽΡΠ΅Ρ€Ρ‹ ΠΈ Python
Max Klymyshyn
Β 
Robust web apps with React.js
Max Klymyshyn
Β 
LvivJS 2014 - Win-win c React.js
Max Klymyshyn
Β 
Π˜Π½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ ΠΈ JavaScript
Max Klymyshyn
Β 
Odessapy2013 - Graph databases and Python
Max Klymyshyn
Β 
Angular.js - JS Camp UKraine 2013
Max Klymyshyn
Β 
Π—Π°Ρ‡Π΅ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ ΠΊΠΎΠ΄?
Max Klymyshyn
Β 

Recently uploaded (20)

PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
Β 
PDF
Software Development Company | KodekX
KodekX
Β 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
Β 
PDF
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
Β 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
Β 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
Β 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
Β 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
Β 
PPTX
Comunidade Salesforce SΓ£o Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira JΓΊnior
Β 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
Β 
PPTX
Smart Infrastructure and Automation through IoT Sensors
Rejig Digital
Β 
PPTX
Stamford - Community User Group Leaders_ Agentblazer Status, AI Sustainabilit...
Amol Dixit
Β 
PDF
Software Development Methodologies in 2025
KodekX
Β 
PDF
This slide provides an overview Technology
mineshkharadi333
Β 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
Β 
PPTX
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
Β 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
Β 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
Β 
PPT
Coupa-Kickoff-Meeting-Template presentai
annapureddyn
Β 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
Β 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
Β 
Software Development Company | KodekX
KodekX
Β 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
Β 
Advances in Ultra High Voltage (UHV) Transmission and Distribution Systems.pdf
Nabajyoti Banik
Β 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
Β 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
Β 
REPORT: Heating appliances market in Poland 2024
SPIUG
Β 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
Β 
Comunidade Salesforce SΓ£o Paulo - Desmistificando o Omnistudio (Vlocity)
Francisco Vieira JΓΊnior
Β 
Presentation about Hardware and Software in Computer
snehamodhawadiya
Β 
Smart Infrastructure and Automation through IoT Sensors
Rejig Digital
Β 
Stamford - Community User Group Leaders_ Agentblazer Status, AI Sustainabilit...
Amol Dixit
Β 
Software Development Methodologies in 2025
KodekX
Β 
This slide provides an overview Technology
mineshkharadi333
Β 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
Β 
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
Β 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
Β 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
Β 
Coupa-Kickoff-Meeting-Template presentai
annapureddyn
Β 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
Β 

Testing with Jenkins, Selenium and Continuous Deployment

  • 1. Testing with Jenkins, Selenium and Continuous Deployment Max Klymyshyn oDesk PS Twitter: @maxmaxmaxmax Github: joymax
  • 2. The problem We need to run our tests periodically Tests execution take a lot of time, it’s not an option to run on integrator’s machine all the time We want to run our Selenium tests on separated branches We don’t have persistent Selenium Grid nodes Blah blah, the CI problem...
  • 3. The solution Jenkins as Continuous Integration tool Selenium Grid + Tests execution service with Amazon AWS instances on-demand Deployment tool which can deploy any version of the code within isolated environment
  • 4. TOC Jenkins configuration Selenium Grid and Amazon AWS architecture Deployment tool with Fabric, Gunicorn, Nginx (+ Celery, Redis and Solr) Shortcuts for developers A bit about libraries development
  • 6. Jenkins Coverage Tests results trend (junit reports) JSLint Pylint
  • 7. Tests execution unit, integration, consistency tests with Nose Lettuce for forms and overall site UX JavaScript tests with Rhino and Flask-Jasmine Selenium UI tests
  • 8. Selenium Tests Execute tests Start selenium node(s) with requested browser(s) Execute selenium tests Shutdown node
  • 9. Selenium Tests and Jenkins Headless tests (pass) Deploy current commit Execute selenium tests Destroy deployed commit
  • 10. on-demand selenium nodes Tests runner IE9 / Win IE8 / Win IE7 / Win Service FF / Win Chrome / Win FF / Linux Selenium Grid 2 Chrome / Linux
  • 11. Selenium tests during dev Developer execute tests with specific browser It’s not necessary to have browser It’s possible to debug tests with IPDB It’s possible to see what’s going on on remove node using Selenium Node admin or making screenshots
  • 12. Tests runner configuration [runner] api_key=XXXXXXXXX nose_args=-v nose_single_test_args=-vc selenium_host=http://s.sample.com/wd/hub rpc_host=http://rpc.s.sample.com
  • 13. Browsers configuration [internetexplorer-9] name=internetexplorer version=9 platform=WINDOWS [internetexplorer-7] name=internetexplorer version=7 platform=WINDOWS
  • 14. Tests execution # Execute selenium tests in all browsers uitestrunner -c browsers.cfg -a # Execute synchronously in IE9 (+IPDB) uitestrunner -c browsers.cfg -s -b internetexplorer-9 # Execute one test $ uitestrunner -c browsers.cfg -b internetexplorer-9 -t
  • 15. Deployment tool FTW Get commit or branch Create virtualenv Add Solr core install requirements Create mongo DB gunicorn by template Generate local_settings celery by template start services nginx by template
  • 16. The flow for developers The problem: QA engineer should check quality of each issue/branch Developer should provide β€œlive” url to its branch Solution: Deploy specific branch Provide URL to it to QA engineer
  • 17. Shortcuts for developers Execute shortcuts in working branch: doit deploy doit destroy doit restart doit cleanup_build
  • 18. Summary Easy-to-demonstrate new changes Easy to QA All team members informed about status

Editor's Notes