Jmeter kafka生产者负载测试发送字符串分隔的Json

Jmeter kafka生产者负载测试发送字符串分隔的Json,jmeter,Jmeter,我正在尝试发送带字符串分隔符的json 例如 但是当我看到卡夫卡的消费者 我收到的消息是 "carrierId":"XXX", "eventProcessedTS":1618261255871, "eventTS":1618261255871, "deviceId":"XXX", "event": "{"deviceDetailsDat

我正在尝试发送带字符串分隔符的json 例如

但是当我看到卡夫卡的消费者 我收到的消息是

"carrierId":"XXX",
"eventProcessedTS":1618261255871,
"eventTS":1618261255871,
"deviceId":"XXX",
"event":  "{"deviceDetailsDataModel":{"eventDateTime":1618261255871,"vin":"XXXX","deviceTimeZone":"XXXX","deviceId":"XXXXX"}}"
}```

without string delimited.
I have created this as JsonObject and convert event object alone to string using  event.toString() in my JSR223sampler but Still, it's not working. is it a limitation?  I am using kafkaclient 2.7.0
现在还不清楚您使用的是哪一个“Jmeter kafka producer”,现成的Jmeter不提供任何kafka负载测试功能,如果您使用的是类似插件的插件,或者您应该向Jmeter插件开发人员和/或维护人员咨询这个问题

还请注意,您始终可以使用以下示例代码实现Kafka producer:

import org.apache.kafka.clients.producer.KafkaProducer
import org.apache.kafka.clients.producer.ProducerRecord

def props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

def producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("your-topic", "your_JSON_here");

producer.close();
import org.apache.kafka.clients.producer.KafkaProducer
导入org.apache.kafka.clients.producer.ProducerRecord
def props=新属性();
put(“bootstrap.servers”,“localhost:9092”);
道具放置(“阿克斯”、“全部”);
道具放置(“重试”,0);
道具放置(“批量大小”,16384);
道具放置(“玲儿小姐”,1);
props.put(“buffer.memory”,33554432);
put(“key.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
put(“value.serializer”、“org.apache.kafka.common.serialization.StringSerializer”);
def制作人=新卡夫卡制作人(道具);
producer.send(新的ProducerRecord(“您的主题”、“您的JSON”在此));
producer.close();
通过这种方式,您将确信JMeter可以“按原样”发送JSON,而无需插件引入任何最终转换


更多信息:

我正在使用上面建议的JSR223采样器和groovy实现kafka producer,并使用您附加的链接作为构建我的json的参考
import org.apache.kafka.clients.producer.KafkaProducer
import org.apache.kafka.clients.producer.ProducerRecord

def props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("acks", "all");
props.put("retries", 0);
props.put("batch.size", 16384);
props.put("linger.ms", 1);
props.put("buffer.memory", 33554432);
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

def producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord<>("your-topic", "your_JSON_here");

producer.close();