In Quest of Open Source Load- and Stress-Testing Tools

By Esther Schindler  17 comments

I spent quite a bit of time researching Developer Tools You Don't Use — and Why You Don't Use Them. I heard from more than 30 people on every aspect of the subject, and as you might imagine, some of the comments hit the cutting room floor. Among them, alas, was the full-length response from Alice Kaerast: "I understand enough about security to feel comfortable that my code is written securely, and the beauty of open source means that there are many people actively testing and checking code, all of whom know about detecting vulnerabilities better than any software."

[ See also: Convincing the Boss to Accept FOSS ]

Her message-in-depth was too much of a tangent for the core part of my article, but it touched on two issues that were relevant to the essential "Why don't developers use these tools?" question I was burning to answer. (It says something about me that I really do get worked up about questions like this. I'm not sure if it's a good thing.) First is the underlying assumption by the open source community that FOSS code is inherently better because so many people have looked at it; I'm not going to address that here.

The second intersection with "I use open source development tools" is with developers' oft-stated reason not to use the QA tools because the software is so expensive. If open source has changed so much about the way programmers (and users!) work, from replacing Visual Studio with Eclipse to creating whole new application frameworks and content management system... shouldn't the answer to "I don't use these apps because they're so expensive" be, "So how 'bout an open source tool instead?"?

Naturally, that led me on a quest to find open source tools to reccommend (or at least identify) in the categories I'd enumerated as least used (data modeling tools, application modeling tools, load and stress test tools, refactoring tools, or performance tools, plus special-mention for security test tools, in case you weren't ready to blurt it out from memory). If nothing else, I thought, it could be a handy resource for developers who desperately want to use this kind of software but whose budget request from the corporate bean counters is answered, "You must be kidding."

At a minimum, I figured, a developer could poke at an open source testing tool — I decided to start with load- and stress-test tools, for no particular reason — to learn what the software could do for her, and to discover if indeed it did improve her code. That might not be a good primary motivation, though. I remember trying to figure out the difference between the $40 espresso machine and the $400 model (other than $360), and deciding that if I couldn't tell the difference I might just as well buy the cheap one. I did eventually purchase a $500 espresso machine as well as a home roasting setup requiring me to buy fair trade green coffee beans online... but then you know how obsessive I am. I don't think I'm typical. Most people would stop at the low-end espresso-maker and never learn what the quality difference is. With computing tools, the problem's far worse. Just ask any web designer who's been asked to develop a dynamic e-commerce site using Microsoft FrontPage because his client thought it was good-enough. (Oh no. I mentioned it, didn't I? Please. Get down off the window ledge. I didn't mean it. I'll never mention it again.)

It's easy enough to google for a list of open source tools (and there's even a helpful site devoted to open source testing), but that doesn't give me a lot of useful information about what makes one more valuable or helpful than another. So I asked several developers and professional QA people to tell me about the options. At that point my focus shifted entirely.

There are indeed open source load and stress testing tools, and it's probably not a bad idea to explore them. But according to the experts who advised me, you shouldn't imagine that they are equal to the proprietary tools.

For example, I'm told, Apachebench is easy enough to use and can generate large amounts of requests. The downside, said my friend Sean, is that it requests the same URL over and over, which may not exercise your application properly.

Similarly, Sean said, Jmeter is very configurable but slower. Another tool worth considering, I'm told, (though its open source provenance is difficult to discern; it's based onSelenium, anyway) is BrowserMob.

But professional QA testers are generally dubious of the open source tools. Not because they aren't fans of open source (I've known some of these folks for years and trust their commitment) but because they believe the proprietary tools really are better. "I've used the commercial load testing tools (SilkPerformer, LoadRunner) and a cloud-based load testing tool (BrowserMob). I've spent a number of years looking for an open source tool that was as good as a commercial one and I've never found one I can recommend," said Ed Borasky (whom I also quoted in the original article). "The key differentiator is ease of script recording. If you're willing to use a conventional or custom programming language and write scripts and load test definitions by hand, there are plenty of open source tools. I guess the best I've encountered is JMeter. But easy capture of test scripts from users executing an application as far as I know can only be found in the commercial tools," Ed explained.

One contact dis-recommends all the open source load- and stress-test tools he's encountered because, he says, "Staff time is the 100-pound gorilla, not license cost (unless you have more people than you should)."

