Jmeter执行多机联合负载

embedded/2024/9/23 11:13:50/

1、注意事项,负载机必须要安装jre,控制机则必须安装jdk。要配置同网段ip,双向关闭防火墙。

每个负载机要平均承担线程数。

具体执行事项查看上面截图所示,控制机和负载机配置。

2、先给负载机设置ip地址,保持与控制机同一网段。并且关闭控制机与负载机的防火墙。

3、为负载机和控制机虚拟ip,我这边设置总并发量为两百,那么负载机和控制机就各设置一百个

        注意:"WLAN 控制机"  是为自己电脑的Internet链接名称,连接名是什么就写什么。

rem 控制机添加99个虚拟ip  从172.16.0.1到172.16.0.100
for /L %%i in (1,1,100) do netsh interface ip add address "WLAN 控制机" 172.16.0.%%i 255.255.0.0

在为电脑添加虚拟ip的同时也可以将ip快速添加到txt文件中,已备后续jmeter引用ip,写入代码如下

//将172.16.0.211 ip地址写入到ips.txt文件中,通过for循环将从1开始到100的ip地址写入到ips.txt文件中
echo 172.16.0.211>ips.txt
for /L %%i in (1,1,100) do echo 172.16.0.%%i>>ips.txt

当虚拟ip使用完成后需要快速删除时,可通过如下代码;注意删除的时候不要多删除了,不然会导致蓝屏 ,保险起见可以两边都剩余几个ip不删,通过手动删除。

rem 快速删除ip
for /L %%i in (1,1,100) do netsh interface ip delete address "WLAN 控制机" 172.16.0.%%i

引用参考:

4、以上是控制机的虚拟ip的生成以及虚拟ip调用txt文件生成还有快速删除虚拟ip的方式,负载机一样,如下是快速生成虚拟ip代码,以及快速将虚拟ip写入到txt文件中用于被jmeter调用

        注意:虚拟ip文件中最后面不要有空行,jmeter调用的参数文件最后不可以有空行。负载机和控制机引用的ip文件必须同名且存放路径保持一致,最后都放在/bin路径下(如果有其他的调用参数文件也一样,文件名和存放路径必须都一致)。

rem 负载机添加99个虚拟ip  从172.16.0.101到172.16.0.199
for /L %%i in (101,1,199) do netsh interface ip add address "WLAN 控制机" 172.16.0.%%i 255.255.0.0
//将172.16.0.212 ip地址写入到ips.txt文件中,通过for循环将从101开始到2199的ip地址写入到ips.txt文件中
echo 172.16.0.212>ips.txt
for /L %%i in (101,1,199) do echo 172.16.0.%%i>>ips.txt

5、至此就已经把控制机和负载机的虚拟ip和ip引用的txt文件就配置完成后了。接下来就修改参数文件位置以及修改脚本了,首先需要将脚本文件以及账号密码引用参数文件和虚拟ip地址引用参数文件都分别放在虚拟机和控制机中jemter中/bin路径下。Webtours文件夹是在bin路径下面新建的,用于存放脚本和参数文件。控制机和负载机要保持一致。

6、当把脚本和参数文件存放位置安排好后,需要修改jmeter脚本,引用ip地址和用户密码参数文件,通过CSV Data Set Config组件来引用参数文件。

        引用虚拟ipz参数文件,设置引用名称为cip

引用账号密码参数文件 

7、在测试计划中添加http请求默认值在高级tab页中的主机名进行引用虚拟ip:输入${cip}

 8、在登陆接口处引用用户名和密码参数 通过${yhm}和${mm}进行引用

9、当配置好代码后,需要搭建负载机环境,只需要安装jre即可。下载jre安装包后直接下一步按钮即可,不需要配置环境变量

10、将jmeter软件复制到负载机中,存放路径一定要与控制机保持一致。

保证负载机与控制机的这个路径都是一致的。引用参数文件也要是一致的。

11、接下来要在控制机中的jmeter设置运行远程负载机,在jmeter中找到jmeter.properties文件。搜索“remote_hosts”,输入负载机的“IP:1099”,重启jmeter生效,本机直接写ip或127均可,我这边写的是ip:1099

