We are Funkload fans at Mozilla Services. Writing a load test against one of our web service is dead easy using that tool.

It boils down to writing a functional test in Python, that calls the service, then ask Funkload to run it in parallel, accross many threads and boxes.

We've written a web app on the top of Funkload called Marteau - initial blog post about it that now allows us to provision slaves on demand on Amazon WS and run distributed load tests.

You can watch this hangout to better understand what Marteau & Funkload are https://plus.google.com/106436370949746015255/posts/Lq7t4jkiwNR

Marteau is already useful to us but I am now facing some difficulties to improve the tool and add some features we want, like:

realtime JS charts of the ongoing load test

web socket load testing

the ability to run load tests written in other languages or frameworks, like node.js

Funkload is a project that was started 10 years ago, and is very robust. But it has evolved from a tool that runs on a single box to a distributed load testing tool by using SSH. In other words, a distributed load test in Funkload is just several load tests running in parallel, then a merge of all the results files that are copied back to a single box through SSH.

It means that there is no specific client/server protocol and no way to interact live with the slaves that are running in the distributed mode. You can kill them of course, or just wait for them to return.

I started to add some communication channel in the tool but the core itself was not built with this in mind.

I have found the locust.io project, which has this approach and which looks very promising, but does not exactly provide what I am looking for.

For example, I don't really want developers to have to write load tests using yet another set of APIs. The concept of writing Python unit tests is fabulous and I don't want to lose it.