Skip to content

Load Testing Blog

Gatling: Simulation Scripts Parameterization

This blog post is a tutorial for writing Gatling scripts to load test web applications. It follows our first getting started with Gatling simulation scripts article.

The application under test is a fake e-commerce. We are going to create a Virtual User that browses articles in this shop. To create a dynamic load test we will cover several topics:

Gatling: Getting Started With Simulation Scripts

Gatling is a load testing tool for measuring the performance of web applications. As such, it supports the following protocols:

  • HTTP,
  • WebSockets,
  • Server-sent events.

Other protocols are also supported either by Gatling itself (like JMS) or by community plugins.

Gatling load testing scenarios are defined in code, more specifically using a specific DSL. This guide focuses on the basics of writing a simulation to test an HTTP application: OctoPerf's sample PetStore.

OctoPerf 11.6 - Automatic SLAs and other quality of life features

JMeter 5.2.1

In december, we updated OctoPerf to use the latest JMeter version. Although, as a minor version, it doesn't bring a lot of new features, it is always better to stay up to date with the latest bugfixes. We had to implement a small change in OctoPerf because JMeter now properly enforces the cache control headers in every situation. To avoid any confusion, cache control headers have now been disabled by default in OctoPerf:

Cache control

Simply because every script using a loop or calling the same page several times could be impacted by this change otherwise. You are welcome to activate them if required anyway.

OctoPerf 11 - Modular design, tags and improved administration

Modular design

One of the things we always wanted to handle in OctoPerf is modular design. In JMeter you can use test fragments. So far when you imported fragments in OctoPerf their content was just duplicated over the original Include controller or Module controller.

But now not only can you import your modular design from JMeter but you can also create it directly in OctoPerf: Create fragments

A fragment virtual user can be seen as a library of functions. At the moment it is only possible to populate it by copy/pasting content but more options will come later.

Then inside any other virtual user of your project you can create a Link action: Link fragments You can use this to zoom on the fragment itself. That can be useful for instance to see what's the result of a virtual user validation on a test fragment.

Fullstack Reactive Server Sent Events

Reactive programming is a programming paradigm aimed at maintaining overall coherence by propagating changes from a reactive source (modification of a variable, user input, etc.) to elements dependent on this source.

Reactive applications are more and more important today as they are:

  • Highly Available: the system must respond quickly no matter what,
  • Resilient: the system must always remain available, even in case of error or even if it is overloaded,
  • Message Oriented: the system uses asynchronous messages.

Which meets the requirements of today's users.