23.

That’s the number of issues covered in the release of Gatling 3.8. We started big this Summer and as usual, you can find the details of the release on GitHub.

Considering the breaking changes introduced in that version, please make sure to follow the Upgrade Guide when migrating from 3.7 to 3.8. Take note that Gatling 3.8 is not binary compatible with previous versions. Any code compiled with a previous version must be recompiled in order to be executed with Gatling 3.8.

Now, between new features and corrections, let’s dig into that update.

What’s New

Sequential scenarios

One of the main new features is the upgrade of andThen , which allows you to chain scenarios.

You can now write something like:
setUpScenario.injectOpen(atOnceUsers(1))
    .andThen(
      actualScenario1.injectOpen(constantUsersPerSec(10).during(120),
      actualScenario2.injectOpen(constantUsersPerSec(10).during(120)
    ).andThen(
      tearDownScenario.injectOpen(atOnceUsers(1))
    )

Other updates

  • Redis feeder now supports the RPOPLPUSH
  • Gatling Expression language now supports sequence/array/list access by negative index, ie counting backward from the end
  • When running a test, Gatling now tries to check if a newer release is available on maven central and if so prompts a warning in the console and if the version is really out of date (more than 1 year old), displays a warning in the HTML reports.
  • WebSockets close now supports passing a status code
  • HTML reports have been revamped with a more modern look-and-feel

What’s Neat

The 3.8 update comes with with a fair share of fixes to help improve your load testing experience! Here is what’s been fixed.

  • Core: Session.getDouble throws NumberFormatException on real double value
  • Core: Doesn’t use Scala check transform to converted extracted values to Java
  • Core: crash when using the same Java feeder in multiple places
  • Core: Java Session.getString(key) j.l.NullPointerException if value is null
  • Core: Java Session misses toString override
  • Core: New implicits in core.Predef breaks logic with Expression[Any]
  • Gradle: netty-tcnative native libs are missing from the classpath when running from gradle
  • HTTP: Digest Authentication is not working
  • Recorder: tags are not properly generated
  • Recorder: some urls are not properly wrapped with double quotes
  • Fixes to CLI options table description not properly shown

You can find the details of each fix on GitHub.

Don’t forget Gatling Enterprise

Gatling Enterprise is now in its 1.17 version. No heavy changes except that now Gatling Enterprise integrates the latests features and fixes of Gatling 3.8, including the new sequential scenario behaviours. This news also includes Gatling Cloud!

Also, the PDF export feature has been totally reworked, thus correcting a lot issues and hopefully allowing a better user experience. Be sure to give it a try and send us your feedback.

Still got questions?

We can’t say it enough, the documentation is that place to be if you need answers and details to work with the Gatling and Gatling Enterprise smoothly.

If you still have questions or want to discuss that release, join the Gatling Community! Users and Gatling members will happily try to help you.