Jmeter分布式

Jmeter分布式的原理

a、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。
b、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。
c、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。
1、压力机跟客户端Jmeter版本最好一致
2、修改服务端端口方法:Jmeter/bin下面的 jmeter.properties文件
vi jmeter.properties

首先修改#server_port=1099,改为自己所想改的值,如果不生效,则将下面的值也改成相同值
#server.rmi.port=1234

 

3、启动服务端:./jmeter-server
Jmeter执行分布式过程中,启动Jmeter-server出现:An error occurred: Cannot start. besttest is a loopback address.

方法1:启动方式改成:./jmeter-server -Djava.rmi.server.hostname=192.168.0.106(hostname指定为当前linux的地址
或者改成后台运行:nohup ./jmeter-server -Djava.rmi.server.hostname=192.168.0.106 &
方法2:修改jmeter-server文件
如下图位置,去掉注释,然后将hostname指向的ip改成本地IP

如下正常启动的显示为:

4、服务端压力机启动成功之后,然后再控制端Client端,修改配置文件jmeter.properties
进入到/\apache-jmeter-3.3\bin编辑jmeter.properties

192.168.0.106;1099为压力机IP跟端口。多台压力机的话,则用”,“拼接
如:192.168.0.106;1099,192.168.0.107;1099
5、配置文件修改好之后,重新打开Jmeter
6、启动运行方式为:

如果包含参数化文件,则需要将参数化文件放到linux下$JMETER_HOME/bin目录下
然后脚本中CSV Data Set Config配置,Filename直接输入文件名称,不指定位置
注:Jmeter3.3不支持路径写/,不过也可以定义变量,在变量里写路径。
如下

 

 

如果参数化文件名写绝对路径的话,就去指定的文件找了。
只写文件名的话,jmeter就是从bin下去拿那个文件

多台压力机的话,则每台压力机都需要上传

说明:
1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
  2、参数文件:如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。
  3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。

posted @ 2018-03-22 20:58  Brunce  Views(492)  Comments(0)    收藏  举报