SlideShare a Scribd company logo
LOAD TESTING
using continuous integration tools
Richard Pitts
Sr. Load Test Engineer | CommerceHub
Agenda
 Our experience adding NeoLoad to our Continuous
Integration process.
1. Benefits of using CI to run NeoLoad
2. Why we run NeoLoad using CI
3. How NeoLoad + CI has helped us
4. Common pitfalls to avoid
5. Getting started + best practices
About CommerceHub
 Hosted services for e-commerce & retail.
 [B2B] Connection between 200+ retailers and 8,900 brands/distributors.
 Translate & route drop shipment orders amongst business partners.
 Goal: Facilitate e-commerce sales growth for our customers
 Processed $10bil GrossMerchValue for our customers in 2014 [33.7mil orders]
 Why performance matters to us:
 “retail busy season”: Black Friday  Christmas
 38k+ users  8.25 mil logins/yr
 2 mil hits per month on most visited web page
Benefits of using CI to run NeoLoad
Same benefit as any CI Job
 Easy to execute
 Easy to schedule
 Easy to monitor
 Build history
 Results in Workspace
Benefits of using NeoLoad Plugin
 Retrieve Neoload
results back into
to Jenkins
 Display Trends:
Avg Response
Time & Error Rate
 Maintain build
history & preserve
Neoload reports
for each build.
Benefits of using NeoLoad Plugin
Collaborate.
Easy to share.
Link to the build.
Why you should run NeoLoad using CI
 If load testing occurs less frequently than desired
 New development methodologies  more frequent releases
 Scheduled automation avoids waiting on humans, keeps a faster pace.
 Our Story…
 before NeoLoad
 with NeoLoad
 with NeoLoad plus CI
Load Testing before NeoLoad
• Close to the release date
• Late testing  Late Discoveries  Delayed Releases.
feature complete build
Monthly releases
Performance test
@ end of dev cycle
Load Testing before NeoLoad
 An automated tool could help us load test.
 Hopefully one that would inspire us to load test earlier + more often.
 Started to Trial + Assess several load testing tools
NeoLoad pilot
 Began recording &
designing our Neoload scripts
A better Load Test environment
 Properly designed for load testing @ high volume [150+ users]
 Used CI to automate deployment & configuration of this env
 On-premise Load Generators
 Web cluster behind Load Balancer
NeoLoad pilot: real progress
 Started generating performance test results
Success
 implement an automated load testing tool
 library of scripts
 now easier to include load testing for releases
 load testing more things, more often
 stockpile load test results for future benchmark comparisons
NeoLoad + Waterfall: How to?
So, how did we regularly include NeoLoad
tests as part of our waterfall releases?
NeoLoad + Waterfall: Option 1
Three options to include Neoload testing for a release:
1) author new NeoLoad scripts designed to target specific concerns.
 Record/Playback
 Configure for multi-user concurrency & unique data
 Run scripts
 Share results
NeoLoad + Waterfall: Option 2
Three options to include Neoload testing for a release:
2) run existing NeoLoad scripts + compare w/ previous release results
 Try/validate the scripts
 Update/fix outdated scripts
 Run scripts
 Share results
NeoLoad + Waterfall: Option 3
Three options to include Neoload testing for a release:
3) run NeoLoad scripts on project vs mainline branches, comparing results
 Run scripts on mainline branch to obtain baseline results
 Run scripts on project branch
 Compare project results to baseline results
 Is performance of the project branch better/no worse/worse than mainline
Results: Still a Waterfall
 Performance testing still occurred @ end of dev cycles
 Limited time to re-work performance issues before release dates.
 Often, the tests were short samples due to time constraints.
 The most recent set of results for comparison was often many weeks old.
 Centralized around performance engineer (bottleneck risk)
 Sometimes it was “testing for the sake of testing”
Meanwhile: Along comes Agile
 Continuous Integration of code
 Automated CI builds
 Continuous Delivery to test environments
 Automated regressions using CI builds
 Cross functional team members
 “Everyone is responsible for quality” approach
 Result:
 Sped up development + shortened our dev lifecycle!
Release more frequently
Load Testing + Agile Teams
 Team mindset: “Performance is everybody's job”
 But, most team members had little load testing experience.
 Result:
 Still had all of the same problems getting Load Tests done.
 Completed “in the margins” by perf engineer + agile team member.
 Relied upon Ops and/or performance engineer (bottleneck risk)
 Load testing wasn’t keeping pace with our Agile teams.
 Needed a way to bake Load Testing into our Agile process.
