AWS re:Invent happy hour: Dec 1, 6 PM PST at MGM Grand RSVP

Gatling vs. Speedscale for Kubernetes Load Testing

Gatling vs. Speedscale for Kubernetes Load Testing

(Updated: )

Gatling and Speedscale are two popular performance testing tools and load testing web applications.

The first version of Gatling was released in 2012 by its founder, Stéphane Landelle. What began as an open source load testing tool is now also a paid version called Gatling Enterprise (formerly Gatling Frontline). Gatling offers a testing framework based on Scala, Akka, and Netty.

Speedscale is newer performance testing tool on the market that autogenerates load tests and mocks from real traffic, and replays traffic snapshots to simulate user behavior for more accurate, cost-effective software testing. Rather than writing scripts to contrive tests, Speedscale reduces test cycles from weeks down to just days as well as provisioning tests data from transactions it records in production.

Outline

This blog post compares the two tools on the following criteria:

  • Ease of setup
  • Developer experience
  • CI/CD integration
  • Documentation and support
  • Pricing

For more Kubernetes load testing comparisons, check out our other posts:

Kubernetes Load Testing: Top 5 Tools & Methodologies

For an overview comparison & to learn the best methodologies for efficient Kubernetes load testing:

Read The Blog Speedscale and Gatling logos side by side

Ease of setup

Setting up Speedscale

Speedscale provides you with a Quick Start Guide when you log into the web app. This guide stays at the top of the screen until you finish it, but no need to worry, it’s quickly finished as it only has three quick points. Should you need it again at any point down the road, it can always be easily found in the left-hand menu.

The first time you log into the dashboard it’s very helpful, as it shows you the two ways Speedscale can be installed. You can either use Helm to install the Kubernetes Operator, with the quick start guide showing you exactly what values need to be set. Should you decide that Helm isn’t for you, you can also install Speedscale’s command line interface (CLI) tool speedctl, which is the other option provided by the Quick Start Guide. With speedctl installed, it’s as simple as executing speedctl install and from there, speedctl will take care of the rest.

Current Kubernetes capture uses the operator and supported eBPF collector. Supported JVM traffic uses a Java instrumentation agent, which requires new pods and a JVM restart. Verify decoded inbound and outbound exchanges before saving a snapshot. For local recording without a cluster, use the explicitly configured proxymock proxy workflow.

Setting up Gatling

Choose the Gatling SDK, execution environment, and edition first. The current installation documentation covers local runners and Enterprise deployment options. Verify Java or JavaScript runtime requirements and private-location configuration for that choice; older FrontLine installation requirements do not describe every current deployment.

Gatling Enterprise configuration

Gatling Enterprise logo

Gatling also supports local execution. Check the current documentation for your chosen SDK and runner, and decide whether managed orchestration is required.

Compare the setup needed for your actual environment. Speedscale’s cluster workflow requires capture compatibility and replay configuration; Gatling requires the selected SDK, test definition, runner capacity, and any orchestration you choose.

Developer experience

Working with Speedscale

Speedscale’s user interface, showing the Reports dashboard

With Speedscale’s Quick Start Guide, you’ll quickly have your first test running. Because Speedscale works by adding annotations to your Kubernetes Deployments, anyone with prior Kubernetes knowledge should be able to get started working with the tool quickly.

After configuring capture, inspect selected inbound and outbound exchanges and save a representative snapshot. Review dynamic identifiers, credentials, dependency coverage, and assertions before using it as a test fixture.

A snapshot contains selected recorded exchanges. Use the web UI or CLI to configure a replay target, workload, dependency-response mocks, transforms, and assertions. Follow the current Quick Start for the supported configuration. Test-resource cleanup does not roll back writes in a live dependency.

Software testing is dead

Traditional testing is difficult to scale.  Read how AI-generated API traffic simulations can shift-left and validate your apps quickly.

Learn More

Working with Gatling

Gatling dashboard

Once you’ve gotten Gatling installed, you can use a recorder.sh script that is installed alongside Gatling. Running this Gatling script will open a GUI where you can configure options like the name of your Gatling project, a package name, whether the load test should follow redirects, as well as a few other options. Once you click “Start!” in the GUI, it will act as an HTTP proxy and you can now visit your site in your browser. Remember that because it acts as a proxy, you will first need to change the proxy settings on your local system to be “localhost”. Now, start clicking around on your web app and act like a user, the recorder will record all your actions. Once you click “Stop” in the recorder interface, the “Simulation” will be recorded in the folder user-files/simulations/ of your Gatling installation. If you’ve named your load test “FirstLoadTest” it will be saved with the name FirstLoadTest.java, if you’ve decided to use Java as the basis for your Gatling tests.

From here, you can take a look at the Gatling test file to see exactly what the recorder has recorded. To run your test, run the Gatling script gatling.sh that was installed alongside Gatling. Doing so, Gatling will check through the user-files/simulations folder and list out all your simulations, which it will present in a menu like this:

Choose a simulation number:

[0] FirstLoadTest

Comparing developer experiences

