
For more detailed release notes, including patch releases, please check the [milestones on GitHub](https://github.com/gatling/gatling/milestones?state=closed).

## Core

* [#1647](https://github.com/gatling/gatling/issues/1647): Support closed workload model, see [here]({{< ref "/concepts/injection#closed-model" >}}).
* [#2602](https://github.com/gatling/gatling/issues/2602): Introduce `batch` for batching file based feeders instead of loading full content in memory.
* [#2634](https://github.com/gatling/gatling/issues/2634): Introduce `doWhile` loop, see [here]({{< ref "/concepts/scenario#dowhile" >}}).
* [#3067](https://github.com/gatling/gatling/issues/3067): Add percentile(rank: Double) assertion.
* [#3189](https://github.com/gatling/gatling/issues/3189): Remove `Validation#get`.
* [#3283](https://github.com/gatling/gatling/issues/3283): Introduce `asLongAsDuring` and `doWhileDuring` loops, see [here]({{< ref "/concepts/scenario#dowhile" >}}).
* [#3359](https://github.com/gatling/gatling/issues/3359): Support Java 9, 10, 11.
* [#3384](https://github.com/gatling/gatling/issues/3384): Introduce `readRecords` for reading feeder content, see [here]({{< ref "/concepts/session/feeders#read-records" >}}).
* [#3395](https://github.com/gatling/gatling/issues/3395): Automatically parse String values stored in Session into expected type, eg numbers.
* [#3399](https://github.com/gatling/gatling/issues/3399): Introduce `unzip` for compressed feeder files, see [here]({{< ref "/concepts/session/feeders#csv-feeders" >}}).
* [#3415](https://github.com/gatling/gatling/issues/3415): Support overriding Gatling configuration file name, see [here]({{< ref "/concepts/configuration#gatling-conf" >}}).
* [#3486](https://github.com/gatling/gatling/issues/3486): Make console print period configuration, see `gatling.conf`.
* [#3498](https://github.com/gatling/gatling/issues/3498): Allow the user to pass arbitrary scalac options.
* [#3345](https://github.com/gatling/gatling/issues/3345): Introduce meta SDK components `incrementUsersPerSec` and `incrementConcurrentUsers`.

## HTTP

* [#1744](https://github.com/gatling/gatling/issues/1744): SOCKS 4 and 5 proxies support, see [here]({{< ref "/reference/script/http/protocol#proxy" >}}).
* [#3007](https://github.com/gatling/gatling/issues/3007): Introduce strategies for naming inferred resources, see [here]({{< ref "/reference/script/http/protocol#nameinferredhtmlresources" >}}).
* [#3028](https://github.com/gatling/gatling/issues/3028): Support Pebble templating engine for crafting request bodies, see [here]({{< ref "/reference/script/http/request#request-body" >}}).
* [#3042](https://github.com/gatling/gatling/issues/3042): HTTP/2 support, see [here]({{< ref "/reference/script/http/protocol#enablehttp2" >}}).
* [#3043](https://github.com/gatling/gatling/issues/3043): baseUrls is now sticky for a given virtual user, see [here]({{< ref "/reference/script/http/protocol#baseurls" >}}).
* [#3071](https://github.com/gatling/gatling/issues/3071): New WebSocket and SSE API, see [here]({{< ref "/reference/script/websocket" >}}).
* [#3088](https://github.com/gatling/gatling/issues/3088): Introduce `findRandom` to pick a random check result, see [here]({{< ref "/concepts/checks#findrandom" >}}).
* [#3105](https://github.com/gatling/gatling/issues/3105): Introduce `name` for customizing check error message, see [here]({{< ref "/concepts/checks#name" >}}).
* [#3167](https://github.com/gatling/gatling/issues/3167): Introduce `getCookieValue`, see [here]({{< ref "/reference/script/http/helpers#getting-cookie-value" >}}).
* [#3195](https://github.com/gatling/gatling/issues/3195): `ofType` now deep converts into Scala `Map` and `Seq` types.
* [#3313](https://github.com/gatling/gatling/issues/3313): `form` check should extract String or `Seq[String]` depending on input cardinality.
* [#3325](https://github.com/gatling/gatling/issues/3325): Use unsecured TrustManager by default.
* [#3341](https://github.com/gatling/gatling/issues/3341): Introduce `isNull` and `notNull` check validators for dealing with null values, typically from JSON, see [here]({{< ref "/concepts/checks#isnull" >}}) and [here]({{< ref "/concepts/checks#notnull" >}}).
* [#3412](https://github.com/gatling/gatling/issues/3412): Introduce `asyncNameResolution` for switching to non-blocking DNS resolver instead of Java's one, see [here]({{< ref "/reference/script/http/protocol#asyncnameresolution" >}}).
* [#3496](https://github.com/gatling/gatling/issues/3496): `transformResponse` now takes a `Session` parameter, see [here]({{< ref "/reference/script/http/request#transformresponse" >}}).
* [#3521](https://github.com/gatling/gatling/issues/3521): Gatling now uses BoringSSL based SSLEngine by default.
* [#3560](https://github.com/gatling/gatling/issues/3560): Every virtual user now has its own SSLContext, except if `shareConnections` is enabled.

## JMS

* [2875](https://github.com/gatling/gatling/issues/2875): Introduce `replyTimeout` for individual request timeout, see [here]({{< ref "/reference/script/jms#protocol" >}}).
* [2967](https://github.com/gatling/gatling/issues/2967): JMSType support, see [here]({{< ref "/reference/script/jms#extra-options" >}}).
* [3103](https://github.com/gatling/gatling/issues/3103): Support passing a ConnectionFactory programmatically, see [here]({{< ref "/reference/script/jms#protocol" >}}).
* [3123](https://github.com/gatling/gatling/issues/3123): Make Queue names dynamic.
* [3262](https://github.com/gatling/gatling/issues/3262): Introduce `properties` to set custom JNDI properties, see [here]({{< ref "/reference/script/jms#extra-options" >}}).
* [3428](https://github.com/gatling/gatling/issues/3428): Introduce `trackerQueue` and `trackerDestination`, see [here]({{< ref "/reference/script/jms#destination" >}}).
* [3514](https://github.com/gatling/gatling/issues/3514): Introduce `noJmsReplyTo` to not set JMSReplyTo, see [here]({{< ref "/reference/script/jms#destination" >}}).

## Maven

* [3493](https://github.com/gatling/gatling/issues/3493): includes/exclude filters now take ant patterns.

## sbt

* [3168](https://github.com/gatling/gatling/issues/3168): Introduce Giter8 template.
