使用Jmeter读取Json文件对Kafka进行压力测试
最近因为系统开发需要,要模拟业务系统生产业务数据推送到Kafka中。同时对于生成的业务数据有一定逻辑要求,故采用了先使用代码生成测试业务数据到Json文件中,然后通过Jmeter读取Json文件以一定的并发数推送到Kafka中的方案。
环境准备
windows
步骤
点击链接 # 下载 Jmeter,并解压到指定路径
# 下载 di-kafkameter 到
Jmeter
根目录下的lib\ext
目录下进入到
Jmeter
根目录下的bin
目录下,双击jmeter.bat
,进入到GUI
界面设置为中文
新增并配置线程组,线程数设置为
100
,永远循环新增并配置
Constant Throughput Timer
,用于控制并发吞吐量一分钟执行18万次,即3000TPS新增并配置
CSV Data Set Config
,用于读取Json
文件新增并配置
KafkaProducerConfig
,用于配置Kafka
集群的信息新增并配置
Kafka
生产者取样器,用于向Kafka
推送消息此处的
${data}
,即为前面步骤7中配置的变量。新增并配置
查看结果树
,用于测试时查看结果点击运行,并保存配置文件到指定路径
查看压力测试情况
停止压测,并关闭GUI页面,以便使用命令行进行压测(GUI界面会影响压测的性能)
配置
Jmeter
到系统环境变量中打开终端,使用命令行进行压测
1
jmeter -n -t D:\APerson\Software\apache-jmeter-5.6.3\bin\查看结果树.jmx -l D:\APerson\Software\apache-jmeter-5.6.3\report\02-result.csv -j D:\APerson\Software\apache-jmeter-5.6.3\report\02-log.log
D:\APerson\Software\apache-jmeter-5.6.3\bin\查看结果树.jmx
为第11步骤保存的配置文件D:\APerson\Software\apache-jmeter-5.6.3\report\02-result.csv
为测试结果生成路径(文件目录不存在会自动创建)D:\APerson\Software\apache-jmeter-5.6.3\report\02-log.log
为测试日志生成路径(文件目录不存在会自动创建)
Centos
步骤
- windows上通过
GUI
界面配置好xxx.jmx
文件(记得修改Json文件路径为Centos上的路径),并上传到Centos服务器上 - 打包windows上的Jmeter目录上传到Centos服务器上解压
- 在Centos系统上配置Jmeter环境变量
vim /etc/profile
,追加内容如下,配置完成后执行source /etc/profile
1
2
3
4Jmeter
export JMETER_HOME=/home/lbs/software/jmeter
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin - 使用命令行启动压测
1
jmeter -n -t /home/lbs/software/jmeter/conf/Kafka压力测试.jmx -l /home/lbs/software/jmeter/result/01-result.csv -j /home/lbs/software/jmeter/result/01-log.log
结语
搞定,收工!
使用Jmeter读取Json文件对Kafka进行压力测试