使用Jmeter读取Json文件对Kafka进行压力测试

使用Jmeter读取Json文件对Kafka进行压力测试

最近因为系统开发需要,要模拟业务系统生产业务数据推送到Kafka中。同时对于生成的业务数据有一定逻辑要求,故采用了先使用代码生成测试业务数据到Json文件中,然后通过Jmeter读取Json文件以一定的并发数推送到Kafka中的方案。

环境准备

# 安装JDK8并配置环境变量

windows步骤

  1. 点击链接 # 下载 Jmeter,并解压到指定路径

  2. # 下载 di-kafkameterJmeter根目录下的lib\ext目录下

    image.png

  3. 进入到Jmeter根目录下的bin目录下,双击jmeter.bat,进入到GUI界面

    image.png

    image.png

  4. 设置为中文

    image.png

  5. 新增并配置线程组,线程数设置为100,永远循环

    image.png

    image.png

  6. 新增并配置Constant Throughput Timer,用于控制并发吞吐量一分钟执行18万次,即3000TPS

    image.png

    image.png

  7. 新增并配置CSV Data Set Config,用于读取Json文件

    image.png

    image.png

    image.png

  8. 新增并配置KafkaProducerConfig,用于配置Kafka集群的信息

    image.png

    image.png

  9. 新增并配置Kafka生产者取样器,用于向Kafka推送消息

    image.png

    image.png

    此处的${data},即为前面步骤7中配置的变量。

  10. 新增并配置查看结果树,用于测试时查看结果

    image.png

    image.png

  11. 点击运行,并保存配置文件到指定路径

    image.png

  12. 查看压力测试情况

    image.png

    image.png

  13. 停止压测,并关闭GUI页面,以便使用命令行进行压测(GUI界面会影响压测的性能)

  14. 配置Jmeter到系统环境变量中

    image.png

  15. 打开终端,使用命令行进行压测

    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
    1. D:\APerson\Software\apache-jmeter-5.6.3\bin\查看结果树.jmx为第11步骤保存的配置文件
    2. D:\APerson\Software\apache-jmeter-5.6.3\report\02-result.csv 为测试结果生成路径(文件目录不存在会自动创建)
    3. D:\APerson\Software\apache-jmeter-5.6.3\report\02-log.log 为测试日志生成路径(文件目录不存在会自动创建)

Centos步骤

  1. windows上通过GUI界面配置好xxx.jmx文件(记得修改Json文件路径为Centos上的路径),并上传到Centos服务器上
  2. 打包windows上的Jmeter目录上传到Centos服务器上解压
  3. 在Centos系统上配置Jmeter环境变量vim /etc/profile,追加内容如下,配置完成后执行source /etc/profile
    1
    2
    3
    4
    # Jmeter
    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
  4. 使用命令行启动压测
    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进行压力测试

https://lbs.wiki/pages/eaa0f0e9/

作者

李博帅

发布于

2024-05-17

更新于

2025-06-05

许可协议