Performance testing with cucumber


Ive looked around at the various tools for load testing etc but i need something a bit more specific. Something like cucumber and httperv mixed together. What i would like to do is write some cucumber specs for filling in various forms in my application but simulate say 20 users doing this simultaneously. Are there any specific tools out there or hacks to create something like this?


First of all, running load testing on different methods or a whole scenario is a waste of time, since it doesn’t give you any indication on which method is underperforming under high server load. Also, filling in forms using Selenium (or just simulating it using Cucumber) will also yield unreliable results (running the code that has nothing to do with the actual server also takes time). What you want is targetted performance tests on one particular form url, which automatically brings us back to httperf.

If you are looking for load testing with form data, httperf supports this. Just google “httperf post data” and you’ll get plenty of information. Yes, the way to do it is awful, a nice wrapper around it would be nice.

Best regards

Peter De Berdt

thanks Peter

Depends on your app. I've definitely had cases where testing 1 action in isolation yielded a good result (ie high number of transactions per second), and testing a 2nd action in isolation was fine too, but running both actions at the same time (which is what happened in real world usage of the app) caused performance to drop through the floor because of database contention. For me the key is getting load tests as close as possible to real world usage. For some apps, replaying log files can work well and has the advantage that you're in no danger of forgetting to simulate a certain type of activity. In a more complicated case, a team I was once on built a set of automated agents designed to replicate normal user behaviour. Doing so accurately, and maintaining that accuracy over time is difficult though. Tools like jmeter or grinder may be of interest.


Have you tried Comes with a ruby gem so you can integrate load testing into your continuous deployment.