Top 6 Tools for API & Load Testing

Dickson Mwendia
6 min readApr 30, 2020

--

You have built a lot of APIs and went through testing. You also probably test your APIs manually with tools like Postman or with the help of your API implementation in your frontend app. This works fine so far.

Now imagine you are close to the finish line and want to release your next web app to the masses. You might feel uncomfortable because you are not sure what kind of unexpected issues you might face. Your servers even might become inaccessible due to heavy load.

Testing APIs as reliable as possible is a challenge that needs to be mastered. There is no best way of doing it, it all depends on your personal workflow and preferences.

You should, however, consider making use of load tests for any web project just in case. This post will go through some top open-source and commercial tools that will help you to load test your next project with ease.

The following tools are in no particular order and just serve as an overview of some tools that I or my colleagues have stumbled upon.

JMeter

Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications. It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.

Ah yes, this is one of the names that every developer came across at least once.

JMeter is an open-source load test tool based on Java built by the Apache Foundation that’s around since 1998 and still receives many updates.

One of the reasons for its popularity is its architecture based on plugins. It can not only test HTTP but also other protocols.

JMeter’s user interface

Pros:

  • Portable standalone tool, runs anywhere
  • Large community. A variety of plugins and resources can be found on the web due to its popularity
  • Support for different application and protocol types (such as HTTP, REST, TCP, Database)
  • Data analysis and HTML reports out of the box
  • Can run as a headless tool in CLI or even CI/CD environments
  • Can run test plans
  • Distributes testing is possible

Cons:

  • Can be overwhelming if you are new to load tests due to its many possibilities
  • Might not fit into everybody’s workload for people who are heavily used to CLI tools

Loadmill

Loadmill automates backend regression testing by replaying real user behavior. It can create and replay many API tests based on actual user flows.

Loadmill is a commercial web service that helps you to automate API tests and start load tests based on recordings or manual input.

It offers a free tier that should cover all needs by individual developers.

Loadmill Test Editor

Pros:

  • Easy to use
  • Can import test plans from other tools such as JMeter
  • Can import recorded HTTP traffic such as HAR files
  • Straight forward to extract and reuse data from previous responses
  • Free tier includes all features
  • Distributed load tests in various locations
  • Offers npm package + REST API for CI/CD or custom scripts
  • Support for teams

Cons:

  • Current boxed UI doesn’t align well with smaller screens or windows

Artillery

Artillery is a modern, powerful & easy-to-use solution for load testing and functional testing. Ship scalable backends, APIs & services that stay performant & resilient under high load.

Artillery is an open-source CLI tool that can run load tests based on YAML files. It is based on Node.js and can run almost anywhere as well. It is best known for its simplicity yet many possibilities for load tests.

Sample of Artillery’s test script

Pros:

  • Really easy to use. You only need to get familiar with YAML.
  • Can be easily integrated into terminals and CI/CD
  • Can be used as an npm package for your own scripts/projects
  • Quick tests
  • Exports results as HTML reports
  • Can run tests on HTTP, Socket.io, and WebSockets
  • Supports environments, phases and random payloads from CSV files

Cons:

  • No distributed testing
  • File uploads only available in Artillery Pro

Gatling

Gatling is an open-source load testing tool for web applications, designed for DevOps and Continuous Integration. It is designed for ease of use, maintainability and high performance. Gatling includes a web recorder and colorful reports.

Gatling is an open-source tool for load testing web applications that also offers an enterprise version. Similar to Artillery, it runs test plans based on simulation scripts written in Scala.

Sample of Gatling’s simulation script in Scala

Pros:

  • Resource-efficient due to its underlying technology based on Scala
  • Ships with a GUI based test recorder
  • Test recorder generates Scala scripts
  • Full flexibility with scripts and its powerful API
  • Well documented guides
  • Has community extensions and official plugins
  • Can load and transform external data
  • Supports HTTP

Cons:

  • You need to get familiar with Scala once you want to advance
  • Might not fit into every developer’s workload

Blazemeter

Blazemeter is a commercial load testing PaaS that is compatible with JMeter. It can run functional and performance test just like any other tool but also offers resource monitoring that can be combined into tests.

Blazemeter’s performance reports

Pros:

  • Functional and performance tests
  • Other tools such as mock services and API monitoring
  • Test recorder as browser extension
  • GUI and load tests can be run in the same test suite
  • GUI tools return screenshots and waterfalls, similar to browser dev tools
  • Extensive metrics and reports
  • Can report server hardware usage
  • Compatible with Swagger/OpenAPI

Cons:

  • Not easy to use. Can be overwhelming and cumbersome for first-time users
  • Free tier includes 10 tests. Heavy pricing tiers for smaller projects.

Telerik Test Studio

Telerik’s Test Studio is a standalone testing tool for UI, REST API, and load tests. It focuses a lot on creating tests and integrating them with existing workloads such as CI/CD, bug tracking, etc.

Telerik’s Test Studio Windows app

Pros:

  • Ships with a test recorder
  • Has a built-in CLI tools
  • Wide variety of supported protocols/application types such as web, PWA, MVC, etc.
  • Reports
  • Integrates into popular SCM, CI/CD and bug trackers
  • Can import data from Fiddler
  • GUI lovers get used to the UI fairly easy

Cons:

  • Heavy UI
  • Runs only on Windows
  • Focuses too much on .NET Framework

There are many, many other tools dedicated to API and load tests. These tools convince due to its transparent and fair (in terms of free tier) pricing model (in case it’s commercial) and functionality that can be integrated into most developers’ toolset.

Hopefully, this list inspired you and gave you an overview of what type of test tools exist and what kind of capabilities they have. Have fun with testing and finding more tools.

By the way… if you want to learn more about load testing, check out these links:

--

--

Dickson Mwendia

All-around techie passionate about software development. Hackin' on docs to make your life as a developer easier.