目录
需要条件:
- 本地master和服务器slave(执行机,以下都以执行机称呼)都需要安装Jmeter
- 本地和执行机安装的Jmeter必须版本一致
- 本地和执行机安装的JAVA版本尽量一致
- 本地和执行机安装Jmeter后 都需要配置环境变量
- 系统防火墙已关闭或者开启指定端口
- jmeter在远程通信的时候是随机选择一个网卡的ip。所以最好只启用本地和执行机的一个网卡
- 依赖文件 比如csv数据文件 需要先手动传到服务器上 并配置好文件路径
- 必须在同一网段内(同一局域网内)
配置:
文件 修改项
slave(执行机)
jmeter-server(.bat)# -Djava.rmi.server.hostname=局域网ip
jmeter.properties# server.rmi.ssl.disable=true
jmeter.properties# remote_host=局域网ip(非127.0.0.1)
jmeter.properties# sever_port=1099 # jmeter侦听器端口
jmeter.properties# server.rmi.port=1099 # rmi端口
jmeter.properties# server.rmi.localport = 50000 # 答复客户端(控制机)请求的端口
controller(控制机)
jmeter.properties# server.rmi.ssl.disable=true # 禁用ssl功能,不然会报错
jmeter.properties# remote_hosts=127.0.0.1,ip1:1099,ip2:1099 (多个slave机器的同局域网ip+port;端口可以指定,要和slave上的server_port对应)
jmeter.properties# client.rmi.localport=60000 (会自动启用port+1,port+2端口,进行结果回传等)
client.rmi.localport 端口配置后,会启用port+1,port+2端口。所以要确保这三个端口都是可用的
启动:
启动介绍:
- 无需将测试计划复制到每个执行机 - 本地客户端会将测试计划发送到所有执行机
- 所有的执行机都会指定同一份测试计划,总线程数=执行机数量*单个测试计划的线程数
- 为了避免本地客户段网络过载、内存过载等问题,还要酌情设置执行机的数量
启动步骤:
第一步:启动执行机(服务器) 上的Jmeter服务
unix: 运行JMETER_HOME/bin/jmeter-server
windows: 运行JMETER_HOME/bin/jmeter-server.bat
第二步:启动本地服务
telnet [执行机ip] [port] # 查看执行机是否启动成功,本地是否能够连接执行机指定端口
- 方式一(1):本地命令行启动:jmeter -n -t script.jmx -R host1,host2,host3,127.0.0.1 # 指定ip进行测试
- 方式一(2):本地命令行启动:jmeter -n -t scripts.jmx -r -l 结果记录文件.jtl -j 日志文件.log -e -o 报告保存目录 # 根据配置文件内的执行机ip运行
参数:-X 在测试结束后退出远程服务器
- 方式二:GUI客户端启动:运行 > 远程启动 > 指定服务器ip
结果回传:
测试执行结束后 结果会回传到本地 结果树或者聚合报告内即可查看
问题:
执行机已经启动测试脚本,但是一直卡滞没有继续下一个流程
执行机日志里显示如下:
ERROR o.a.j.s.RemoteListenerWrapper: testStarted(host) on 82.156.236.107:1099
java.rmi.ConnectException: Connection refused to host: 172.23.16.1; nested exception is:
java.net.ConnectException: Connection timed out
说是链接ip被拒绝
答案:本地机器有多个网卡,需要把其他网卡禁用。也有可能是控制机和执行机不在一个局域网内