I have a mostly back-end, non-user facing web application that I need to have load tested. I was wondering what the options were that are tailored for my use case. It needs to be a load testing utility that the developers can run themselves, perhaps should live within the same code repository (correct me if I'm wrong), and is performant.

I'm worried about the scalability of Ruby scripts for something like this. JMeter has of course come up, but I don't it will work for us and I am not shy around code. So far, what I've come up with is Gatling, although I'm not exactly sure if it can be used seamlessly with clojure. Please share thoughts about this.

  • Load testing tools for a webapp typically only talk to the webapp over HTTP. Can you elaborate on what it means for a webapp application to not work seamlessly with Clojure? Do you mean you prefer to write your load tests in Clojure because it is your language of choice? Or does your webapp have Clojure functions that your load testing app needs to call directly? – user246 Aug 28 '14 at 20:53
  • The webapp itself is written in Clojure. It's not my language of choice, but it would be convenient for the latter case you mentioned: in the event that there needs to be some communication between the app and the load testing suite. But perhaps it's a use case that might never even appear. At the very least, I'd like the load testing suite to be packaged with the app. – mango Aug 28 '14 at 21:03

Clojure is a language which targets Java Virtual Machine so any Java-based load testing tool will be good for you. All 3 are mentioned in this discussion:

If you are about to go for Gatling remember that it doesn't scale and has very limited protocols support. Perhaps Open Source Load Testing Tools: Which One Should You Use? can help you to choose the right option.

  • Could you explain to me in what sense doesn't it scale? – mango Aug 29 '14 at 11:36
  • Grinder and JMeter can be launched in "clustered" mode when load generators are distributed among physical or virtual hosts, it allows to create high load when single machine isn't capable of providing enough throughput. Gatling doesn't have this ability. You still can launch several Gatling instances but they won't be synchronized by any means and results won't be aggregate. – Dmitri T Aug 30 '14 at 6:34

I have used The Grinder with Clojure as the scripting language. It wasn't as easy to use as JMeter, but it got the job done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.