Load Testing CiviCRM ....

Publicat
2006-12-14 01:13
Written by
Dave Greenberg - member of the CiviCRM community - view blog guidelines
One of our major goals for this year is to optimize CiviCRM to handle load in a graceful manner. This is extremely important for us with the Branner Project. One of our main goals for the project this year is to optimize CiviCRM to be able to handle the last weekend load nicely (similar to the slashdot effect, the application process has most of the applications being filed and completed the weekend it is due) The application is a multi-step form, made up of approx 25-30 forms. We have data from last year that we can scramble and potentially get a good random data set that is fairly accurate. Writing a functional test for this is potentially quite painful, but there is the wonderful testing tool Selenium. We've been using it for testing CiviCRM with pretty decent results. We hope to make it part of our automated test suite in the next release. I was hoping that we could use Selenium for load testing also. Unfortunately this does not really seem to be an option, since Selenium uses the browser for its web interactions and to run a reasonable test with 5000 concurrent users would probably require 50 or so machines (100 browsers per machines, a bit too high i suspect). I dont think this is very practical and moved on to finding other solutions. There are a couple of projects that rise up to the top immediately. Similar to Reporting, most of the open source work on this topic is done by our good friends in Java land. Some of the popular open source packages i found include: Both Grinder and TestMaker use Jython as the scripting language, which makes it easier for us to insert our own randomized data source. I've downloaded and played with TestMaker (it seemed to be easier to install and get running) and it seems fairly easy to use and deploy. However the distributed load scenario is a commercial product with fairly expensive licensing. In general, i'm pretty much against such "open source products" that lure you in with a product that is not complete, but I dont think there is a good alternative for these companies either :( Will try Grinder tomorrow and see how it compares
Filed under