千家信息网

jmeter分布式测试

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误
千家信息网最后更新 2026年10月31日jmeter分布式测试


作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。


不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可。


1、在所有期望运行JMeter作为负载产生器的机器上安装JMeter,并确定其中一台机器作为控制器,其他的机器作为代理。下面示例中我们以windows服务器为控制器,另两台linux服务器作为代理。


然后运行所有代理机器上的JMeter-server.bat文件(linux服务器上运行Jmeter-server)


假定我们使用两台机器172.16.129.155和172.16.129.43作为代理。




2、在作为Controller控制的windows机器上的操作:


在Controller控制机器的JMeter安装目录下找到 bin 目录,找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;



在打开的文件中查找"remote_hosts="这个字符串,找到这样一行"remote_hosts=127.0.0.1"。其中的 127.0.0.1 表示运行JMeter代理的机器,把它修改为我们需要用到的slave代理机器的ip地址加默认端口号1099:这里需要修改为

remote_hosts=172.16.129.155:1099,172.16.129.43:1099(两台代理服务器之间用,隔开)


再把下面几项去掉前面的注释(#):


server_port=1099


client.rmi.localport=0


server.rmi.port=1234


server.rmi.localport=1099


然后保存文件。



在Controller控制机器的JMeter安装目录下找到 bin 目录,再找到 jmeter.bat 这个文件,使用记事本等其他文字编辑工具打开它;


新增set rmi_host=-Djava.rmi.server.hostname=本机ip(控制器ip)

修改

Set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%



然后保存。



3、在作为代理服务器linux服务器上的操作:


修改bin目录下的jmeter-server文件,


去掉#

RMI_HOST_DEF=-Djava.rmi.server.hostname=172.16.129.155

(避免了虚拟机中出现的两个ip的情况)


PS:

代理服务器中的hostname和/etc/hosts里面ip地址对应的hostname要一致


然后保存。



对要进行分布式测试代理机器上需要添加jmeter环境变量:


命令 vim /etc/profile

insert

在文档最后,添加:

export PATH="/jmeter/apache-jmeter-2.12/bin:$PATH"

esc : w q

保存,退出,然后运行:

#source /etc/profile

不报错则成功。


运行env命令查看全部环境变量,看jmeter环境是否安装成功。(或者输入jmeter -v命令)


(windows上相当于添加用户变量JMETER_HOME=d:\jmeter,系统变量中的path中添加d:\jmeter\bin。)


在bin目录下输入命令

chmod 777 jmeter-server

chmod 777 jmeter

防止权限禁止denied


4、确定代理服务器都可以ping到所需要测试的接口的机器,然后启用所有代理服务器上的jmeter-server


如图为成功启动代理服务器上的jmeter-server。


启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。


控制器上的jmeter会收到指示


代理机上开始测试和完成测试的指示


5、注意结果

JMeter远程启动测试中出现结果的响应数据为空,原因是:

分布式测试中,通过远程启动代理服务器,注重的而是高并发,默认查看结果树中的响应数据为空,只有错误信息会被报回。


代理 机器 服务器 服务 控制 运行 测试 文件 目录 控制器 变量 命令 用户 成功 地址 环境 分布式 两个 内存 工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技创新与互联网经济 互联网金融 金融科技 互联网未来科技 融势互联网科技 深圳艾佳互联网科技 互联网科技博客 互联网科技公司做什么 互联网科技股午盘股票涨跌 海南购全球互联网科技 安控科技rtu产品工业互联网 互联网科技与管理 黑科技闪耀互联网之光 互联网5g黑科技有哪些 互联网媒体平台算高科技产业 烟台灵鸽互联网科技有限公司 无锡工业互联网科技有限公司 互联网第三次科技革命特征 领航科技大厦互联网公司 科技互联网专业务虚会材料 银川新华互联网科技学校招聘 互联网最新的科技 天扬科技互联网广告 中国科技互联网公司收入 金融科技与互联网金融相同和不同 全球顶尖互联网科技公司 互联网科技与管理 荆州市昕露互联网络科技有限公司 互联网科技人工智能实验室 乌鲁木齐新华智原互联网科技学校 互联网科技接地气
0