Distributed Testing Environment
Upcoming SlideShare
Loading in...5
×
 

Distributed Testing Environment

on

  • 3,718 views

Distributed Testing Environment with Jenkins and virtual machines. Presented on 3-rd PTaQ meetup.

Distributed Testing Environment with Jenkins and virtual machines. Presented on 3-rd PTaQ meetup.

Statistics

Views

Total Views
3,718
Views on SlideShare
3,713
Embed Views
5

Actions

Likes
3
Downloads
27
Comments
2

2 Embeds 5

http://www.linkedin.com 3
https://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • you can check the https://loadfocus.com JMeter Load and Performance service in the cloud on AWS, it's reliable and supports thousands of concurrent users
    Are you sure you want to
    Your message goes here
    Processing…
  • For distributed testing you can also use this plugin https://wiki.jenkins-ci.org/display/JENKINS/BlazeMeter+Plugin. You do not need configure slaves to run distributed load testing as all tests run on configured cloud servers.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Distributed Testing Environment Distributed Testing Environment Presentation Transcript

  • Distributed TestingEnvironmentŁukasz Morawski
  • The Stories• John The Testeris a manual tester,• He is ordered todo an automation,• So he does,• He develop sometests, he runs iton his box
  • The Stories• The more tests he develops, the more time tests lasts,• At first, it takes couple minutes,• Later, it takes dozen,• It is a lot of time!He cannot afford tostare at running tests
  • ...and the crucial is...
  • ...and the crucial is
  • The problem• QA team needs to provide test feedback as soon as it’s possible,• Automated tests need to be “Fast and Furious”.
  • Distributed testing environmenton virtual machines.
  • ...but at the beginning there was         Eternity...• server hosting Hudson,• test execution testbed forSelenium IDE tests,• but one executor meansone test at a time.
  • VM and Hyper-V• QA team uses Hyper-Vvirtualization software,• It let us to run ~14 VM,• CPU is not the problem,• Memory is the problem,• 80% free memory rule – swapping leads to serious performance lost,• We have GEB and BES servers available for us:• BES – manual tests environments for testers and developers (different OS, different browsers, mobiles),
  • VM and Hyper-V• GEB – automated tests environments.• Slaves for us and our clients,• Jenkins,• Applications – QA Lab uses this machine to provide tools and services for our test framework. So far we have W3C Markup Validation service – our Validation Tool uses it.
  • VM and Hyper-V All machines are under Nagios supervision, It let us to control if the environment is up and ready to go, Notifies by e-mail if something is wrong.
  • VM Future• More tools available for our testing framework (W3C tools),• Different browsers/browsers version,• Maybe different virtualization system – bare metal hyper- visors seems to look promising,• Cloud – as a main resource, as a backup resource.
  • Centralized Automated testdriving with Jenkins CI• QA Team use Jenkins CI tool to drive tests,• We have Jenkins deployed in a Tomcat container,• We use SLAVE AGENTS as a communication channel,• It’s not greatest solution because CI tools are rather build tools not testing tools.
  • How we use Jenkins...• We use Views to manage projects
  • How we use Jenkins... • We use “distributed builds” feature to manage parallel testing (speed up) with several slaves,
  • How we use Jenkins... • We use labels to nickname a slaves (ff36, ff4, winxp).• We use “Restrict where this project can be run” to configure a test job run.
  • How we use Jenkins...• For performance testing we use JMeter and JMeter plugin for Jenkins.
  • How we use Jenkins...• We use “Configuration Matrix” for some jobs.
  • How we use Jenkins...• We use “Discard old builds” to save disk space.
  • How we use Jenkins... • We use Jenkins Remote Access API, • We use “Trigger build remotely” to run build from outside:• ...and tools like curl/wget to trigger it:curl --user user:password JENKINS/view/project/job/build?token=token
  • How we use Jenkins...• We try follow some time line guidelines: 00:00 to 08:00 - Automated/scheduled tests, nightly test, 08:00 to 21:00 - work day, manual/scheduled test, 21:00 to 00:00 - daily/weekly maintenance time,
  • Maintenance problem• We suffer with maintenance problem while managing so many VM – we use STAF for performing actions on all machines.
  • Maintenance problem• These machines lives and to prevent deterioration we enforce some maintenance tasks.
  • Maintenance problem• Daily tasks (21:00): Weekly tasks (21:00 Sunday):• Restart, Cleaner,• Set screen resolution,• Resources. Defragmentation, Anti-Virus Scan, Windows updates.
  • Jenkins future• Browsers auto updating,• Dynamic slave management,• Custom framework – leave Jenkins bottlenecks behind and build your own,
  • The answer• Distributed testing environment on virtual machines,• Centralized automated test driving with Jenkins CI.
  • Benefits of presented solution• Easy way to extend test environment (just clone VM and voila),• ...which let us to speed up tests by splitting and paralleling,• Easy way to restore corrupted system (revert snapshot, copy VM disk file),• HQ for managing tests with different tools (Selenium, Webdriver, Jmeter, Wapiti, Test Complete, AutoIt...),• Built-in features and plugins (e.g.: SVN client),