Stress Test Tool Website



14 Top Open Source Performance Testing Tools

Here are is our comprehensive list of the top open-source and FREE performance testing tools you can use for your load and stress testing efforts.

Then deploy selenium grid to test in multiple computers at the same time. Although Selenium as an automated test tool will run quite fast, making a mini stress test. If you put the same automation running on a couple of computers on your network at the same time you'll be able to see how it behaves. LoadView lets you start stress-testing your site for free by giving away $20 in credits you can use for on-demand testing. This amount allows for a couple of tests with default parameters. If you like the service, you can keep using it on-demand, paying for each test, or signing for a monthly or annual subscription.

Below are some options that include a tools comparison to help you make your decision on what tool to use for your application performance efforts.

This list only includes open source and free options so you can just download and get started right away without spending a dime.

JMeter

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

JMeter was built to pretty much be the open-source alternative to LoadRunner, 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
  • Can configure it to help test mobile performance of mobile apps

It currently has 4.1k stars on GitHub.

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

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.

It currently has 1.2k stars on GitHub.

Locust

Locust is a simple-to-use, distributed, user load testing tool that can help you capture response times.

It is used to helps performance test websites 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.

Tool

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

It currently has 12.7k stars on GitHub.

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.

nGrinder

nGrinder‘s GitHub page describes it as having been designed to be an enterprise-level performance engineering 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

It currently has 1.1k stars on GitHub.

The Grinder

The Grinder is a Java-based framework. It provides you with easy-to-run and -create distributed testing solutions using many load generator machines to capture your end users response times. So you don't have to worry about any Virtual User restrictions.

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

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

It currently has 4.7k 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

Stress Test Tool Website

I’d actually never heard of k6 until I started writing this article. But with6.5k 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

It currently has 2k stars on GitHub.

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

It currently has 4k stars on GitHub.

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

It currently has 5.8k stars on GitHub.

For enterprise-wide performance testing tools, LoadRunner tends to be one of the most common but many of these open-source tools can get you most of the functionality you need. Also, most of these tools protocols can be used for both performance testing web application and performance testing web services.

Fortio

Fortio is a cool load testing library, command-line tool, advanced echo server and web UI in go (golang). This tool allows to specify a set query-per-second load and record latency histograms and other useful stats.

It currently has 1.3k stars on GitHub.

puppeteer-webperf

Stress Test Tool Website

With most modern applications using javascript heavy front-ends the needs for client-side performance measurements have never been greater. Don't ignore front-end performance. You can use Puppeteer WebPerf to collect web performance stats like a trace for a page load, grab a dev tools trace with screenshots, get runtime performance metrics, and a bunch more.

It currently has 1.1k stars on GitHub.

Flood Element

Element is an open-source Puppeteer that uses a browser-based load testing tool. Scripts are created using Typescript.

You can use it against your Web app in the same way that your customers do, opening a browser and interacting with page elements.

It's written like a functional test script, but with the help of Flood, you can quickly run a load test on as many nodes you want in the Cloud.

One of the few open-source tools that allow you to create performance testing using real browsers to more closely mimic how real users interacts with your application.

Read about it in my post Browser Level Performance Testing Using Element.

It currently has 133 stars on GitHub.

Top Performance Testing Tools

Tool

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

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!

How to Stay Up To Speed with the Latest in Performance Testing?

If you feel overwhelmed with staying up to date with all the latest performance testing and performance testing tools and best practices check out my annual online conference dedicated 100% to just performance testing — PerfGuild.

One thing they don’t tell you about starting a blog or business site is that someday your website is going to reach its limit.

Hosting companies don’t have any interest in informing you about this, and the plugin and theme developers are simply trying to make more sales. So it’s tough to tell whether or not a plugin will conflict with your website when traffic starts increasing.

WordPress is a rather strong solution to go with, especially when you opt for a quality hosting platform. However, testing out your website before it’s live is not a realistic way to understand how your site is going to hold up.

What happens when the traffic spikes during the holidays? What about when you get a product feature on the news or in a guest blog post? Is your site ready for this type of stress?

What Do We Mean By Stress Testing?

Stress testing (or load testing) happens when you put a certain amount of stress on a software or technological system in order to test out how well if performs.

This stress testing is done in multiple environments. For example, you’ll want to see how a website loads and responds during normal traffic hours. At the same time, it’s a good idea to compare this to peak and even unusually low traffic times.

Overall, stress testing means simulating lots of users coming to your site at one time. This way you’re prepared for your success as a website owner. One thing to keep in mind is that you’re not trying to throw everything at your website at once. Seeing if your site will withstand the traffic of Facebook is useless.

Why?

Because a new website or blog won’t have the same amount of traffic as Facebook. Therefore, you need to evaluate your own numbers and figure out your average visits per day and month. Then you can take the most traffic you’ve received in a period and use that as an estimated benchmark.

However, the point of stress testing is often to anticipate for unprecedented traffic. Because of that we recommend being overly generous with your maximum number of visits.

Evaluating Your Current Performance

We recommend going to each of the following websites, pasting in your URL, then evaluating some of the frontend problems occurring:

Each of the sites listed above provide ratings for a multitude of factors. They also offer solutions that you may or may not be able to fix yourself. For example, a caching problem can be solved by a caching plugin, yet combining external CSS and JavaScript may take additional development knowledge.

You’ll also get some insights on how quickly your pages are loading up without much traffic at all. This can give you a good starting point for when you go through the actual stress tests.

Eliminating Problem Plugins

Seeing as how WordPress runs with plugins, there’s no doubt you’ll have at least a few of them for your WordPress install. After determining the plugins that mean the most to your website, install the P3 Profiler plugin.

Run the plugin.

It gives you a breakdown of how other plugins are affecting the speed and performance of your website. For example, you might discover that one of your most recently installed plugins conflicts with your theme and nearly brings your site to a crawl.

Although you can also manage plugins by deactivating and testing, the P3 Profiler expedites the process.

The Backend Stack

Webserver Stress Tool

The backend is actually where most of the work is going to be done when it comes to supporting higher levels of traffic. Before you go about stress testing, you want to make sure that your backend stack is ready for the real world testing.

We suggest you cover the three following steps in order to ensure that your backend is prepared for the process:

  1. Tune your stack – Everything from Apache optimization to MySQL tuning is covered here. You have quite a few different areas to think about in terms of tuning, but just keep in mind that they should all be taken care of before your stress testing.
  2. Know what you’re workingwith – You must understand your hardware before stress testing. If you’re not familiar, have someone train you. Specs are vitally important for these types of things.
  3. Document the server setup – From your PHP version to your operating system, your entire stack should be documented. These all play roles in the testing process, since logging errors become much easier.

With all of that in mind, you’re ready to start testing. The only other tip is to run your tests on a staging site (an identical one to your live site).

Load Testing: How to Do It and Which Options You Have

You have two routes to decide between when load testing. The first one involves you walking through it manually, with a DIY procedure. The other involves you choosing a commercial product for running the stress testing for you.

The DIY Route

Beginners should avoid the DIY route at all costs. However, if you consider yourself more experienced, please see if this is more up your alley.

Blazemeter has a great article with some of the most popular opensource stress testing tools. Feel free to take a look at their suggestions.

From our perspective you could technically go with anything in that article. However, we have a few favorites:

  • JMeter – Here’s an opensource pure Java application, with some powerful tools for testing performance. JMeter supports tests for most major applications, servers and protocol types, and it’s a popular enough solution so that you can find documentation about it all over the internet. The program handles LAMP setups rather well, and it has a highly extensible core for things like scriptable samplers and visualization plugins.
  • Siege – We like Siege because it seems about ten times easier to learn than JMeter or Tsung. It’s definitely the best bet for less experienced developers who want to give the DIY route a go. The testing and benchmarking utility simulates users, and it can eventually put the server under siege. I wouldn’t go too crazy trying to actually take down the server, but you gain access to interesting items like cookies, FTP protocols and basic authentication.

Commercial Options

For many people the DIY route is either far too intimidating or too time consuming. If you’re a less experienced developer, or you just don’t want to spend the time manually stress testing all of your sites, I recommend going with a commercial testing solution.

Keep in mind that some of these options are pricey, so your best bet is the DIY route if you have no plans to stretch your budget.

The Load Impact platform has some affordable monthly plans along with the most user friendly interface out there. Load Impact tests everything from apps to regular WordPress sites, and it has realistic, simulated users to get an idea of what people will actually be doing while on your site. This is particularly important since some users put more resources on your site than others.

Load Impact also offers a feature for loading visits from multiple different locations throughout the world. Along with serve monitoring, scenario recording and save-able user scenarios for load testing, the Load Impact tool is definitely one of a kind.

If you’re more into testing from the cloud:

Although Load Impact has some cloud tools, it’s originally created to work through the cloud and test the performance of websites and apps. The starter pricing is at $29.99 per month, and its main services include load and server performance testing.

The cool part about Blitz is that it runs automatically with the help of the Ruby GEM and Atlassian’s Bamboo CI server. Overall, it ensures that no code pushes are causing problems for your users, and it’s all done in the background. Blitz also provides Chrome and Firefox plugins, which are often nice for people with less experience.

Website Stress Test Tool online, free

The final commercial stress testing option is called Blazemeter. This gem takes JMeter, and some other load testers, to analyze them from locations all over the world. The platform is opensource compatible, and it provides mobile performance testing just in case you’re making an app or mobile site of some sort.

In Conclusion

Website Stress Test Tool Free

The amount of stress testing you complete depends entirely on how safe you’d like to be. Generally, I recommend load testing a website at least once before setting it up for a client or launching it for your business. This way you’ve walked through a few tests to see roughly where your site might break if you reach a certain traffic load.

After that you should consider stress testing as your organization grows. Think about it: Your initial stress test might say that you’re good with up to 1,000 visits per week. Your company isn’t remotely close to that during the first year so you have nothing to worry about. But what about during the second year when your sales really start to pick up?

Web Stress Test

We suggest you commit to a yearly or bi-yearly stress testing regiment, fully understanding how much your website can take.

If you have any questions about how to stress test a WordPress website, please let us know in the comments section below.