Load Testing + Agile Teams
 How could we include LT more often, under Agile process?
 Manual performance testing? [+leverage firebug, Yslow, Fiddler, etc.]
 Collect performance metrics while we run our automated regression?
 WebPagetest.org?
 Schedule NeoLoad to run using Cron jobs?
 Schedule NeoLoad to run using NeoLoad internal scheduler?
 Schedule Neoload to run using CI? Hmmmm… we do have Jenkins.
Jenkins NeoLoad plugin v4.2 [Nov 2013]
 Retrieve Neoload
results back into
to Jenkins
 Display Trends:
Avg Response
Time & Error Rate
 Maintain build
history & preserve
Neoload reports
for each build.
Gains from NeoLoad + CI
Daily
performance
“pulse”
Gains from NeoLoad + CI
JUnit test results based on SLA profiles
Gains from NeoLoad + CI
Collaborate.
Easy to share.
Link to the build.
Increased
Collaboration.
NeoLoad Tests: Controlled by CI
Scheduled nightly.
Lessons learned
Pitfalls to Avoid:
 Using only “happy path” scripts
 Comparing results over long gaps time  risky
 Comparing multiple short samples  inaccurate
 Swap sharing the Load Testing environment  bottlenecks
 Requiring involvement from Ops or perf. engineer  bottlenecks
Your turn!
 Run NeoLoad using Continuous Integration
Step1: get a CI Server, setup for NeoLoad
We used an existing remote Jenkins server.
Use your existing remote CI server
or install Jenkins along side NeoLoad.
Step2: add CI step to run NeoLoadCmd
Neotys’ Jenkins Integration Guide explains how to configure –options
Step3: Install NeoLoad plugin for Jenkins
Step4: retrieve Neoload results
Jenkins Integration Guide explains how to incorporate
NeoLoad results
Where to go from here?
Best practices & Pro Tips:
 Incorporate performance testing into every DevOps team
 Intelligent testing: only run load scripts that test the code that was changed
 Reduce the amount of time & resources needed for load testing
 For “hardening sprints”- setup a Stress test scenario. Run on-demand using CI
 Make use of email alerts and chat notifications in CI
Best Practices: Setup SLA profiles
 Setup SLA profiles so
pass/fail criteria are
bubbled up to CI results
Best Practices: Increase collaboration
Best Practices: Smoke test
 Smoke test first (low volume), then run full Load Test
Richard Pitts We are hiring:
pittsrt@gmail.com http://www.commercehub.com/about-us/careers/
Share with me:
How are you using CI to drive your NeoLoad process? Let me know.
Learn more:
http://www.neotys.com/introduction/neoload-continuous-integration.html
http://www.neotys.com/webcast/Continuous-Performance-Testing-with-NeoLoad.html
https://wiki.jenkins-ci.org/display/JENKINS/NeoLoad+Plugin
https://github.com/jenkinsci/neoload-plugin

More Related Content

PDF
Neoload
PPT
Load testing using_neoload by kc
PPT
Neoload overview
PPTX
Transform Software Testing and Quality with the Neotys-Inflectra Platform
PPTX
Introduction to performance testing
PPTX
QSpiders - Introduction to HP Load Runner
PPT
Loadrunner presentation
PPTX
Introduction to performance testing
Neoload
Load testing using_neoload by kc
Neoload overview
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Introduction to performance testing
QSpiders - Introduction to HP Load Runner
Loadrunner presentation
Introduction to performance testing

What's hot (20)

PPTX
An Introduction to Performance Testing
PPTX
Performance Testing from Scratch + JMeter intro
PPTX
Load Runner
PDF
Karate, the black belt of HTTP API testing?
PDF
Page object pattern
PDF
Performance testing presentation
PDF
Performance Engineering Masterclass: Introduction to Modern Performance
PDF
API_Testing_with_Postman
PPTX
Performance Testing using LoadRunner
PPT
Getting start with Performance Testing
PDF
An In-depth Review of Turinabol for bodybuilding.pdf
PDF
Fundamentals Performance Testing
PPTX
Introduction to Performance Testing & Loadrunner
PPTX
Test Automation Framework with BDD and Cucumber
PPTX
Beginning Java EE 6 勉強会(1) #bje_study
PPTX
Performance testing
PPT
Performance testing with Jmeter
PDF
Manual and Automation notes.pdf
PPTX
Microservices testing strategy-v2
PDF
How to go about testing in React?
An Introduction to Performance Testing
Performance Testing from Scratch + JMeter intro
Load Runner
Karate, the black belt of HTTP API testing?
Page object pattern
Performance testing presentation
Performance Engineering Masterclass: Introduction to Modern Performance
API_Testing_with_Postman
Performance Testing using LoadRunner
Getting start with Performance Testing
An In-depth Review of Turinabol for bodybuilding.pdf
Fundamentals Performance Testing
Introduction to Performance Testing & Loadrunner
Test Automation Framework with BDD and Cucumber
Beginning Java EE 6 勉強会(1) #bje_study
Performance testing
Performance testing with Jmeter
Manual and Automation notes.pdf
Microservices testing strategy-v2
How to go about testing in React?
Ad

Viewers also liked (9)

PPTX
JavaOne - Performance Focused DevOps to Improve Cont Delivery
PDF
Automated Performance Testing With J Meter And Maven
ODP
Gatling
PDF
Continous delivery with sbt
PPT
Performance testing and reporting with JMeter
PPTX
Using Jenkins and Jmeter to build a scalable Load Testing solution
PDF
Client-side Performance Testing
PDF
Yale Jenkins Show and Tell
PPT
CI and CD with Jenkins
JavaOne - Performance Focused DevOps to Improve Cont Delivery
Automated Performance Testing With J Meter And Maven
Gatling
Continous delivery with sbt
Performance testing and reporting with JMeter
Using Jenkins and Jmeter to build a scalable Load Testing solution
Client-side Performance Testing
Yale Jenkins Show and Tell
CI and CD with Jenkins
Ad

Similar to Load Testing using Continuous Integration tools (20)

PDF
STF 2015: Emerasoft presenta tre casi d'uso internazionali
PPTX
Stating the obvious - All Day DevOps 2017
PPTX
Multiple Dimensions of Load Testing
PPTX
Soasta | CloudBees webinar 11/12/2015
PDF
Continuous Delivery in a Legacy Shop—One Step at a Time
PDF
#ATAGTR2020 Presentation - Shift Left - Performance Testing
PPTX
Effective performance evaluation as part of a CI approach - Mission Impossible?
PDF
How To Introduce Cloud Based Load Testing to Your Jenkins Continuous Delivery...
PPTX
Test Automation and Continuous Integration
PPTX
QSpiders - Installation and Brief Dose of Load Runner
PDF
Sgin2013 scrumfromthe trenches-loadandperformancetestsinagilescrumframework-s...
PPTX
QSpiders - Introduction to JMeter
PDF
Neotys PAC 2018 - Ramya Ramalinga Moorthy
PPTX
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
PDF
Continuous Delivery in a Legacy Shop - One Step at a Time
PDF
Continuous Delivery in a Legacy Shop - One Step at a Time
PDF
Continuous Delivery of a Cloud Deployment at a Large Telecommunications Provider
PPTX
TestCon Vilnius 2017 - Stating the obvious
PPTX
Continuous integration testing fundamentals
PPTX
Tips and tricks for performance testing CI. Лайфхак для безперервного процесу...
STF 2015: Emerasoft presenta tre casi d'uso internazionali
Stating the obvious - All Day DevOps 2017
Multiple Dimensions of Load Testing
Soasta | CloudBees webinar 11/12/2015
Continuous Delivery in a Legacy Shop—One Step at a Time
#ATAGTR2020 Presentation - Shift Left - Performance Testing
Effective performance evaluation as part of a CI approach - Mission Impossible?
How To Introduce Cloud Based Load Testing to Your Jenkins Continuous Delivery...
Test Automation and Continuous Integration
QSpiders - Installation and Brief Dose of Load Runner
Sgin2013 scrumfromthe trenches-loadandperformancetestsinagilescrumframework-s...
QSpiders - Introduction to JMeter
Neotys PAC 2018 - Ramya Ramalinga Moorthy
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery in a Legacy Shop - One Step at a Time
Continuous Delivery of a Cloud Deployment at a Large Telecommunications Provider
TestCon Vilnius 2017 - Stating the obvious
Continuous integration testing fundamentals
Tips and tricks for performance testing CI. Лайфхак для безперервного процесу...

Recently uploaded (20)

PPTX
ai tools demonstartion for schools and inter college
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPT
Introduction Database Management System for Course Database
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
history of c programming in notes for students .pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administration Chapter 2
PDF
AI in Product Development-omnex systems
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Digital Strategies for Manufacturing Companies
PPTX
Online Work Permit System for Fast Permit Processing
ai tools demonstartion for schools and inter college
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
VVF-Customer-Presentation2025-Ver1.9.pptx
Introduction Database Management System for Course Database
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
history of c programming in notes for students .pptx
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administration Chapter 2
AI in Product Development-omnex systems
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
ManageIQ - Sprint 268 Review - Slide Deck
2025 Textile ERP Trends: SAP, Odoo & Oracle
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How Creative Agencies Leverage Project Management Software.pdf
Digital Strategies for Manufacturing Companies
Online Work Permit System for Fast Permit Processing