Also, these tools do rely on the developer's existing knowledge to interpret the results. It's important to understand what you're doing when you're stress testing, Sean said. "You want to find the breaking point of your application. You want to find out where your bottlenecks are in your code. Measuring response times isn't helpful here because a large component of that time is going to be the queuing delay, not the time the application processes information." Obviously, if you are going to turn to these tools, it behooves you to learn about the topic; there's plenty of options for a developer who wants to acquire that knowledge, but the tools won't give you a wizard-based "follow the bouncing ball" process that will assure you that yes, your e-commerce site can manage the holiday rush without breaking a digital sweat.

I suppose that dedicated open source developers should see this situation as an opportunity: a software domain in which the open source code quality cannot (yet) claim to be better. You up for the challenge?

17 comments

    joehill7833
    joehill7833 1 year ago
    It is such an honor to have the chance to join the discussion of this great blog site! I want to extend my thanks for this. handmade purses
    Anonymous 1 year ago
    I agree with the comment above "Performance testing is more than simply measuring how many transactions can go through the server or how much bandwidth is consumed by x number of transactions per second." Its important to take into account all relevant variables in order to effectively test any tools or data... Eddie Free Credit Score.com
    Anonymous 1 year ago
    Open source is great but definitely has its place. Not everyone has the technical prowess (including me) to do it themselves, understand it and keep up with updates etc. Other people just feel more comfortable paying for something and then having support and warranty. Jess Panic Away
    manuel66
    manuel66 1 year ago
    The contradictions and principles relating to Open Source Load- and Stress-Testing Tools which includes various tools like the Foss, load testing, open source, software development, stress testing with an syntactically manner is an helping information for anybody planning to/developing software's.design a product
    Anonymous 1 year ago
    Like what others have already said, tools should be judged according to their capacity to solve a problem. So whenever we say a particular tool is great, it then means that it was able to address our needs. When it comes to tools like what we're talking about here, apart from the features, I think the efficiency of a tool also depends on the person using the tool. What do you guys think? engineered hardwood flooring
    luis67
    luis67 1 year ago
    This blog is sharing a brief information related to open source development tools is quite helpful from the developers point of view.The aspect mentioned here carriers importance to a certain level.evansville housing
    Anonymous 1 year ago
    I stumbled on loadui at loadui.org. Pretty cool tool.
    Anonymous 2 years ago
    I recently run a 10,000 VU test using OpenSTA from the Amazon EC2 and am blogging about the experience here http://iperformax.blogspot.com/2009/12/opensta-in-amazon-ec2.html
    Anonymous 2 years ago
    I've read a number of the responses to this article. There seems to be a significant piece of information that continues to be ignored regarding this topic. Performance testing is more than simply measuring how many transactions can go through the server or how much bandwidth is consumed by x number of transactions per second. It encompasses an art of collecting a number of metrics, and then performing the analysis of the resulting measures. Only then will you have an idea of when (and possibly why) the application will come apart under load or stress, and those are different metrics (and don't forget about sustained load or duration).A former colleague described a "well behaved application" as one that as load increases to the point of stress, additional resources will ease the stress. That is part of it, but the only way to understand how an application is behaving is to watch it from as many angles as you can. Each tool mentioned here (and the many others not) have wonderful capabilities, but I haven't seen a single tool (commercial or Open Source) that does it all. JMeter works fine for pumping transactions into an application. If you can't generate enough load from your workstation, add more by using other available workstations. OpenSTA has a friendlier GUI and looks more like LoadRunner and beyond its little quirk with HTTPS and needing the { to clue it into the secured protocol, I find it quite useful. Each tool has its own little { issues, and despite the questions about JMeter's accuracy in measurements, I've found it consistent. With consistency, you can begin to identify and follow the trends of your application under test. Once you have found the trends, you can extrapolate your capacity needs for planning.To find the right tool, you need to identify what you expect out of it, and then begin your search and evaluation. Given my choice, I like SilkPerformer or LoadRunner, but on a budget (or no budget) JMeter and OpenSTA work quite well for my needs.Thanks for reading and sharing. Together we make better software.Kindest regards and respect,Randy
    Anonymous 2 years ago
    good job..and what about cloud computing..can u comment back about cloud computing too..visit me too at http://www.testertools.com for more open source testing tools
    Anonymous 2 years ago
    "Good" or "Bad" tools are defined by the problem they are solving. LoadRunner has the most features, but is extremely hard to learn and use. Also it is the most expensive load testing tool on the planet. At the other end of the cost spectrum, JMeter/Grinder/OpenSTA have strengths and weaknesses depending on what you are testing. One of the challenges with open source stress testing is that you must provide the hardware. I don't have all that extra horsepower lying around my shop idle.Another load testing tool that delivers low-cost (penny per user/hour) loads of up to 20,000 concurrent users is LoadStorm. Free account for 50 concurrent users, so compare it to what you have used. The best part is you don't have to buy any hardware.
    Anonymous 2 years ago
    abhttperfhttp_loadsiegetrampleAt least 5 free and open source tools, most of whom support advanced functionality such as loading scenarios (multiple links to follow), both httperf and siege allow overloading (flood) and have advanced benchmarking and logging capabilities. Of course, keep-alive, logins, authentication and sessions management is configurable and supported.We use all of them extensively.
    Anonymous 2 years ago
    I would recommend the "Grinder" (http://grinder.sourceforge.net/) as a Load / Stress Testing tool. I was involved in using it as a web load/stress tool several years ago. It proved to be a very flexible, powerful tool. While it is touted as a "Java" tool, and is written in Java, it can be used to perform load / stress tests on non-Java websites.
    Anonymous 2 years ago
    Yes, Ed is correct that there arent any open source tools that compare with LoadRunner. I have a love/hate relationship with LoadRunner. Its a powerful tool but my experience is that more than 90% of LoadRunner test projects are a waste of time, reporting irrelevant, misunderstood results, in an attempt to give "peace of mind." Performance testing is hard. In fact its very hard, and its unusual to see it done well. Part of this is historic - "QA and test" groups are sometimes an IT organization's ghetto.Whilst Loadrunner does make it easy to record test scripts and visually represent the results of tests, that doesnt mean its a flawless tool. Like most load test tools, it uses a closed resource model and so reports results that are unrealiastic. The open source httperf tool uses a more realistic open model and so its results are much more meaningful.JMeter is not an excellent tool. Its widely used, because of its price and availability. Others report that its sluggish. More importantly, the data it reports is suspect.
    Anonymous 1 year ago in reply to Anonymous
    can you help me with loadrunner? i'm having a bit of problems. i'll post a screenshot if i can. thanks. screaming flying monkeys
    Anonymous 2 years ago
    Hey there Cezar,I said Jmeter is slow, because pound for pound, my machine is able to crank out more requests using other tools. And when I use it, my machine becomes ... wait for it... slow. And yea, when I try to collect too much information the JVM crashes.I think Jmeter is a great tool and has it's uses. It's got a nice interface and lets you do a heck of a lot more than ab or custom scripts. But like every piece of software out there, it's got its strengths and weaknesses.But wow, calm down. Esther wrote a good article using quotes from other people. And sometimes when someone tries to summarize their experience (which may be different than yours) in a few paragraphs, and then someone tries to summarize those summaries, things get lost in the translation. The article was just a survey of the tools out there. Take it easy.
    Anonymous 2 years ago
    I'm wondering how did your friend Sean found that "Jmeter is slow", and what exactly means that a stress test tool is slow?I've used Jmeter for some years and I can tell that is a very serious stress test tool, especially when it is used in a farm of "clients".If you would have mentioned Jmeter out of memory problems when using extensive monitoring features I would have got a little bit more respect for your opinion.Otherwise I can say only that your message is very shallow and therefore not very informative.At last but not least I would like to observe that you missed a very old but respectable and solid open source project: OpenSTA (http://www.opensta.org).

      Add a comment

      Post a comment using one of these accounts
      Or join now
      At least 6 characters

      Note: Comment will appear soon after you have activated your account.
      Obscene/spam comments will be removed and accounts suspended.
      The information you submit is subject to our Privacy Policy and Terms of Service.

      ITworld LIVE

      Open SourceWhite Papers & Webcasts

      White Paper

      CIO Quickpulse: Drivers for Enterprise Virtualization Diversification

      Open source is a key driving force as organizations consider second-vendor virtualization adoption to attain more diversity, data center power and agility.

      White Paper

      Consolidating SAP Applications to Linux on Power by IDC

      IDC studied a group of enterprises that had deployed SAP applications on IBM Power Systems servers running Linux server operating environments and had been working with those systems for several years. Learn about the results...

      White Paper

      An Interactive eGuide: Open Source

      By now, enterprises are well aware of the benefits of open-source software, which boasts a clean design, reliability, and maintainability, as well as support for standards and community values. But perhaps the biggest benefit is quality; since open-source software users have access to source code, bug fixes and enhancements come from multiple sources, often resulting in superior software.

      See more White Papers | Webcasts

      Ask a question

      Ask a Question