Splunk Inc.

12/06/2021 | News release | Distributed by Public on 12/06/2021 11:38

Performance Testing Tools: 8 to Help Find Your Bottlenecks

Share:
By Brad Griffith December 06, 2021

Performance is a vital component of user experience. Users will leave-and likely not come back-if your site is slow. If they stay, they'll be less likely to buy from you if their experience is subpar. To add insult to injury, they're even less likely to find your app to begin with, since Google punishes poorly-performing sites in the search results.

To solve the problem of poor performance, knowledge of what impacts performance is essential. However, it can only take you so far. Even highly experienced developers make mistakes and unforeseen problems do happen. That's where tools come in handy.

In this post, we'll walk you through a list of eight performance testing tools you should check out. The list will cover different types of tools, from load testing to stress testing to profilers. That way, you can create a comprehensive strategy to shield your application from performance problems.

Why is this comprehensiveness important? Well, there are many different factors that can influence performance. Additionally, there are several possible scenarios in which you'd want to measure performance (e.g. using code profilers during development, and a load testing tool when the app is live.) That's why it's important to leverage different techniques and tools for performance testing, which is our justification for the variety you'll find on our list.

Apache JMeter

JMeter is one of the most well-known performance testing tools out there. It's an application to perform load testing and measure the performance of websites. It's a free and open-source application written in Java.

So, what can JMeter do and not do?

You can use this tool to test both static and dynamic web applications, putting them under many different loads.

On the other hand, JMeter isn't a browser and can't do all of the actions a browser can. It doesn't render HTML nor does it run JavaScript code, for instance.

You can use JMeter in both its GUI mode and its CLI mode. Typically, you'd start by creating test plans using the GUI mode, then use the CLI mode to run the tests.

Artillery

Artillery is a modern tool for doing performance testing on back-end services.

With this tool, you can verify how your app reacts under different loads by performing load, stress, and soak testing. You can also do synthetic monitoring, verifying that key workflows on your services work as expected.

In Artillery, you create test definitions using YAML. Then, you run those definitions using Artillery's CLI.

There are two versions of Artillery. Artillery Core is the free and open-source version. You can easily install it using npm, and write and run tests from your local machine.

Additionally, there is Artillery Pro, which is the paid, cloud-native version you can host on your AWS infrastructure. Artillery Pro offers teams more capabilities, such as running large-scale tests and simulating accesses from many different locations around the world.

Artillery is similar to JMeter in that it isn't a browser but operates at the protocol level.

LoadView

LoadView is a cloud-based solution for load testing. Unlike the previous two tools, this one doesn't have a local option you install. Instead, it's offered as a SaaS.

LoadView allows teams to test web pages, web apps, and APIs with real browsers in a managed cloud. It simulates real user interactions and can handle rich internet applications. So, unlike the other two tools, LoadView can render client-side content the way a browser would.

As mentioned, LoadView is a paid service. Organizations can pay for it on-demand, or they can choose to buy an annual or monthly subscription. There is also a free 30-day trial.

StresStimulus

StresStimulus is a load testing tool that supports testing in web and mobile applications, as well as enterprise systems. Unlike LoadView, it isn't a SaaS, but a downloadable product, which comes in four editions: free, pro, enterprise, and SP. Organizations can register for a seven-day extendable trial.

StressStimulus usage is meant to be simultaneously approachable for beginners and flexible for advanced users. That's why you can use it both through a GUI, which offers wizards to guide you in creating your first tests, and a script editor, which allows easy modification and versioning.

Postman/Newman

Postman is a popular tool for API development and testing. Though not commonly thought of as a performance testing tool, it's certainly possible to use Postman's capabilities in that way, for example, to verify availability and loading times.

With the help of Newman, it's possible to run Postman collections via the command line and even add such tests to your CI/CD pipeline. Newman is the CLI collection runner for Postman. Since it's written in Node.js, you can easily install Newman via npm.

Postman is offered in free and paid versions, according to the number of team members and the features needed.

Profilers are an important component of a performance testing strategy. We'll now cover two of them, starting with dotTrace.

Google Lighthouse

Lighthouse is an open source tool developed by Google. Its goal is essentially to test web pages along a variety of criteria, most of them related to performance.

Lighthouse is very flexible, and you can use it on a variety of ways:

  • Inside Chrome developer tools
  • As a Node.js module
  • In the CLI
  • And as a web app

Perhaps most interestingly, Lighthouse CI is the option that allows you to add Lighthouse to your CI/CD pipeline, ensuring your web app gets its performance tested with each commit or pull request merged to the main line.

Google's Test My Site

This is yet another performance testing offered by Google.

Test My Site is focused on mobile web sites. It allows you to pick a region or country and a type of connection (e.g. 3G, 4G, etc.) It then gives your site a rating related to that type of connection for the selected country.

You'll also get recommendations on steps you can take to improve your mobile site performance.

Splunk Observability Cloud

Last but certainly not least, we have Splunk.

Splunk Observability Cloud is a comprehensive observability solution, going beyond just performance to give you visibility into your entire operation. It offers real-time visibility, allowing organizations to instantly see how every code change affects the user experience and performance of the application. With its powerful analytics capabilities, Splunk allows organizations to detect and fix potential problems, and perform root-cause analysis.

Even though you might not think of Splunk as a performance testing tool in the traditional sense, it can certainly help your apps remain performant. Splunk allows you to investigate and monitor data from all data sources inside your organization, giving birth to a true single source of truth. With the visibility you obtain, you'll be able to identify trends and preemptively defend against issues, protecting your apps and infrastructure from downtime.

Splunk's Observability products bundle synthetic testing, real-user monitoring, and application performance management with profiling support all in one place, making it easy to investigate your application's performance from various angles.

Performance Testing Tools: Cover All Your Bases

If you want to really be covered, it's important to test performance in a variety of ways. That's why we presented several different tools in this post in a way that they complement each other.

With a strategic combination of code and database profilers, load and stress testing-both back end and front end-and observability, you can dramatically reduce performance issues, ensuring your users get a delightful experience while on your application.

This post was written by Carlos Schults. Carlos is a consultant and software engineer with experience in desktop, web, and mobile development. Though his primary language is C#, he has experience with a number of languages and platforms. His main interests include automated testing, version control, and code quality.