It’s tough to say which tool is the easier performance testing tool, as both tools are fairly straightforward once you know how they work. However, it’s clear that Speedscale is by far the most modern of the two options. Both tools provide command-line workflows; Gatling’s current SDK and build-tool options differ from older distribution scripts.

Should you want to use a graphical interface, Speedscale provides you with one at app.speedscale.com, where Gatling has to be hosted somewhere.

Speedscale also makes it easier to create realistic performance tests, as it collects data directly from your services. With Gatling, you have to either script and generate the data yourself, or manually listen to traffic with Gatling Recorder their own HTTP proxy. Gatling Recorder’s proxy is not transparent, so your services will need to be manually configured. Gatling Recorder also has a HAR converter which can generate tests from a HAR file. If Speedscale’s automatic solutions aren’t feasible, Speedscale also supports manual tests from a HAR file.

CI/CD integration

Integrating with Speedscale

Speedscale is easy to integrate into any CI/CD pipeline directly. When you’ve run a test a report is generated, which has a status field. This status field is an ENUM, defining one of a list of options. In a CI/CD test scenario, this means you can deploy your test, wait for it to be done, check the status report, and from there make a gated check. One key thing to know about Speedscale is that you can define assertions as well as define a load test.

For example, you may decide that it’s not enough to know that your application didn’t crash, you also want to make sure that all requests return a status code of 200. This is possible with Speedscale, and is something you can include in your CI/CD pipeline. Speedscale has official documentation on implementing CI/CD for guides on running a continuous load test. Because it’s just a script, you should be able to implement Speedscale in whatever CI/CD system you are using.

Speedscale reports dashboard

Integrating with Gatling

To implement Gatling into a CI/CD provider, you first need to make sure you have all the dependencies like Java installed. The second thing to do is to figure out a way to deploy the software that’s in your Pull Request. This can easily be done via Helm or some other software like it, but with Gatling it’s something you will have to manage yourself.

Gatling publishes CI/CD integration documentation and build-tool execution options. Its editions offer different orchestration and reporting features. Evaluate a passing and deliberately failing simulation in your actual pipeline instead of assuming automation requires an undocumented workaround.

Documentation & support

Speedscale’s documentation

Speedscale provides a thorough Docs resource to help readers easily find what they need. Clicking through the sections on the left-hand menu, you will find precise and succinct information on what you need to know. Everything is structured in a way that’s understandable, and if you can’t find what you’re searching for by clicking through the menus, you will find a search button in the top right corner which can help you get to what you need.

Speedscale also hosts a Slack community where anyone can join and connect directly with the team to help answer questions.

Gatling’s documentation

Gatling provides current documentation for authoring, execution, integrations, and Enterprise deployments. Use the instructions for the SDK and edition you plan to run.

Check the documentation version when maintaining older simulations, since SDK and deployment instructions can change.

Pricing

Speedscale’s pricing

Review Speedscale’s current plans and confirm the capture, replay, storage, and security options required by your workload. Evaluate setup and ongoing fixture maintenance alongside the subscription.

Gatling’s pricing

Gatling offers open-source execution and commercial Enterprise plans. Check current editions, deployment terms, and quotas alongside Speedscale’s current plans; historical monthly prices do not establish the cost of your proposed workload.

Conclusion

Gatling supports current test-as-code and CI workflows. Choose it for the simulation and runner capabilities you need, and evaluate Speedscale when captured fixtures and recorded dependency responses address an additional testing gap.

Pilot Speedscale with a representative service when recorded inputs and dependency responses are the missing part of your testing workflow. Keep useful Gatling simulations and compare actual CI verdicts before replacing them.

If you’ve yet to decide what load testing tools are the right one for you and your Kubernetes infrastructure, check out our other comparisons.

Frequently asked questions

When should I author scripts and when should I replay captured requests?

Author a scenario when you need new behavior, explicit edge cases, or a carefully controlled journey not present in traffic. Use captured requests to preserve representative existing integrations and reduce fixture authoring. Gatling supports scripted and recording-based authoring; Speedscale uses captured exchanges for tests and mocks. Both approaches require assertions and reviewed dynamic values.

Can existing Gatling tests remain in the pipeline?

Yes. Keep valuable simulations in their Gatling runner and add recorded-traffic checks alongside them. Gatling documents CI/CD integration and build-tool execution. Treat the new checks as additional coverage until you have demonstrated equivalent requests, correlation, and assertions. A change of test-data source does not require discarding a working performance suite.

How do I isolate an expensive third-party dependency?

Record supported representative exchanges, route the application’s outbound calls to a mock, and verify that the required requests match. Set realistic timing and error cases for the question under test. Use test credentials and controls on unmatched or bypass traffic. Keep a separate real-provider integration check, since a mocked success cannot establish provider authorization, state, or current performance.

Sources: Gatling test authoring and execution, Regression-testing workflow, Gatling CI/CD integrations, Speedscale dependency mocks, proxymock capture and mock paths.

Capture and replay your production traffic

Speedscale records live traffic from your Kubernetes services and turns it into tests, mocks, and load tests automatically. 30-day free trial, full feature set.