JMeter分布式性能测试

雪域幽狐 2019-10-10 16:28 阅读:7349


一、前言
    在系统上线前,需要对系统进行性能测试。JMeter是一个常用的工具,由于单机的限制,可能负载达不到期望,这个时候就需要使用多台机器同时运行,以产生更大的负载。

二、JMeter分布式环境介绍

该图来自JMeter官网http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html
如上图所示,有一台Master(控制机),有若干台Slave(负载机),Slave向测试对象发送请求,Master进行数据汇总。
注意事项:
Master和Slave需要在一个子网中。
Master和Slave使用的JDK、JMeter版本需要一致。
Master建议有GUI,可采用windows;Slave可用Linux。下文以Master搭建在windows上,Slave搭建在Linux上进行介绍。

三、JMeter分布式搭建
3.1 Linux部署JMeter(Slave)
(1)安装JDK,设置JAVA_HOME环境变量
(2)下载JMeter,http://jmeter.apache.org/download_jmeter.cgi
(3)解压后,对jmeter/bin/jmeter、jmeter/bin/jmeter-server设置可执行权限
(4)修改SSL设置
jmeter.properties里
server.rmi.ssl.disable=true,并去掉行首的注释符。否则报以下错误,或者自行生成密钥对,需要每个Jmeter都放一份。
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
        java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
An error occurred: Listen failed on port: 0; nested exception is:
        java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
(5)根据情况修改端口,jmeter.properties server_port=1099
(6)运行 ./jmeter-server,出现如下表示成功
Created remote object: UnicastServerRef2

3.2 windows部署JMeter(Master)
(1)安装JDK,设置JAVA_HOME环境变量
(2)下载JMeter,http://jmeter.apache.org/download_jmeter.cgi
(3)修改Slave IP
jmeter.properties里
remote_hosts=172.16.0.4,172.16.0.5
多个Slave用英文,分割
(4)修改SSL设置
jmeter.properties里
server.rmi.ssl.disable=true,并去掉行首的注释符
(5)运行bin/jemeter.bat,在界面上,菜单run->Remote Start->Slave IP可单独启动一个Slave,或者Remote Start All,同时调用所有Slave。正常调用后,即可在聚合报告看到相关内容。


常见问题:
1、Master调用Slave特别慢,Master接收不到报告。
Master会启动端口(如5165X)来进行接收Slave消息,如果Slave不能访问这个端口,会异常。需要放开防火墙。
2、性能上不去,Slave报java.rmi.ConnectException: Connection refused to host ,同时Master的CPU居高不下
加大Master的CPU。

0条评论

登陆后可评论