views:

299

answers:

3

I'm working on a project where performance is important and I would like to be able to monitor how my changes affect performance over time.

Has anyone done this with Hudson before?

http://wiki.hudson-ci.org//display/HUDSON/Performance+Plugin This Hudson plugin mentions something about supporting "JUnit format", but I can't find anything about it. Any pointers?

Thanks!

+1  A: 

One thing you could do is create an integration test that runs a set of common tasks on the application, then thread the test (obviously this will require some though so that the test is valid), and take the times of each run (10 threads, 50 threads, 100 threads), you will need to perform each test a few times and take average run-times so that you're not dealing with anomalous data

Decide what is acceptable and have Hudson fail the project if it creeps over

You may want to look at stress testing articles for this kind of question too

walnutmon
+5  A: 

I would suggest looking at jMeter & the jMeter Ant task. This would allow you to perform jMeter performance tests from Ant/Hudson. Depending on your performance testing needs, there are multiple jMeter samplers you could use (Http, JMS, TCP, JUnit, etc.).

Rich Kroll
+1  A: 

To monitor Grails performance, there is the JavaMelody Grails plugin: http://www.grails.org/plugin/grails-melody

And if there are also integration tests for the app (for example, using selenium or jmeter with hudson), then you just have to look at the monitoring report in the running app after some tests: graphics and statistics in the reports are persisted on disk by JavaMelody.

evernat