该文件在/bin目录下。修改该文件后,要重新打开jmeter

12、修改好jmeter.properties文件后。如果控制机也执行负载的话,则控制机和负载机都需要点击打开imeter-server.bat。如下图所示。

13、接下来再控制机中的jmeter中设置线程数,点击线程组,在线程树中设置100,参数文件的引用最好都使用相对路径  ./

14、配置好jmeter后,点击顶部的运行-远程启动,会显示负载机和控制机的ip,

如果只需要一个机器运行则选择其中一个点击即可,如果需要负载机和控制机都运行则需要点击远程全部启动按钮。

15、我这边是需要控制机和负载机都运行负载,因此点击远程全部启动,点击运行后可以看到之前步骤12中点击imeter-server.bat显示的窗口会显示Starting....,负载机和控制机都有显示Starting就代表都启动运行成功了。

16、负载运行结束后,负载机和控制机中的imeter-server.bat的窗口都会显示Finished.....

17、至此 jmeter的多机联合负载就已经配置完成了,如果需要添加资源监控以及其他监控可以在监控器中添加需要的组件。注意,组件的添加以及保存的路径也要一致。


http://www.ppmy.cn/embedded/103265.html

相关文章

maya python调试(pycharm)

maya里面调试代码一直用的print。遇到复杂点的类就感觉有点束手束脚的,因此整理了一下maya调试的一些方法 1.万能的pdb调试 pdb 有2种用法 1.非侵入式方法 (不用额外修改源代码,在命令行下直接运行就能调试) 常规用法&#xf…

自动化任务工具 | zTasker v1.97.1 绿色版

在自动化任务管理领域,一款名为zTasker的软件以其卓越的性能和易用性脱颖而出。今天,电脑天空将为大家详细介绍这款软件的亮点和使用场景。 功能特点 1. 轻量级设计,快速启动 zTasker以其小巧的体积和快速的启动速度,为用户提供…

QT: 为什么不把 showEvent 这一类事件设计成信号?

在 Qt 框架中,showEvent 和其他事件处理函数(如 keyPressEvent, mousePressEvent 等)并不是被设计成信号(signal)的原因,主要涉及到它们的设计初衷和用途的不同。下面是一些解释为什么它们不是信号的原因&a…

IPv4和IPv6的区别是什么?什么是局域网和广域网,公网IP和私有IP?

文章目录 1.基本网络2.局域网3.广域网4.IPv4与NAT5.公网IP和私有IP6.IPv6 1.基本网络 我们都知道计算机的数据都是存在各自硬盘中的,与其他计算机之间没有人任务关系. 假设计算机A需要给计算机B发送数据,可以选择使用U盘这类移动存储数据来拷贝数据来实现数据交互,但是这样一…

python批量生成sql用于创建500个用户

创建500个用户,分别为jmeter001-jmeter500,密码都是123,手动添加不现实,用客户端复制粘贴表数据也要添加很久,因此想批量生成500条插入的sql,如下: start_num 1 end_num 500 insert_sql &quo…

JAVA_12

JAVA_12 JAVA容器HashMap1.HashMap2.数据结构中由数组和链表来实现对数据的存储,他们各有特点。3.equals和hashcode通常需要一起重写!4.手写HashMap5.手写MyHashMap JAVA容器HashMap 1.HashMap 底层实现采用了哈希表,这是一种非常重要的数据结构。 对于…

Vue3其他Api

1.shallowRef与shallowReactive <template><div class"app"><h2>求和为:{{ sum }}</h2><h2>名字为:{{ person.name }}</h2><h2>年龄为:{{ person.age }}</h2><button click"sum 1">sum1</butto…

Redis最佳实践

1.键值设计 1.1 优雅的key设计 遵循基本格式&#xff1a;【业务名称】:【数据名】:【id】长度不超过44字节&#xff08;Redis版本4.0以后&#xff09;不包含特殊符号 例如&#xff1a;注册业务&#xff0c;保存用户信息的key设计&#xff1a;register:user:12345 为什么使用…