【JMeter】分布式笔记

本文详细介绍了如何进行JMeter的分布式测试,包括分布式概述、方案描述、配置流程和命令行运行步骤。重点讨论了在Linux环境下启动jmeter-server服务时的问题及解决方案,强调了控制机与执行机的配置要求,提供了具体的命令行参数使用说明。
摘要由CSDN通过智能技术生成

一、分布式概述

基本描述:当我们的用户数比较大,超出一台机器承受的范围内,这时候需要找几个帮手,一起去分担
这个用户数(负载)
简述:使用多台机器分担负载量

二、方案描述

在这里插入图片描述
控制机(调度机):主导作用:分发脚本,收集汇总测试结果----一般不让控制机分担负载
windows电脑
执行机(代理机):主要就是执行场景
最好选择 linux

三、配置流程

第一步 :准备机器:一台windows控制机,一台linux执行机(练习:虚拟机搭建centos)
第二步、保证控制机与执行机网络是通(同一个网段-局域网)
① 控制机与执行机之间相互能够 ping 通;
② Window 关闭公网防火墙即可,Linux 防火墙关闭

CentOS关闭防火墙命令
# systemctl stop firewalld.service             # #停止firewall
# systemctl disable firewalld.service        # #禁止firewall开机启动

CentOS 查询防火墙状态
CentOS查询防火墙状态
第三步、jmeter要复制到执行机里—(执行机与控制机的jmeter(版本与设置)要一样(jdk一样))
第四步、打开执行机的jmeter文件夹jmeter.properties

#Remote Hosts - comma delimited
remote_hosts=192.168.81.129:1099 #虚拟机自己(执行机)的ip地址
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true #关闭ssl校验

第五步:运行执行机里的一个 jmeter-server,

① chmod -R 777 jmeter-server  //修改 jmeter-server 权限
② chmod -R 777 apache-jmeter5.x.x   //修改chmod -R 777 apache-jmeter5.x.x 权限
③ ./jmeter-server  //运行jmeter-server

在这里插入图片描述
这里有一个问题需要注意

【问题描述】

JMeter分布式测试时,以Linux系统作为被测服务器,在其中启动 jmeter-server 服务时出现异常,系统提示如下:

[root@localhost bin]# ./jmeter-server
Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.
An error occurred: Cannot start. localhost.localdomain is a loopback address.

【解决方案】

指定远程服务器(代理服务器)主机的IP地址(rmi.server.hostname)
如:远程服务器的主机 192.168.81.129
方式一:通过终端命令指定来启动

./jmeter-server -Djava.rmi.server.hostname=192.168.81.129

方式二:编辑jmeter-server文件,设置固定的代理服务器主机IP
打开Linux中的jmeter-server:

sudo vi ./jmeter-server

编辑jmeter-server,取消RMI_HOST_DEF的注释项,固定设置当前Linux主机查询到的IP:
在这里插入图片描述
直接以命令 jmeter-server 或 ./jmeter-server 启动即可。

第六步:设置控制机:
① 打开控制机的jmeter文件夹jmeter.properties

# Remote Hosts - comma delimited
remote_hosts=192.168.81.129:1099 #执行机---的ip地址和端口号--多台机器用 ,分
割
如果控制机参与分布式:请加上控制机自己的ip,控制机不参与不需要添加
# Set this if you don't want to use SSL for RMI
server.rmi.ssl.disable=true #关闭ssl校验

第七步:脚本—一定要脚本本身没有问题
第八步:验证效果:
① 执行机不需要脚本
② 分布式-执行机返回的响应里面,如果请求成功,响应的body—空的

四、命令行运行

1、Jmeter 参数

-n : 非GUI 模式执行JMeter
-t : 执行测试文件所在的位置及文件名
-r : 远程将所有agent启动用在分布式测试场景下,不是分布式测试只是单点就不需要-r
-l : 指定生成测试结果的保存文件, jtl 文件格式
-e : 测试结束后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须不存在 ,否则执行会失败,对应上面的命令就是resultReport文件夹必须不存在否则报错

2、常用命令语句

jmeter 【-n】 【-t】 +文件名.jmx+文件路径 【-l】 文件路径+文件名.jtl

PS1:此命令需要在\apache-jmeter-x.x.x\bin下执行
PS2:文件名需要加上后缀
① 执行机:Linux 上

./jmeter-server

② 控制机运行:

jmeter -n -t g:/test.jmx -R 192.168.81.129:1099 -l g:/aa.log -j g:/bb.jtl -e -o g:/cc

在这里插入图片描述

jmeter -n -t xx.jmx -R xxx.xxx.xxx.xxx:5174,xxx.xxx.xxx.xxx:5172 -l xxx.jtl -j xxx.log
-R:表示选择执行=远程启动
-r: 表示启动所有执行机=远程全部启动
jmeter -n -t g:/test.jmx -r -l g:/aa.log -j g:/bb.jtl -e -o g:/cc

在这里插入图片描述

3、命令行模式运行注意事项

  1. 脚本文件jmx放在一个windows 控制机的目录下
  2. 配置JMeter 的环境变量,在cmd中输入Jmeter 启动其 UI 模式;
  3. 涉及的参数化文件要在每一台执行机里(建议在Jmeter的bin目录下);
  4. 修改jmx文件的参数化路径(使用相对路径 ./文件名。后缀名)
  5. 跑命令模式前先在GUI模式下调通;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值