【JMeter】分布式压测配置教程
2026/9/12 17:52:25 网站建设 项目流程

文章目录

  • jdk安装
  • jmeter环境搭建(不管是控制机还是压测机)
  • 前置条件
  • master机器配置
  • slave机器配置
  • master机器运行
    • 执行结果说明

jdk安装

yum install -y java-1.8.0-openjdk

jmeter环境搭建(不管是控制机还是压测机)

  1. mkdir /usr/local/jmeter
  2. 将apache-jmeter-5.4.1.zip丢到/usr/local/jmeter目录
  3. 安装zip工具:yum install -y unzip zip
  4. cd /usr/local/jmeter
  5. 解压到当前文件夹:unzip apache-jmeter-5.4.1.zip
  6. 删除压缩包:rm -rf apache-jmeter-5.4.1.zip
  7. 配置环境变量
  8. vi /etc/profile,文件最后追加环境变量
    export JMETER_HOME=/usr/local/jmeter/apache-jmeter-5.4.1
    export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
    export PATH=$JMETER_HOME/bin:$PATH
  9. source /etc/profile使配置生效
  10. 授权 cd /usr/local/jmeter/apache-jmeter-5.4.1/bin
    chmod -R 777 jmeter 否则报错
  11. 验证jmeter是否安装成功:jmeter-v 若提示permission denied, cd /usr/local/jmeter/apache-jmeter-5.4.1/bin chmod —R 777 jmeter


    47,100.91.218 10.0.0.116机器为master机
    106.14.112.132 10.0.0.42为slave1机

前置条件

在所有期望运行jmeter作为负载机的机器上安装jmeter,并确定其中一台机器作为控制机control,其他机器作为代理机agent;
所有机器上的jmeter版本需保持一致;
所有机器上的jdk版本需保持一致;
确保jmeter及jdk的环境变量配置正确;
如果需要使用csv进行参数化,参数文件必须拷贝到每台代理机agent上,且路径必须一致;
需确保所有机器的防火墙都处于关闭状态;
确保控制机control与所有代理机agent都处于同一局域网内。

master机器配置

在调度机上修改bin/jmeter.properties,添加执行机的IP及端口(使用-r启动所有从机)1099是默认的rmi通信端口,取消server.rmi.ssl.disable=false的中注释并将false改为true(否则会报“Exception creating connection to:192.16..;nested exception is:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)”错误)
若master机也做slave机,配置master机内网ip,不要配置127.0.0.1

slave机器配置

  1. 访问执行机上JMeter的bin路径,修改jmeter.properties,
    server.rmi.ssl.disable=true, httpclient.timeout=1000;

  2. 修改jmeter-server, 去掉RMI_HOST_DEF前面的#,未尾的XX改成当前主机ip。

  3. 执行imeter-server

  4. 若master机器也要做slave机,同样操作

  5. 若有多台,重复操作
    master机器执行telnet 10.0.0.42 1099

master机器运行

Windows:运行bin目录下的jmeter.bat 文件打开jmeter;
MacOs/Linux:启动jmeter,启动命令./jmeter.sh

  • 页面执行
  • 命令行执行

    -n : 表示non gui mode 非图形化模式
    -t : testplan 后跟要运行的jmeter脚本路径和脚本名称
    -l : 指定生成测试结果的保存文件,jtl 文件格式
    -r : 启动所有远程的代理机agent(用在分布式测试场景下,不是分布式只是单点就不需要-r)
    -R : 指定某些机器
    -H : 设置Jmeter使用的代理主机
    -P : 设置Jmeter使用的代理主机的端口
    -e : 测试结束后,生成测试报告
    -o : 指定测试报告的存放位置

执行结果说明

控制机control会将jmeter脚本分发至每一台要参与本次测试的代理机agent,在执行的过程中不会进行负载均衡,即脚本设置的线程组为100,那么每台代理机agent也将会启动100个线程来进行测试;
远程启动测试后,所有代理机会执行与控制机一样的脚本;
测试执行结束后,控制机control会收集所有的代理机agent的执行结果并做汇总;
执行日志信息,可在生成的jmeter.log跟jmeter-server.log查看,内含代理机的所有执行信息。

举例说明:
控制器control的脚本设置的线程组为100,接口总执行次数控制在10000,代理机信息有两台,那么测试执行结束之后,最终的结果将会是两台代理机agent的总和;
线程总数:100+100=200
接口执行次数:10000+10000=20000
其余信息雷同。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询