Load Testing using Continuous Integration tools

  • 1. LOAD TESTING using continuous integration tools Richard Pitts Sr. Load Test Engineer | CommerceHub
  • 2. Agenda  Our experience adding NeoLoad to our Continuous Integration process. 1. Benefits of using CI to run NeoLoad 2. Why we run NeoLoad using CI 3. How NeoLoad + CI has helped us 4. Common pitfalls to avoid 5. Getting started + best practices
  • 3. About CommerceHub  Hosted services for e-commerce & retail.  [B2B] Connection between 200+ retailers and 8,900 brands/distributors.  Translate & route drop shipment orders amongst business partners.  Goal: Facilitate e-commerce sales growth for our customers  Processed $10bil GrossMerchValue for our customers in 2014 [33.7mil orders]  Why performance matters to us:  “retail busy season”: Black Friday  Christmas  38k+ users  8.25 mil logins/yr  2 mil hits per month on most visited web page
  • 4. Benefits of using CI to run NeoLoad Same benefit as any CI Job  Easy to execute  Easy to schedule  Easy to monitor  Build history  Results in Workspace
  • 5. Benefits of using NeoLoad Plugin  Retrieve Neoload results back into to Jenkins  Display Trends: Avg Response Time & Error Rate  Maintain build history & preserve Neoload reports for each build.
  • 6. Benefits of using NeoLoad Plugin Collaborate. Easy to share. Link to the build.
  • 7. Why you should run NeoLoad using CI  If load testing occurs less frequently than desired  New development methodologies  more frequent releases  Scheduled automation avoids waiting on humans, keeps a faster pace.  Our Story…  before NeoLoad  with NeoLoad  with NeoLoad plus CI
  • 8. Load Testing before NeoLoad • Close to the release date • Late testing  Late Discoveries  Delayed Releases. feature complete build Monthly releases Performance test @ end of dev cycle
  • 9. Load Testing before NeoLoad  An automated tool could help us load test.  Hopefully one that would inspire us to load test earlier + more often.  Started to Trial + Assess several load testing tools
  • 10. NeoLoad pilot  Began recording & designing our Neoload scripts
  • 11. A better Load Test environment  Properly designed for load testing @ high volume [150+ users]  Used CI to automate deployment & configuration of this env  On-premise Load Generators  Web cluster behind Load Balancer
  • 12. NeoLoad pilot: real progress  Started generating performance test results
  • 13. Success  implement an automated load testing tool  library of scripts  now easier to include load testing for releases  load testing more things, more often  stockpile load test results for future benchmark comparisons
  • 14. NeoLoad + Waterfall: How to? So, how did we regularly include NeoLoad tests as part of our waterfall releases?
  • 15. NeoLoad + Waterfall: Option 1 Three options to include Neoload testing for a release: 1) author new NeoLoad scripts designed to target specific concerns.  Record/Playback  Configure for multi-user concurrency & unique data  Run scripts  Share results
  • 16. NeoLoad + Waterfall: Option 2 Three options to include Neoload testing for a release: 2) run existing NeoLoad scripts + compare w/ previous release results  Try/validate the scripts  Update/fix outdated scripts  Run scripts  Share results
  • 17. NeoLoad + Waterfall: Option 3 Three options to include Neoload testing for a release: 3) run NeoLoad scripts on project vs mainline branches, comparing results  Run scripts on mainline branch to obtain baseline results  Run scripts on project branch  Compare project results to baseline results  Is performance of the project branch better/no worse/worse than mainline
  • 18. Results: Still a Waterfall  Performance testing still occurred @ end of dev cycles  Limited time to re-work performance issues before release dates.  Often, the tests were short samples due to time constraints.  The most recent set of results for comparison was often many weeks old.  Centralized around performance engineer (bottleneck risk)  Sometimes it was “testing for the sake of testing”
  • 19. Meanwhile: Along comes Agile  Continuous Integration of code  Automated CI builds  Continuous Delivery to test environments  Automated regressions using CI builds  Cross functional team members  “Everyone is responsible for quality” approach  Result:  Sped up development + shortened our dev lifecycle! Release more frequently
  • 20. Load Testing + Agile Teams  Team mindset: “Performance is everybody's job”  But, most team members had little load testing experience.  Result:  Still had all of the same problems getting Load Tests done.  Completed “in the margins” by perf engineer + agile team member.  Relied upon Ops and/or performance engineer (bottleneck risk)  Load testing wasn’t keeping pace with our Agile teams.  Needed a way to bake Load Testing into our Agile process.
  • 21. Load Testing + Agile Teams  How could we include LT more often, under Agile process?  Manual performance testing? [+leverage firebug, Yslow, Fiddler, etc.]  Collect performance metrics while we run our automated regression?  WebPagetest.org?  Schedule NeoLoad to run using Cron jobs?  Schedule NeoLoad to run using NeoLoad internal scheduler?  Schedule Neoload to run using CI? Hmmmm… we do have Jenkins.
  • 22. Jenkins NeoLoad plugin v4.2 [Nov 2013]  Retrieve Neoload results back into to Jenkins  Display Trends: Avg Response Time & Error Rate  Maintain build history & preserve Neoload reports for each build.
  • 23. Gains from NeoLoad + CI Daily performance “pulse”
  • 24. Gains from NeoLoad + CI JUnit test results based on SLA profiles
  • 25. Gains from NeoLoad + CI Collaborate. Easy to share. Link to the build. Increased Collaboration.
  • 26. NeoLoad Tests: Controlled by CI Scheduled nightly.
  • 27. Lessons learned Pitfalls to Avoid:  Using only “happy path” scripts  Comparing results over long gaps time  risky  Comparing multiple short samples  inaccurate  Swap sharing the Load Testing environment  bottlenecks  Requiring involvement from Ops or perf. engineer  bottlenecks
  • 28. Your turn!  Run NeoLoad using Continuous Integration
  • 29. Step1: get a CI Server, setup for NeoLoad We used an existing remote Jenkins server. Use your existing remote CI server or install Jenkins along side NeoLoad.
  • 30. Step2: add CI step to run NeoLoadCmd Neotys’ Jenkins Integration Guide explains how to configure –options
  • 31. Step3: Install NeoLoad plugin for Jenkins
  • 32. Step4: retrieve Neoload results Jenkins Integration Guide explains how to incorporate NeoLoad results
  • 33. Where to go from here? Best practices & Pro Tips:  Incorporate performance testing into every DevOps team  Intelligent testing: only run load scripts that test the code that was changed  Reduce the amount of time & resources needed for load testing  For “hardening sprints”- setup a Stress test scenario. Run on-demand using CI  Make use of email alerts and chat notifications in CI
  • 34. Best Practices: Setup SLA profiles  Setup SLA profiles so pass/fail criteria are bubbled up to CI results
  • 35. Best Practices: Increase collaboration
  • 36. Best Practices: Smoke test  Smoke test first (low volume), then run full Load Test
  • 37. Richard Pitts We are hiring: pittsrt@gmail.com http://www.commercehub.com/about-us/careers/ Share with me: How are you using CI to drive your NeoLoad process? Let me know. Learn more: http://www.neotys.com/introduction/neoload-continuous-integration.html http://www.neotys.com/webcast/Continuous-Performance-Testing-with-NeoLoad.html https://wiki.jenkins-ci.org/display/JENKINS/NeoLoad+Plugin https://github.com/jenkinsci/neoload-plugin

