Top 11 Open Source Performance Testing Tools for Load & Stress Testing

Open Source Performance Testing tools
PerfectoTopAd

Top 11 Open Source Performance Testing Tools for Load & Stress Testing

Here are some of the top open source performance testing tools you can use for your load test and stress test software performance testing efforts.

Here are my Top Performance Testing Tools for Load Testing & Stress Testing:

Fiddler with BlackWidow and Watcher 

Fiddler enables you to do many things, but it's probably best described as a packet capture tool.

Fiddler is a free, open-source tool that allows you to monitor, manipulate and reuse HTTP requests. Fiddler does many things that allow you to debug website issues, and with one of its many extensions, you can accomplish even more.

Some things you might want to use Fiddler for:

  • Troubleshooting issues with your web application
  • Security testing
  • Performance evaluations
  • Debugging web traffic from most computers and devices

Fiddler is already a pretty popular tool among developers. Many use it for debugging to view the HTTP requests their computer is sending to a service or website.

Todd DeCapua recommends using Fiddler with Watcher and BlackWidow to create a quick-start automation testing performance solution.

Watcher is a security add-in for Fiddler which will enable you to get some security results quickly. BlackWidow is a web crawler that gives you the functionality to point it towards a web address and then be able to drill down on results.

For someone who’s just getting started in performance engineering, these three tools working together can provide a great way to get that free look and feel as well as results that one might not otherwise be able to obtain quickly.

Todd actually has a session during this year’s PerfGuild Online Conference where he gives a demo of this approach.

JMeter jmeter

I think that JMeter is the most popular open-source tool in the load testing space. Apache JMeter describes itself as a Java application that was designed specifically for load testing with the ability to measure performance.

JMeter was built to pretty much be the open source alternative to Load Runner, so you’ll find it has lots of sophisticated features. It's a thick client Java app that's largely driven by right clicks. It's a little weird, but it's got a lot of power. Also, all the features a professional load tester wants are available on JMeter.

Some features are:

  • The ability to performance test a host of technologies such as Java Objects, Web HTTP/HTTPS, SOAP and Rest Services, FTP, Databases with JDBC
  • A nice IDE you can use for recording, building and debugging your performance tests
  • Starting with JMeter 3.1 Groovy is the default programming language
  • One of the more popular performance testing tools

Although JMeter is one of the more popular test tools, it does have some shortcomings.

For instance, JMeter can be a bit difficult to scale for a large distributed test; especially if you have to set up a bunch of machines since you have to configure them to talk to each other. There is also a host of orchestrating problems in executing large JMeter tests.

That’s where a tool open sourced by BlazeMeter—Taurus—can help you out.

Taurus Taurus

The power of Taurus is that it allows you to write your tests in YAML. You can actually describe a full-blown script in about ten lines of text, which gives teams the ability to describe their tests in a YAML or JSON file. The YAML is a human, readable, edible approach that enables you to describe a test in a simple text file. This is a big leap forward from the old days of having to bring up a big, heavy vendor-specific record and scripting tool.

Features

  • This should also allow more members of your team to contribute to performance tests. Also, since your test cases are written in YAML the tests are much more readable, making them easier to perform code reviews on.
  • Taurus basically fits performance testing into your CI/CD pipeline much more efficiently.
  • Taurus provides a sort of abstraction layer on top of JMeter, as well as some other tools like Locust, Gatling, the Grinder and Selenium.

Github starsIt currently has 424 stars on GitHub.

Locust Locust

Locust is a simple-to-use, distributed, user load testing tool.

It is used to help load test web sites or other applications.

Locust can also help you figure out how many concurrent users a system can handle.

If you’re familiar with the term “load generators,” Locust uses the term “swarm”–as in you can point a swarm of locusts to put a load on your website.

You can define the behavior you want for each of your Locust instances. It also gives you the ability to monitor the swarming process from a web UI in real time.

Some of the cool features you get with Locust are:

  • The ability to create your test scenarios using straight Python
  • You can easily scale a number of users you need to emulate
  • It has a nice Web-based UI
  • Extensible
  • Good for testing APIs

Github starsIt currently has 5,581 stars on GitHub.

nGrinder Grinder

nGrinder‘s GitHub page describes it as having been designed to be an enterprise-level performance testing solution. It was developed to make stress testing easy and to provide a platform that allows you to create, execute and monitor tests.

Features:

  • You can write your tests using Jython to create test scenarios and create stress against JVM using multiple agents.
  • It can extend tests with customer libraries like jar and py
  • Allows you to monitor the state of your performance agents

Github starsIt currently has 415 stars on GitHub.

The Grinder

The Grinder is a Java load testing framework. It provides you with an easy-to-run and -create distributed testing solutions using many load injector machines.

  • You can perform load testing on any system that has a Java API
  • A nice GUI console
  • It automatically handles management of client connections and cookies 

Gatling Gatling

Gatling is a stress tool built on Scala, Akka and Netty. It allows you to test and measure your application’s end-to-end performance.

  • It has a simple yet powerful DSL.
  • Easy to extend
  • If you’re into Scala and the benefits it brings, this is the load testing tool for you.
  • It has a scenario recorder

Github starsIt currently has 3,062 stars on GitHub.

To learn more about Gatling check out the Founder of Gatling Stephane Landelle's PerfGuild session on Load Testing Done Right with Gatling.

k6

I’d actually never heard of k6 until I started writing this article. But withGithub stars2,893 stars on GitHub at the time of this writing, I had to include it.

k6 is a developer-centric, open-source load testing tool for testing the performance of your back end infrastructure.

k6 is also  Modern load testing tools built with Go and JavaScript so it integrates well into most developers workflow.

  • Clean scripting API
  • Provides distributed & Cloud execution
  • Cool REST API orchestration ability

Tsung

Tsung is an open-source, multi-protocol distributed load testing tool.

  • Can monitor a client’s CPU, memory, and network traffic
  • It has an HTTP recorder
  • Includes HTML reports and graphs

Github starsIt currently has 1,281 stars on GitHub.

Siege Siege

Siege is a command-line HTTP load testing and benchmarking utility. It was designed to help developers measure their code under stress.

  • Supports basic authentication, cookies, HTTP, HTTPS and FTP protocols.
  • Allows its users hit a server with a configurable number of simulated clients. Those clients place the server “under siege.”
  • Great for a simple, brute-force type of testing tool

Github starsIt currently has 1,765 stars on GitHub.

Bees with Machine Guns bees with machine guns

Developed by the Chicago Tribune, this is probably the coolest-sounding performance testing tools on this list.

Bees with Machine Guns describes itself as a utility for arming (creating) many bees (micro Amazon EC2 instances) to attack (load test) targets (web applications).

This tool can easily help you load test a site that needs to handle high traffic.

Leverage Amazon EC2

Github starsIt currently has 3,783 stars on GitHub.

Top Performance Testing Tools

These are, in my opinion, the top ten performance testing tools.

As always, choosing the right performance testing tools for your team’s stress and load testing needs depends on what you need to test.

Happy performance testing with these stress testing and load testing tools!

Click here to add a comment

Leave a comment: