An unofficial Gatling 3.3.1 stress test plugin for Apache Kafka 2.4.0 protocol.

This plugin supports the Kafka producer API only and doesn't support the Kafka consumer API.


Cloning this repository

$ git clone https://github.com/mnogu/gatling-kafka.git
$ cd gatling-kafka

Creating a jar file

Install sbt 0.13 if you don't have. And create a jar file:

$ sbt assembly

If you want to change the version of Gatling used to create a jar file, change the following line in build.sbt:

"io.gatling" % "gatling-core" % "3.3.1" % "provided",

and run sbt assembly.

If you don't want to include kafka-clients library to the jar file, change a line on kafka-clients in build.sbt from

("org.apache.kafka" % "kafka-clients" % "2.4.0")


("org.apache.kafka" % "kafka-clients" % "2.4.0" % "provided")

and run sbt assembly.

Putting the jar file to lib directory

Put the jar file to lib directory in Gatling:

$ cp target/scala-2.12/gatling-kafka-assembly-*.jar /path/to/gatling-charts-highcharts-bundle-3.3.1.*/lib

If you edited build.sbt in order not to include kafka-clients library to the jar file, you also need to copy kafka-clients library to lib directory:

$ cp /path/to/kafka-clients-*.jar /path/to/gatling-charts-highcharts-bundle-3.3.1.*/lib

Creating a simulation file

$ cd /path/to/gatling-charts-highcharts-bundle-3.3.1.*
$ vi user-files/simulations/KafkaSimulation.scala

You can find sample simulation files in the test directory. Among these files, BasicSimulation.scala would be a good start point. Make sure that you replace BasicSimulation with KafkaSimulation in BasicSimulation.scala if your simulation filename is KafkaSimulation.scala.

Note that gatling-kafka 0.1.x isn't compatible with 0.0.x. See the README.md in the 0.0.6 release if you are using 0.0.x.

Running a stress test

After starting an Apache Kafka server, run a stress test:

$ bin/gatling.sh


Apache License, Version 2.0