Gatling 2.1.7 MQTT

Hi @ all,

currently I am trying to use the Gatling Mqtt extension (https://github.com/mnogu/gatling-mqtt).
The extension works but there are some limitation. Does anyone has some experiences with this extension?

I am trying to send several messages with on connection:

Connect → Message1 → wait(5) → Message2 → Disconnect

At the moment the extension can online do this:

Connect → Message1 → Disconnect

I checked the code in MqttRequestAction:

override def executeOrFail(session: Session): Validation[Unit] = {
configureHost(session)(mqtt)
.flatMap(configureClientId(session))
.flatMap(configureUserName(session))
.flatMap(configurePassword(session))
.flatMap(configureWillTopic(session))
.flatMap(configureWillMessage(session))
.flatMap(configureVersion(session)).map { resolvedMqtt =>

configureOptions(resolvedMqtt)

val connection = resolvedMqtt.callbackConnection()
val test = session(“connection”).validate[CallbackConnection]
connection.connect(new Callback[Void] {
override def onSuccess(void: Void): Unit = {
mqttAttributes.requestName(session).flatMap { resolvedRequestName =>
mqttAttributes.topic(session).flatMap { resolvedTopic =>
session.set(“connection”, connection);
sendRequest(
resolvedRequestName,
connection,
resolvedTopic,
mqttAttributes.payload,
mqttAttributes.qos,
mqttAttributes.retain,
session)
}
}
}
override def onFailure(value: Throwable): Unit = {
mqttAttributes.requestName(session).map { resolvedRequestName =>
MqttRequestAction.reportUnbuildableRequest(
resolvedRequestName, session, value.getMessage)
}
connection.disconnect(null)
}
})
}
}

There is also a disconnect in sendRequest. So the connection is established and destroyed in this class.
The connection is also stored in the session. But when I try to get the connection from session there is alway nothing.

Does anyone has an idea how to change this?

Thx for support!