使用Jmeter在linux环境实现分布式负载
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,分布式意义:在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能一、Jme
千家信息网最后更新 2024年11月30日使用Jmeter在linux环境实现分布式负载
分布式意义:在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能
- 一、Jmeter分布式执行原理
- Jmeter分布式测试时,选择其中一台作为调度机(master/Controller),其它机器做为执行机(slave/Agent)
- 执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的
- 执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总
- 分布式测试原理:如下图
- 二、执行机(slave)配置
- slave机上需要安装Jmeter,使用rz命令上传jmeter压缩文件,然后解压
- 默认一般给的用户不是管理员,则修改用户环境变量即可:vi ~/.bashrc ,在文件末尾添加该行 export PATH=$PATH:/home/mdrsopen/apache-jmeter-4.0-performance/bin ,此路径为jmeter的的路径,修改完毕,输入:wq退出,执行 source ~/.bashrc
- 输入jmeter -v,出现下图证明配置成功
- 输入jmeter -v,出现下图证明配置成功
- 进入jmeter的bin目录,修改jmeter-server文件,指定主机ip
- 去掉RMI_HOST_DEF前面的#,末尾的XX改成当前主机ip
- 可以对负载机端口进行修改,默认为1099,也可以修改成自己需要的端口,修改完毕,输入:wq退出
- 输入./jmeter-server启动负载机,出现如下界面,证明启动成功
- 多台slave的话,重复1~5步骤就好
- 如果脚本中调用了参数文件,或者其它上传图片等,都需要将文件放到slave节点bin目录下,本次由于是用的相对路径格式为../data/id.xls,则只需要手动在bin目录的上一个层级创建一个data文件夹,然后把参数文件放到该文件下即可
- slave机上需要安装Jmeter,使用rz命令上传jmeter压缩文件,然后解压
- 三、调度机(master)配置
- 脚本:一个devops平台的查询接口
- 找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口(负载机端口有一台自定义为1234,有一台默认为1099):remote_hosts=10.16.69.174:1234,10.16.18.21:1099
- 多台slave之前用","隔开,我这配置了2台,可以看到标红的这个就是上面截图slave的IP和Port
- 打开Jmeter,选择运行,有启动、远程启动、远程全部启动三个选项:
启动:就是启动当前master(调度机),把调度机当负载机单独执行
远程启动:可以选择执行需要的负载机
远程全部启动:顾名思义,就是启动所有的负载机 - 选择远程启动-->10.16.18.21:1099
- master结果,这里我只启动了10.16.18.21:1099这一台slave,所以只有一个结果(线程数和循环次数都是1):
- slave控制台信息:
- 选择远程启动-->远程全部启动:
- master结果,全部启动,我配置了2台slave,所以有两次执行结果
- 四、调度机(master)使用命令执行分布式测试
- widows环境执行
- jmeter -n -t 监听设置.jmx -r -l log.jtl
- 参数说明 :
-n 告诉jmeter使用非GUI模式执行测试
-t 执行的测试脚本名
-r 远程执行 , 在Jmter.properties文件中指定的所有远程服务器
-l 结果文件,如果不写路径,则在执行目录生成
- linux环境命令相同
- widows环境执行
- 五、其它说明:
- 调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater。
- 每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题。
- 执行机(slave)设置的端口,首先要保证未被占用,可以使用该命令进行查询,netstat -anp|grep 端口 如果查询为空则可以进行配置,如下
- 查询有值,则代表该端口已经被占用,需要换一个端口
- 启动slave机器的server服务报如下错误,则要看apache-jmeter-4.0\bin下的jmeter.properties文件是否开启server.rmi.ssl.disable=true,报错如下
默认为
需要改成 - 启动master如果也报java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory),修改方法一致,需要查看jmeter.properties文件是否开启server.rmi.ssl.disable=true,报错如下
- master执行日志显示执行请求数量为0
查看jmeter-server.log日志,该日志路径在执行jmeter-serer命令启动slave节点的路径,如下图,启动路径在/apps下
由上图可知是由于CSV元件找不到相对路径导致执行报错,由于slave启动节点路径在/apps,所以需要把data参数文件放置在/apps上的一个层级,可以直接在jmeter/bin目录下启动slave节点,这样相对参数文件就在bin目录一个层级,具体见(二、执行机(slave)配置介绍)
如果文章对你有帮助,可以在右下角点击关注功能,欢迎转发、拍砖,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制,微信公众号与本平台文章同步,方便大家查阅
QQ技术交流群:加群请输入验证信息51CTO
微信二维码关注公众号:
关注之后,回复资源下载,即可获取本人共享的各种资源下载地址
文件
路径
测试
配置
端口
目录
分布式
命令
结果
调度机
调度
参数
脚本
输入
选择
信息
文章
机器
节点
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑞玛服务器卡价格
计算机不创建密码网络安全吗
用友输出帐套备份数据库异常
网络安全突发事件应急处置流程
在哪购买软件开发书籍
数据库重命名表名sql
互联网科技资产负债表
杭州摩云物联网络技术
2008服务器iis配置
数据库表高效设计书籍
华为云服务器不支持怎么弄
查看数据库连接数
ftp服务器管理工具软件
专用通信网络安全
上海成浪体育网络技术有限公司
qt5数据库
新游网络安全科技馆
数据库系统模型与语言
央视新华互联网科技有限公司
常用的计算机辅助软件开发工具
北航网络安全学院密码学
禾田雨橡互联网科技有限公司
网络安全教育书画
软件开发合同简易版1页
网络安全教育的手抄报可打印
亿赛通数据库安全吗
三级数据库的题型
大数据库生意前景
上海好的软件开发售后保障
360安全检测服务器