jmeter分布式实践(踩坑)过程

1、确定控制机和执行机
此次控制机位于同网段的Windows服务器下,代称为控制机A
执行机有3台,位于同网段的linux服务器,分别为执行机B、执行机C、执行机D
1.1 控制机和执行机的jdk、jmeter版本保持一致
1.2 如果有调用到文件,文件的路径需要保持一致
备注:执行机上无需存放压测脚本,控制机在执行过程中会复制脚本到执行机上

2、修改控制机和执行机的配置
2.1 修改控制机的配置
修改控制机的jmeter.properties文件,remote_hosts=控制机Aip:端口号,执行机Bip:端口号,执行机Cip:端口号,执行机Dip:端口号
修改server_port=端口号
备注:以上端口号为jmeter使用的端口号,控制机和执行机的端口号需要保持一致。
在这里插入图片描述
2.2 修改执行机的配置
修改执行机的jmeter.properties文件:remote_host=执行机本机ip:端口;server_port=端口号;server.rmi.ssl.disable=true。
修改jmeter-server文件:RMI_HOST_DEF=-Djava.rmi.server.hostname=本机ip

${DIRNAME}/jmeter R M I H O S T D E F − D s e r v e r p o r t = {RMI_HOST_DEF} -Dserver_port= RMIHOSTDEFDserverport={SERVER_PORT:-1098} -s -j jmeter-server.log “$@”
在这里插入图片描述
3、linux启动jmeter服务
3.1 先检查服务是否启动:ps -ef|grep jmeter。如果能看到本机ip和压测端口相关的jmeter信息出现则启动成功
3.2 进入jmeter/bin目录下启动服务:nohup ./jmeter-server -Dserver_port=端口号 -Djava.rmi.server.hostname=执行机ip &
3.3 执行后再检查服务是否启动成功
在这里插入图片描述
4、调试脚本
为了能更清楚的知道压测接口的性能情况,将脚本划分成3个线程组,分别为:
4.1 “获取身份认证信息”线程组:执行一次,获取token和cookie并保存到指定文件下(使用相对路径)
由于cookie是通过cookie管理器直接使用,一般情况下是无法直接获取的。因此若是想要将cookie管理器中的cookie提取并保存,需要先修改jmeter.properties中的CookieManager.save.cookies(大约在1106行),将CookieManager.save.cookies=false修改为CookieManager.save.cookies=true,并删除前面的“#”。
在这里插入图片描述在这里插入图片描述

4.2 “目标接口参数”线程组:通过不同系统的查询接口获取压测接口的参数,执行一次,并保存到指定文件下(使用相对路径)。
在这里插入图片描述
4.3 压测接口线程组:根据需要设置线程数及压测时间,身份信息和参数可从指定文件获取(使用相对路径)。可通过jmeter提供的函数获取:KaTeX parse error: Expected group after '_' at position 2: {_̲_P(user.dir,)}{__P(file.separator,)}xmfwzx${__P(file.separator,)}token.txt
在这里插入图片描述
在这里插入图片描述
5.实践过程踩到的坑
5.1 现象:脚本在Windows下能执行成功但是在linux下执行不成功。
原因:执行机服务器上有2个jmeter,且权限不一致,其中一个的权限是root权限,导致脚本中读写的程序无法成功。
解决方法:升级权限。或者更换到有权限的路径去操作。
在这里插入图片描述
5.2 脚本中引用的jar包没有引用成功
原因:由于服务器上有2个jmeter,jar包的存放位置与实际使用的jmeter不一致,所以需要明确jar包的引用位置
解决方法:在测试计划中添加jar包的引用路径
在这里插入图片描述

6.过程中使用到的命令
6.1 移动xmfwzx文件夹到 jmeter/bin/:
普通用户: mv /home/glodon/apache-jmeter-5.4.2/bin/xmfwzx /data/jmeter543/bin/xmfwzx/
root用户: sudo mv /home/glodon/apache-jmeter-5.4.2/bin/xmfwzx /data/jmeter543/bin/xmfwzx/
6.2 删除文件:
删除单个文件:rm -f
6.3 杀死进程:
杀死pid为22530的进程:kill -9 22530
6.4 查看端口占用情况
lsof -i:端口号
6.5 在linux上执行jmeter脚本,此为进入jmeter目录下执行脚本
./bin/jmeter -n -t /home/glodon/apache-jmeter-5.4.2/bin/xmfwzx/企业报名.jmx -l /home/glodon/apache-jmeter-5.4.2/bin/xmfwzx/test1.jtl
执行参数:
-n 命令行模式, 在非 GUI 模式下运行 JMeter
-t 测试文件 , 要运行的 JMeter 测试脚本文件
-l jmeter日志文件, 记录结果的文件
6.6 查看*
ps -ef|grep jmeter
6.7 搜索
grep 关键 字 文件
6.8 Vim编辑器显示行数
shift+:set number

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值