diff --git a/publish.sbt b/publish.sbt index e583286..886cf46 100644 --- a/publish.sbt +++ b/publish.sbt @@ -2,9 +2,9 @@ ThisBuild / versionScheme := Some("semver-spec") ThisBuild / organization := "org.galaxio" ThisBuild / organizationName := "Galaxio Team" ThisBuild / organizationHomepage := Some(url("https://github.com/galax-io")) -ThisBuild / description := "Plugin to support kafka performance testing in Gatling." -ThisBuild / homepage := Some(url("https://github.com/galax-io/gatling-kafka-plugin")) -ThisBuild / scmInfo := Some( + +ThisBuild / homepage := Some(url("https://github.com/galax-io/gatling-kafka-plugin")) +ThisBuild / scmInfo := Some( ScmInfo( url("https://github.com/galax-io/gatling-kafka-plugin"), "git@github.com:galax-io/gatling-kafka-plugin.git", @@ -21,7 +21,8 @@ ThisBuild / developers := List( ) // Remove all additional repository other than Maven Central from POM -ThisBuild / publishTo := { +ThisBuild / pomIncludeRepository := { _ => false } +ThisBuild / publishTo := { val nexus = "https://s01.oss.sonatype.org/" if (isSnapshot.value) Some("snapshots" at nexus + "content/repositories/snapshots") else Some("releases" at nexus + "service/local/staging/deploy/maven2") diff --git a/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/KafkaRequestBuilderBase.java b/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/KafkaRequestBuilderBase.java index f1cf3ad..e06a7f6 100644 --- a/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/KafkaRequestBuilderBase.java +++ b/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/KafkaRequestBuilderBase.java @@ -59,12 +59,10 @@ public KafkaRequestBuilderBase(org.galaxio.gatling.kafka.request.builder.KafkaRe public RequestBuilder send(V payload, Headers headers) { return new RequestBuilder<>( - wrapped.send( - null, + wrapped.send(null, calculateExpression(payload), toStaticValueExpression(headers), - Sender.noSchemaSender() - )); + Sender.noSchemaSender())); } public ReqRepBase requestReply() { diff --git a/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/RequestBuilder.java b/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/RequestBuilder.java index 0e8b7f1..e14ad29 100644 --- a/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/RequestBuilder.java +++ b/src/main/java/org/galaxio/gatling/kafka/javaapi/request/builder/RequestBuilder.java @@ -2,14 +2,24 @@ import io.gatling.javaapi.core.ActionBuilder; +import java.util.function.Function; + public class RequestBuilder implements ActionBuilder { private final org.galaxio.gatling.kafka.request.builder.RequestBuilder wrapped; - public RequestBuilder(org.galaxio.gatling.kafka.request.builder.RequestBuilder wrapped) { + public RequestBuilder(org.galaxio.gatling.kafka.request.builder.RequestBuilder wrapped) { this.wrapped = wrapped; } + protected RequestBuilder make(Function< + org.galaxio.gatling.kafka.request.builder.RequestBuilder, + org.galaxio.gatling.kafka.request.builder.RequestBuilder> + f) { + return new RequestBuilder<>(f.apply(wrapped)); + + } + @Override public io.gatling.core.action.builder.ActionBuilder asScala() { return wrapped.build(); diff --git a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAction.scala b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAction.scala index 5f3b009..fcbe836 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAction.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAction.scala @@ -14,7 +14,7 @@ import org.galaxio.gatling.kafka.request.builder.KafkaAttributes class KafkaRequestAction[K, V]( val producer: KafkaProducer[K, V], - val attr: KafkaAttributes[K, V], + val attributes: KafkaAttributes[K, V], val coreComponents: CoreComponents, val kafkaProtocol: KafkaProtocol, val throttled: Boolean, @@ -27,9 +27,9 @@ class KafkaRequestAction[K, V]( override def execute(session: Session): Unit = recover(session) { - attr requestName session flatMap { requestName => + attributes requestName session flatMap { requestName => val outcome = - sendRequest(requestName, producer, attr, throttled, session) + sendRequest(requestName, producer, attributes, throttled, session) outcome.onFailure(errorMessage => statsEngine.reportUnbuildableRequest(session.scenario, session.groups, requestName, errorMessage), @@ -58,6 +58,8 @@ class KafkaRequestAction[K, V]( .map(h => h(session).toOption.get) .orNull + val silent: Boolean = kafkaAttributes.silent.getOrElse(false) + val record = new ProducerRecord[K, V]( kafkaProtocol.producerTopic, null, @@ -74,16 +76,17 @@ class KafkaRequestAction[K, V]( val requestEndDate = clock.nowMillis - statsEngine.logResponse( - session.scenario, - session.groups, - requestName, - startTimestamp = requestStartDate, - endTimestamp = requestEndDate, - if (e == null) OK else KO, - None, - if (e == null) None else Some(e.getMessage), - ) + if (!silent) + statsEngine.logResponse( + session.scenario, + session.groups, + requestName, + startTimestamp = requestStartDate, + endTimestamp = requestEndDate, + if (e == null) OK else KO, + None, + if (e == null) None else Some(e.getMessage), + ) coreComponents.throttler match { case Some(th) if throttled => th.throttle(session.scenario, () => next ! session) diff --git a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestActionBuilder.scala b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestActionBuilder.scala index 362ea55..bf4d48c 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestActionBuilder.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestActionBuilder.scala @@ -1,5 +1,6 @@ package org.galaxio.gatling.kafka.actions +import com.softwaremill.quicklens._ import io.gatling.core.action.Action import io.gatling.core.action.builder.ActionBuilder import io.gatling.core.structure.ScenarioContext @@ -9,7 +10,7 @@ import org.galaxio.gatling.kafka.request.builder.KafkaAttributes import scala.jdk.CollectionConverters._ -class KafkaRequestActionBuilder[K, V](attr: KafkaAttributes[K, V]) extends ActionBuilder { +case class KafkaRequestActionBuilder[K, V](attributes: KafkaAttributes[K, V]) extends ActionBuilder { override def build(ctx: ScenarioContext, next: Action): Action = { @@ -24,7 +25,7 @@ class KafkaRequestActionBuilder[K, V](attr: KafkaAttributes[K, V]) extends Actio new KafkaRequestAction( producer, - attr, + attributes, coreComponents, kafkaComponents.kafkaProtocol, throttled, diff --git a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAvro4sActionBuilder.scala b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAvro4sActionBuilder.scala index b2fa4d0..7e4aa2a 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAvro4sActionBuilder.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestAvro4sActionBuilder.scala @@ -1,5 +1,6 @@ package org.galaxio.gatling.kafka.actions +import com.softwaremill.quicklens._ import io.gatling.core.action.Action import io.gatling.core.action.builder.ActionBuilder import io.gatling.core.structure.ScenarioContext @@ -10,8 +11,11 @@ import org.galaxio.gatling.kafka.protocol.KafkaProtocol import org.galaxio.gatling.kafka.request.builder.Avro4sAttributes import scala.jdk.CollectionConverters._ +import scala.reflect.ClassTag + +case class KafkaRequestAvro4sActionBuilder[K: ClassTag, V: ClassTag](attributes: Avro4sAttributes[K, V]) + extends ActionBuilder with NameGen { -class KafkaRequestAvro4sActionBuilder[K, V](attr: Avro4sAttributes[K, V]) extends ActionBuilder with NameGen { override def build(ctx: ScenarioContext, next: Action): Action = { import ctx._ @@ -23,7 +27,7 @@ class KafkaRequestAvro4sActionBuilder[K, V](attr: Avro4sAttributes[K, V]) extend new KafkaAvro4sRequestAction( producer, - attr, + attributes, coreComponents, kafkaComponents.kafkaProtocol, throttled, diff --git a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestReplyActionBuilder.scala b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestReplyActionBuilder.scala index 3b5688f..7993b02 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestReplyActionBuilder.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/actions/KafkaRequestReplyActionBuilder.scala @@ -1,17 +1,23 @@ package org.galaxio.gatling.kafka.actions -import com.softwaremill.quicklens.ModifyPimp +import com.softwaremill.quicklens._ import io.gatling.core.action.Action import io.gatling.core.action.builder.ActionBuilder import io.gatling.core.structure.ScenarioContext +import io.gatling.core.util.NameGen import org.galaxio.gatling.kafka.KafkaCheck import org.galaxio.gatling.kafka.protocol.KafkaProtocol -import org.galaxio.gatling.kafka.request.builder.KafkaRequestReplyAttributes +import org.galaxio.gatling.kafka.request.builder.{KafkaRequestBuilder, KafkaRequestReplyAttributes} import scala.reflect.ClassTag case class KafkaRequestReplyActionBuilder[K: ClassTag, V: ClassTag](attributes: KafkaRequestReplyAttributes[K, V]) - extends ActionBuilder { + extends ActionBuilder with NameGen { + + def silent: KafkaRequestReplyActionBuilder[K, V] = this.modify(_.attributes.silent).setTo(Some(true)) + + def notSilent: KafkaRequestReplyActionBuilder[K, V] = this.modify(_.attributes.silent).setTo(Some(false)) + def check(checks: KafkaCheck*): KafkaRequestReplyActionBuilder[K, V] = this.modify(_.attributes.checks).using(_ ::: checks.toList) diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/Avro4sAttributes.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/Avro4sAttributes.scala index 2079c51..d0f5902 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/Avro4sAttributes.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/Avro4sAttributes.scala @@ -12,4 +12,5 @@ case class Avro4sAttributes[K, V]( format: RecordFormat[V], fromRecord: FromRecord[V], headers: Option[Expression[Headers]], + silent: Option[Boolean], ) diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAttributes.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAttributes.scala index 83b4bfb..05ee748 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAttributes.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAttributes.scala @@ -8,4 +8,5 @@ case class KafkaAttributes[K, V]( key: Option[Expression[K]], payload: Expression[V], headers: Option[Expression[Headers]], + silent: Option[Boolean], ) diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAvro4sRequestBuilder.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAvro4sRequestBuilder.scala index 551982f..579f4e5 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAvro4sRequestBuilder.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaAvro4sRequestBuilder.scala @@ -1,10 +1,17 @@ package org.galaxio.gatling.kafka.request.builder +import com.softwaremill.quicklens.ModifyPimp import io.gatling.core.action.builder.ActionBuilder import org.galaxio.gatling.kafka.actions.KafkaRequestAvro4sActionBuilder -case class KafkaAvro4sRequestBuilder[K, V](attr: Avro4sAttributes[K, V]) extends RequestBuilder[K, V] { +import scala.reflect.ClassTag - def build: ActionBuilder = new KafkaRequestAvro4sActionBuilder(attr) +case class KafkaAvro4sRequestBuilder[K: ClassTag, V: ClassTag](attributes: Avro4sAttributes[K, V]) + extends RequestBuilder[K, V] { + def build: ActionBuilder = KafkaRequestAvro4sActionBuilder(attributes) + + override def silent: RequestBuilder[K, V] = this.modify(_.attributes.silent).setTo(Some(true)) + + override def notSilent: RequestBuilder[K, V] = this.modify(_.attributes.silent).setTo(Some(false)) } diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilder.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilder.scala index f5adeda..f6e77cd 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilder.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilder.scala @@ -1,10 +1,15 @@ package org.galaxio.gatling.kafka.request.builder +import com.softwaremill.quicklens.ModifyPimp import io.gatling.core.action.builder.ActionBuilder import org.galaxio.gatling.kafka.actions.KafkaRequestActionBuilder -case class KafkaRequestBuilder[K, V](attr: KafkaAttributes[K, V]) extends RequestBuilder[K, V] { +case class KafkaRequestBuilder[K, V](attributes: KafkaAttributes[K, V]) extends RequestBuilder[K, V] { - def build: ActionBuilder = new KafkaRequestActionBuilder(attr) + def silent: KafkaRequestBuilder[K, V] = this.modify(_.attributes.silent).setTo(Some(true)) + + def notSilent: KafkaRequestBuilder[K, V] = this.modify(_.attributes.silent).setTo(Some(false)) + + def build: ActionBuilder = KafkaRequestActionBuilder(attributes) } diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilderBase.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilderBase.scala index 368b1e0..8df2115 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilderBase.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestBuilderBase.scala @@ -23,8 +23,10 @@ case class KafkaRequestBuilderBase(requestName: Expression[String]) { sender.send(requestName, Some(key), payload, Some(headers)) } - def send[V](payload: Expression[V])(implicit sender: Sender[Nothing, V]): RequestBuilder[_, V] = - sender.send(requestName, None, payload) + def send[V](payload: Expression[V])(implicit + sender: Sender[Nothing, V], + ): RequestBuilder[_, V] = + sender.send(requestName = requestName, key = None, payload = payload, headers = None) def requestReply: ReqRepBase.type = ReqRepBase @@ -37,15 +39,16 @@ case class KafkaRequestBuilderBase(requestName: Expression[String]) { ): KafkaRequestReplyActionBuilder[K, V] = { KafkaRequestReplyActionBuilder[K, V]( new KafkaRequestReplyAttributes[K, V]( - requestName, - inputTopic, - outputTopic, - key, - payload, - Some(headers), - implicitly[Serde[K]].serializer(), - implicitly[Serde[V]].serializer(), - List.empty, + requestName = requestName, + inputTopic = inputTopic, + outputTopic = outputTopic, + key = key, + value = payload, + headers = Some(headers), + keySerializer = implicitly[Serde[K]].serializer(), + valueSerializer = implicitly[Serde[V]].serializer(), + checks = List.empty, + silent = None, ), ) } @@ -53,6 +56,7 @@ case class KafkaRequestBuilderBase(requestName: Expression[String]) { case class RRInTopicStep(inputTopic: Expression[String]) { def replyTopic(outputTopic: Expression[String]): RROutTopicStep = RROutTopicStep(inputTopic, outputTopic) + } def requestTopic(rt: Expression[String]): RRInTopicStep = RRInTopicStep(rt) diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestReplyAttributes.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestReplyAttributes.scala index dde1d56..0caa86f 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestReplyAttributes.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/KafkaRequestReplyAttributes.scala @@ -15,4 +15,5 @@ case class KafkaRequestReplyAttributes[K, V]( keySerializer: Serializer[K], valueSerializer: Serializer[V], checks: List[KafkaCheck], + silent: Option[Boolean], ) diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/LowPriorSender.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/LowPriorSender.scala index c5d454a..3b87fb0 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/LowPriorSender.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/LowPriorSender.scala @@ -8,14 +8,18 @@ trait LowPriorSender { new Sender[K, V] { override def send(requestName: Expression[String], payload: Expression[V]): RequestBuilder[Nothing, V] = - KafkaRequestBuilder[Nothing, V](KafkaAttributes(requestName, None, payload, None)) + KafkaRequestBuilder[Nothing, V]( + KafkaAttributes(requestName = requestName, key = None, payload = payload, headers = None, silent = None), + ) override def send( requestName: Expression[String], key: Option[Expression[K]], payload: Expression[V], ): RequestBuilder[K, V] = - KafkaRequestBuilder[K, V](KafkaAttributes(requestName, key, payload, None)) + KafkaRequestBuilder[K, V]( + KafkaAttributes(requestName = requestName, key = key, payload = payload, headers = None, silent = None), + ) override def send( requestName: Expression[String], @@ -23,6 +27,9 @@ trait LowPriorSender { payload: Expression[V], headers: Option[Expression[Headers]], ): RequestBuilder[K, V] = - KafkaRequestBuilder[K, V](KafkaAttributes(requestName, key, payload, headers)) + KafkaRequestBuilder[K, V]( + KafkaAttributes(requestName = requestName, key = key, payload = payload, headers = headers, silent = None), + ) + } } diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/RequestBuilder.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/RequestBuilder.scala index bb82a3e..06ce139 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/RequestBuilder.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/RequestBuilder.scala @@ -5,4 +5,9 @@ import io.gatling.core.action.builder.ActionBuilder trait RequestBuilder[K, V] { def build: ActionBuilder + + def silent: RequestBuilder[K, V] + + def notSilent: RequestBuilder[K, V] + } diff --git a/src/main/scala/org/galaxio/gatling/kafka/request/builder/Sender.scala b/src/main/scala/org/galaxio/gatling/kafka/request/builder/Sender.scala index 9918add..190e76a 100644 --- a/src/main/scala/org/galaxio/gatling/kafka/request/builder/Sender.scala +++ b/src/main/scala/org/galaxio/gatling/kafka/request/builder/Sender.scala @@ -4,6 +4,8 @@ import com.sksamuel.avro4s.{FromRecord, RecordFormat, SchemaFor} import io.gatling.core.session.Expression import org.apache.kafka.common.header.Headers +import scala.reflect.ClassTag + trait Sender[K, V] { def send(requestName: Expression[String], payload: Expression[V]): RequestBuilder[Nothing, V] @@ -21,7 +23,7 @@ trait Sender[K, V] { object Sender extends LowPriorSender { - implicit def Avro4sSender[K, V](implicit + implicit def Avro4sSender[K: ClassTag, V: ClassTag](implicit schema: SchemaFor[V], format: RecordFormat[V], fromRecord: FromRecord[V], @@ -29,14 +31,36 @@ object Sender extends LowPriorSender { ): Sender[K, V] = new Sender[K, V] { override def send(requestName: Expression[String], payload: Expression[V]): RequestBuilder[Nothing, V] = - new KafkaAvro4sRequestBuilder[Nothing, V](Avro4sAttributes(requestName, None, payload, schema, format, fromRecord, None)) + new KafkaAvro4sRequestBuilder[Nothing, V]( + Avro4sAttributes( + requestName = requestName, + key = None, + payload = payload, + schema = schema, + format = format, + fromRecord = fromRecord, + headers = None, + silent = None, + ), + ) override def send( requestName: Expression[String], key: Option[Expression[K]], payload: Expression[V], ): RequestBuilder[K, V] = - new KafkaAvro4sRequestBuilder[K, V](Avro4sAttributes(requestName, key, payload, schema, format, fromRecord, None)) + new KafkaAvro4sRequestBuilder[K, V]( + Avro4sAttributes( + requestName = requestName, + key = key, + payload = payload, + schema = schema, + format = format, + fromRecord = fromRecord, + headers = None, + silent = None, + ), + ) override def send( requestName: Expression[String], @@ -44,7 +68,19 @@ object Sender extends LowPriorSender { payload: Expression[V], headers: Option[Expression[Headers]], ): RequestBuilder[K, V] = - new KafkaAvro4sRequestBuilder[K, V](Avro4sAttributes(requestName, key, payload, schema, format, fromRecord, headers)) + new KafkaAvro4sRequestBuilder[K, V]( + Avro4sAttributes( + requestName = requestName, + key = key, + payload = payload, + schema = schema, + format = format, + fromRecord = fromRecord, + headers = headers, + silent = None, + ), + ) + } } diff --git a/src/test/scala/org/galaxio/gatling/kafka/examples/KafkaGatlingTest.scala b/src/test/scala/org/galaxio/gatling/kafka/examples/KafkaGatlingTest.scala index 3a1fc77..3c6fbdd 100644 --- a/src/test/scala/org/galaxio/gatling/kafka/examples/KafkaGatlingTest.scala +++ b/src/test/scala/org/galaxio/gatling/kafka/examples/KafkaGatlingTest.scala @@ -1,15 +1,12 @@ package org.galaxio.gatling.kafka.examples import com.sksamuel.avro4s._ -import io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient -import io.confluent.kafka.serializers.{KafkaAvroDeserializer, KafkaAvroSerializer} import io.gatling.core.Predef._ import io.gatling.core.structure.ScenarioBuilder import org.apache.kafka.clients.producer.ProducerConfig -import org.galaxio.gatling.kafka.Predef._ import org.apache.kafka.common.header.Headers import org.apache.kafka.common.header.internals.RecordHeaders -import org.apache.kafka.common.serialization.{Deserializer, Serde, Serializer} +import org.galaxio.gatling.kafka.Predef._ import org.galaxio.gatling.kafka.protocol.KafkaProtocol import org.galaxio.gatling.kafka.request.KafkaProtocolMessage @@ -162,6 +159,11 @@ class KafkaGatlingTest extends Simulation { kafka("Request Stirng With null key") .send[Any, String](null, "nullkey"), ) + .exec( + kafka("Request String") + .send[String]("foo") + .silent, + ) val scn: ScenarioBuilder = scenario("Request String") .exec(kafka("Request String 2").send[String, String]("testCheckJson", """{ "m": "dkf" }""")) @@ -171,6 +173,11 @@ class KafkaGatlingTest extends Simulation { kafka("Request Byte") .send[Array[Byte], Array[Byte]]("key".getBytes(), "tstBytes".getBytes()), ) + .exec( + kafka("Request Byte") + .send[Array[Byte], Array[Byte]]("key".getBytes(), "tstBytes".getBytes()) + .silent, + ) val scnRR2: ScenarioBuilder = scenario("RequestReply Bytes") .exec( @@ -190,6 +197,11 @@ class KafkaGatlingTest extends Simulation { kafka("Request Avro4s") .send[String, Ingredient]("key4s", Ingredient("Cheese", 0d, 70d)), ) + .exec( + kafka("Request Simple Avro4s") + .send(Ingredient("Cheese", 1d, 50d)) + .silent, + ) val scnRRwo: ScenarioBuilder = scenario("RequestReply w/o answer") .exec(