然后在本地的控制机中进行打开为一个jmeter.properties的文件,在文件内容中,在remote-hosts中进行添加一个远程负载机的ip地址,端口默认是1099
设置完成之后就需要重新启动jmeter即可。
进行运行远程负载机,点击jmeter中的菜单运行。
d出了一个下来菜单中,进行选择为"远程启动"。
就会d出了一个远程负载机的ip的地址,进行点击即可。
这样的话就可以收集到远程负载机运行结果内容。
最近在给产品线做基于dubbo协议的java服务测试,我本机没有配置dubbo服务容器,先让同事提供测试类,我再对测试类工程导入jmeter的jar包,封装成jmeter可执行的jar包。基于本次性能测试的要求,要把脚本放在linux下部署好了 dubbo服务的机器上测试,多次尝试后选择了用jmeter远程分布式调用的方式。jmeter远程分布式调用,可以使用本机做控制端,其他已经搭建好dubbo协议的电脑或者linux服务器做测试服务端
配置要求是两台windows机(ip:134.33.***.170:1888,134.22.***.20:1899)和linux服务器(ip:130.17.***.129:2099)都使用相同版本的jmeter,本次测试使用的是apache-jmeter-3.1
首先配置window控制端修改jmeter.properties,在remote_hosts=添加远程服务端地址和端口
其次配置windows服务端 修改jmeter.properties,取消server_port=1899和server.rmi.localport=1899前面的注释,设置远程端口为1899,默认为1099,建议修改一个其他数值。
启动jmeter_server会显示一个
这里的ip地址就是和控制端配置的remote_hosts一致。
报错问题记录:
1、配置完成后测试提示connnection refused 原因是:服务端的防火墙为关闭,禁止访问,关闭防火墙就可以ping通
2、可以访问后再测试提示:
原因就是如果服务端的jmeter.properties中的server_port和server.rmi.localport端口未指定,打开jmeter_server后端口是变化的无法捕捉。
接下来配置linux服务器的jmeter.properties的server_port=2099和server.rmi.localport=2099。在/apache-jmeter-3.1/bin下执行./jmeter_server提示endpoint为127.0.0.1:2099,控制端调用的时候提示
查找原因如下:服务器配置了双网卡,内外网的隔离,jmeter在启动时会优先找内网地址,不识别配置的服务器地址,修改方法如下:修改/ossapp/apache-jmeter-3.1/bin下的jmeter_server文件修改RMI_HOST_DEF=-Djava.rmi.server.hostname=130.17.**8.129保存。在windows控制端重新测试,完美执行,监控linux下日志
JMeter 是一个100%的纯 JAVA 应用,对机器 CPU 和内存的消耗比较大,在用 JMeter 做并发测试、负载测试、压力测试等时,模拟的用户数以千计,使用单台机器模拟所有用户会有些力不从心,甚至会引起JAVA内存溢出。
这时,我们可以使用 JMeter 的 分布式负载(也叫联机负载) 功能,通过单个 JMeter 控制机(Controller) 控制多个远程的 JMeter 负载机(Agent) ,使它们同步对服务器进行性能测试。
首先来看一下控制机和负载机的作用:
控制机(Controller):存放 JMeter 脚本的机器,负责在开始运行前把脚本发送到各个负载机,在运行后回收和统计各个负载机的运行结果。
负载机(Agent):被控制用来运行脚本的机器,负责产生负载。
了解了控制机和负载机的作用后,接下来学习如何配置负载机。
在控制机 JMeter bin目录下的 jmeter.properties 配置文件中找到 remote_hosts=......,设置远程负载机的 IP 和端口(默认1099,如要修改该端口需要在负载机配置文件中修改 server_port=xxx)。多个负载机之间用逗号隔开,如192.168.1.30:1099,192.168.1.44:1099。 修改配置文件后切记重启 JMeter,否则修改的配置不生效。
重启 JMeter 后,在选择菜单运行(run) 的远程启动(remote start) 中启动负载机,可以逐个负载机运行,也可以全部一起运行。
启动后,控制机会自动把测试的脚本发送到各个负载机上,每个负载机接收到的脚本都是一样的。每个负载机的虚拟用户数等于控制机中配置的线程数N,所以服务器最终承受的用户数是:负载机数量 X 线程数N。
控制机如果无法连接负载机,在这里补充几种常见的坑。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)