0
Continuous Performance Testing
What you are about to witness
● Continious integration bla bla
● What is hudson?
● Performance Unit tests
● Load testing w...
Continuous Integration?
● Scheduled, automated build
● Know of problems early on
● Have a reasonably stable product at any...
Hudson CI
● A breeze to install, simple to configure
● Architecture:
– Triggers (scheduling)
– Hook to source control
– Bu...
Continuous performance
testing?
● Track regressions in product performance
● Meet specified performance requirements
● Put...
Performance Unit tests
● Junit – not very much (timeout?)
● Roll your own
● Test decorators to help
Threading, logging, mo...
When to test units for
performance?
● Sanity tests
● Performance critical units
● Before making changes that might cause
r...
System tests
● Try to emulate ”Real life” conditions: Test
plan, deployment
● Focus on finding out if something is wrong,
...
JMeter
● Tests are written in UI
● Various samplers: Http, DB, java
● Complicated tests are achived with
different test pl...
Grinder
● Generic and minimal ( == simple) approach
● Jython (python) scripts based
● Instrument tested code
● Instrument ...
What we did not cover
● Complex testing architecutre (distributed
testing, multiple deployment targets)
● Measuring server...
Amitay Dobo
Http://www.doboism.com
Upcoming SlideShare
Loading in...5
×

Continuous Performance Testing

4,532

Published on

The presentation reviews various tools and libraries which help us add continuous performance testing to the development process. Using Hudson CI to manage our build system, JUnit based performance tests, and JMeter and Grinder load tests. See demo project @ http://www.doboism.com/blog/2010/11/25/continuous-performance-testing/

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
4,532
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
56
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Continuous Performance Testing"

  1. 1. Continuous Performance Testing
  2. 2. What you are about to witness ● Continious integration bla bla ● What is hudson? ● Performance Unit tests ● Load testing with Jmeter ● Load testing with Grinder
  3. 3. Continuous Integration? ● Scheduled, automated build ● Know of problems early on ● Have a reasonably stable product at any time ● Track various metric (tests, coverage, static code analysis, coding conventions)
  4. 4. Hudson CI ● A breeze to install, simple to configure ● Architecture: – Triggers (scheduling) – Hook to source control – Build tools (executable, ant, maven) – Report generators (test results) – Notifiers (email, RSS, etc.) ● Other goodies: fingerprinting, distribution, ...
  5. 5. Continuous performance testing? ● Track regressions in product performance ● Meet specified performance requirements ● Put guards for bugs resulting in errors threads ● Establish a benchmark for the application ● See (and show) progress
  6. 6. Performance Unit tests ● Junit – not very much (timeout?) ● Roll your own ● Test decorators to help Threading, logging, more detailed requirements: – JUnitPerf (Junit 3.5 – decorate suits() – JUnitBench – ContiPerf
  7. 7. When to test units for performance? ● Sanity tests ● Performance critical units ● Before making changes that might cause regressions ● Note: Junit can be harnessed for sub- system tests, not just units
  8. 8. System tests ● Try to emulate ”Real life” conditions: Test plan, deployment ● Focus on finding out if something is wrong, not what ● Check how to application as a whole is working ● Build to scale when needed ● Update the test as your application changes (example – cached responses)
  9. 9. JMeter ● Tests are written in UI ● Various samplers: Http, DB, java ● Complicated tests are achived with different test plan elements, scripts, plugins ● Distributed agents ● Hudson plugin
  10. 10. Grinder ● Generic and minimal ( == simple) approach ● Jython (python) scripts based ● Instrument tested code ● Instrument your call ● Http - out of the box support ● Distributed test support via console
  11. 11. What we did not cover ● Complex testing architecutre (distributed testing, multiple deployment targets) ● Measuring server metrics (i.e. CPU, IO, Memory) ● Micro performance testing – instrumented code, profiling
  12. 12. Amitay Dobo Http://www.doboism.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×