Editor's Notes

  • #4: 38,000+ active users (out of 86k) 2 million hits per month on most popular page. Dashboard. (On AVG) For busy season, we expect hits on that page to be higher by a factor of 2 or 2.5
  • #5: CI tools themselves bring lots of value to the table.
  • #6: Available starting with Version 4.2 (Nov 2013)
  • #7: Archived report for every build. Easy to share Neoload test results. Provide a link to the build and everyone on the team, plus other stakeholders, can view Neoload reports and trends.
  • #9: Occasionally with Jmeter, but mostly manual tests
  • #10: Adopted Neoload and began our journey into Automated Performance Testing Technology Radar by ThoughtWorks (Hold, Assess, Trial, Adopt)
  • #11: Record/Playback, configure for concurrency and unique data, add error handling
  • #24: Build History + Test result trend graphs help us keep a daily “pulse” of the performance of our mainline branch We finally have constant monitoring of application performance.. Trends over several builds SLA pass/fall criteria bubble up to CI results
  • #25: SLA pass/fall criteria bubble up to CI results
  • #26: Archived report for every build. Easy to share Neoload test results. Provide a link to the build and everyone on the team, plus other stakeholders, can view Neoload reports and trends.
  • #28: Drawbacks, Tradeoffs, and Fallacies to avoid
  • #33: Add Post-build actions to incorporate Neoload Results, and archive results. If using SLAs, also Publish Junit test result XMLs
  • #36: First thing every morning, check the status of nightly Jenkins job in a HipChat room