jmeter脚本开发:分布式(六)
1|0一. 为什么要用分布式(集群)?
1. jmeter做性能创建线程数,是需要消耗本地机器服务器资源的
2. 本机机器不可能无限制创建线程数
3. 利用别人的机器,创建线程数
2|0二. 分布式(集群)原理
3|0三. 分布式前提条件
1. 主机和助攻机器jmeter要一致
jmeter版本要一致
jdk主版本要一致
jmeter脚本中csv文件要一致(特别注意csv路径)
jmeter的插件要一致
2. 同一局域网,防火墙可以开放端口
保证一致性方法:直接压缩本地jmeter包
4|0四. 助攻机配置
1. 本地的jmeter打包发送到助攻机器,助攻击器可以是windows(推荐),也可以是linux
2. 打开助攻机上的jmeter.properties,修改server_port为自定义的端口号,这里使用6798
3. 修改server.rmi.port为6798(和server_port相同)
4. 去掉SSL认证,将ssl.disable改为true
5. 修改完启动jemter server,启动服务命令
1 | jmeter-server.bat -Djava.rmi.server.hostname=助攻机的ip |
6. 检查防火墙,关闭防火墙
5|0五. 主机配置
1. 打开jmeter.properties,修改remote_hosts为 助攻机ip:端口号,刚刚我们配置的是192.168.0.102:6798,多个助攻机之间用,分隔
2. 去掉认证:修改ssl.disable为true
3. 确认模式:去掉mode=Standard之前的#号
4. 重启jmeter
检查主机和助攻机网络:telnet ip 端口
5. 可以看到远程助攻机ip
其实这里的助攻机1099可以不用改,碰到的问题:
1. 启动助攻机服务时提示:
1 | Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002 |
网上搜了一下,解决方法,修改完注册表记得要重启
1). win+R代开regedit;
2). 找到HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft;
3). 右键JavaSoft,单击右键,更改权限为完全控制便可以;
2. 远程启动助攻机时提示:
Connection refused to host: 192.168.0.103; nested exception is: java.net.Con...
网上说有可能是网段不通,但我的主机和助攻机是可以ping通的,最后观察了一下,还是防火墙关闭不彻底,我只修改了域配置文件下面的防火墙状态,还要修改专用配置文件和公用配置文件下面的防火墙状态
当你看到这样时,说明才真正关闭成功了
6|0六. 利用助攻机测试
如何查看远程助攻机已经启动了呢
1. 看助攻机服务日志,有starting字段说明已经远程启动成功了
2. 看主机日志
7|0七. 注意
主机发送指令给助攻机
1. 修改主机的线程数(场景设计),直接就修改了助攻机执行情况
2. 总线程数 = 运行的助攻机数量 * 主机场景中的线程数
8|0八. jmeter无图形界面模式(non-GUI)
jmeter -n -t 脚本.jmx -l report jtl
参数 | 说明 |
-n | non-gui-mode无图形界面模式 |
-t | testplan将执行的测试计划 |
-l | 输出结果报告路径文件名(.jtl\.csv) |
-g | 输出报告文件(.csv) |
-o | 输出html报告(后跟空文件夹) |
-e | 生成测试报告 |
-r\-R | 分布式指定机器ip分压运行(jmeter -n -t 脚本.jmx -r -l report.jtl) |
-j | 指定执行日志路径 |
-H | 指定代理服务器域名或ip |
-P | 指定代理服务器端口 |
9|0九. jmeter无图形界面模式(non-GUI)实操
进入jmeter的bin目录下
jmeter -n -t .\script\场景设计讲解.jmx -l report.jtl 执行脚本输出
jmeter -n -t .\script\场景设计讲解.jmx -r -l report.jtl 启动所有远程服务器执行
结果转为html报告:jmeter -g report.jtl -o dictreport 把结果转为html文件到dictreport文件夹
一步输出html报告:jmeter -n -t .\script\场景设计讲解.jmx -l report.jtl -e -o dictreport
注意:dictreport 文件夹必须为空,否则会报错
jmeter.properities里的output_format是csv
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/11729992.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?