JMeter直接加载一个扩展插件,可以直接发送Kafka消息
链接:https://github.com/BrightTag/kafkameter
放到JMeter_Dir/lib/ext里,重新启动jmeter之后,新增一个Java Request
就可以发现Kafka消息发送的信息
编辑brokers,topic,key和message即可
格式请按照约定的kafka消息格式来编辑
最好不要在本地个人电脑上来发送kafka消息,因为既然是测试性能就别这么玩,本地网络和远程云服务网络链路肯定十分长,说不定还要连接VPN才能进行网络转发,因此直接将本地编辑好的jmx文件保存,上传到测试环境某一个测试服务器上,确保kafka消息能发出,然后服务器上命令行执行jmeter命令,比如
jmeter -n -X -t sendKafka.jmx -l result
需要注意的是,jmeter里的各种依赖包一个也不能少,和本地执行jmeter的依赖保持一致
这里终端输出的结果,TPS恒定在500,中间三项数据为平均,最小,最大的响应时间,最后是错误率
至于TPS的指定,添加一个Throughput Timer即可,这里输入的是每分钟的数据
查看kafka消息堆积可以通过kafka-manager,或者直接命令行指定top查看
命令可以网上搜到
./kafka-consumer-offset-checker.sh --zookeeper 10.111.0.10:8888,10.111.0.20:8888,10.111.0.30:8888 --topic LIHUI_TEST_TOPIC --group dev --broker-info
可以直接watch查看变化情况
最后有一点要注意的是,因为这是个两年前的插件,kafka和scala版本也比较老,小版本也有要求,具体如下
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.8.2</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.8.2</version>
</dependency>
然后可以在Consumer端收听消息