gatling-kafka-plugin
gatling-kafka-plugin copied to clipboard
Kafka message key is None
Пример отправки сообщения
exec(
kafka("Some kafka message with header")
.send(
None,
"some payload",
new RecordHeaders().add("headerKey", "headerValue".getBytes)
)
)
Ожидается, что в кафку отправиться сообщение с ключём null, а отправляется None Пример "костыля" с которым работает верно ru.tinkoff.gatling.kafka.actions.KafkaRequestAction
val key = kafkaAttributes.key.map(k => k(session).toOption.get) match {
case Some(value) => if (value == None) null.asInstanceOf[K] else value
case None => null.asInstanceOf[K]
}
Ага, можно еще немного менее костыльнее, например
val key: K = kafkaAttributes.key match {
//если атрибут сессии существует, то берем его, если не можем, то возвращаем null
case Some(value) => value(session).toOption.getOrElse(null.asInstanceOf[K])
//если ключ = None (когда вызываем send(value))
case None => null.asInstanceOf[K]
}
для вот такой симуляции
exec(_.set("key", null))
.exec(
kafka("Some kafka message with header")
.send[String, String](
"#{key}",
"some payload",
new RecordHeaders().add("headerKey", "headerValue".getBytes)
)
)```