Planning to launch a new application, server or service and don’t know how it performs?
Whenever there is a new feature being rolled out for any of these, there is only one way to find if these new services are bearing the load – to test it using load testing tools.
As applications become more and more critical and show a potential of scalability, it becomes important to understand to test how they perform under load using testing tools.
Load testing determines if an application is capable to support a specified load (for example, 1000 concurrent users) with specific response times under normal and anticipated peak conditions.
Load testing also helps to find out the maximum amount of load an application can withstand [definition here].
Load testing tools make it easy to run a distributed test using many load injector machines and there are many load testing tools available out there – both commercial and free (open source).
For load testing your application, I would agree that some of the paid versions offer feature-rich solutions with fancier user interfaces and more details reporting options.
But on the other hand, you have some very useful open source load testing tools which offer some wonderful load testing software alternatives to their paid counterparts.
If you are skeptical about opting these open source load testing tools, consider the benefit of having an entire open source community who are consistently contributing to the advancement of these free load testing tools.
There are many open source load testing tools out there which you can consider using for your requirement.
The problem is – not all the tools fit your requirement and many of them haven’t been updated for years.
In this article, I am going to present some of the best load testing tools which have an open-source community backing it. These tools also have some great features to offer and release frequent updates to better the tool for testing community.
Best open source load testing tools
#1. The Grinder
The Grinder is one of the most common open source Java load testing framework.
Developed by Paco Gomez and maintained by Philip Aston, The Grinder has a great open-source community support.
- Load test HTTP web servers, SOAP/REST web services, app servers (CORBA, RMI, JMS, EJBs) or anything that has a Java API
- Test scripts written in Jython and Clojure languages
- Monitor and control multiple load injectors
- Centralized script editing and distribution
- Special support for HTTP – automatically handles cookie and connection management for test contexts
Apache Jmeter is another free open source load testing tool based on Java designed to load test functional behavior both on static and dynamic resources including HTTP/HTTPS, SOAP/RESTful Webservices for Java applications and can be run on any OS with Java.
Jmeter can also be used to measure performance for an application. Jmeter is the only open source load testing tool available as a desktop application with user-friendly GUI.
It was developed by Stefano Mazzocchi to test the performance of Apache JServ and was later redesigned to test only Web Applications. With incremental updates, Jmeter load testing tool has been expanded to support other test functions like LDAP, FTP, mail servers or Databases.
Having a modular structure, the core functionality of Jmeter can be extended by plugins.
- Load and performance test various server/protocol types including http/https, SOAP/RESTful Webservices, FTP, DB via JDBC, LDAP, Mail, MongoDB, Native commands/shell scripts and TCP.
- Cross-platform – can run on any OS with Java
- Multithreading framework – allows concurrent sampling
- Faster test plan building and debugging – can be integrated with the test plan; ability to create a functional test plan
- User-friendly UI
- Easy integration with major Build and Continuous Integration systems – this makes Jmeter a well-fitted part of whole Software Development Life Cycle
Gatling is an open source load testing tool/framework based on Scala, Akka and Netty that comes with scenario recorder which allows you to record your actions on a web application and export them as a Gatling scenario.
- Easy to use and maintain
- Comes with Scenario Recorder
- Excellent support of http – load test any http server
- Supports JMS
Locust is an open source user load testing tool for web applications which uses Python code to define load tests user behaviors.
This allows you to write very expressive scenarios in Python without complicating code and callbacks.
Although Locust is mainly for testing web applications, it can be used to test almost any system by writing a client for whatever system you want to load test.
Locust allows you to run distributed load tests over multiple machines, and can therefore be used to simulate millions of simultaneous users.
- Describe all your user load test scenarios in Python code
- Distributed and scalable – run on single or over multiple machines
- Comes with cross-platform and easily extendable web-based UI – shows all relevant test details in real-time
OpenWebLoad is an open source tool for load testing web applications.
OpenWebLoad is an easy-to-use load testing tool and allows you to see the impact of optimizations you are doing, on performance measurements almost instantly in real-time.
You can configure and execute the tests using command line.
Although it hasn’t been updated in a while (last update 2001), you could use it if you are planning to load test web application and are looking for a simple command line tool.Licence: OpenWebLoad is Open source licensed under GNU GPL v2.
I really hope this compilation of best open source load testing tools helps you in narrowing down on the tool that you want to use for load testing your application.
If you are using an open source tool for load testing that is working for you and is not on the list, please do share it with us and I will add it on to this list of free load testing tools.
If the tool you are using is on this list, do let us know how it is helping you so that other QueSTers can make better decision in choosing a tool for their use.
Happy load testing!
[Photo Credits: Flickr]