[转帖]jmeter实现分布式压测

jmeter,实现,分布式 · 浏览次数 : 0

小编点评

**分布式 JMeter 前提条件:** 1. **jmeter 版本一致:** jmeter 版本要相同。 2. **jdk 主要版本一致:** 确保所有奴隶机运行相同的 Java 版本。 3. **csv 文件路径一致:** 确保所有脚本运行在相同的目录中,并使用相对路径指定 CSV 文件路径。 4. **插件一致:** 所有使用相同插件的奴隶机运行相同的版本。 5. **同一局域网,防火墙开放端口:** 确保所有奴隶机都在同一条局域网上,并且防火墙允许端口 6789。 **解压 JMeter 包:** 1. 将本地 jmeter 包压缩成 .zip 或 .tar 文件。 2. 上传压缩文件到各个奴隶机。 3. 修改 `jmeter.properites` 文件,根据需要设置端口、SSL 是否禁用等参数。 4. 启动服务命令: - Linux: `./jmeter-server -Djava.rmi.server.hostname=192.168.114.128` - Windows: `./jmeter.bat -Djava.rmi.server.hostname=192.168.114.128` **配置 jmeter.properites:** 1. 设置 `server_port` 端口。 2. 设置 `server.rmi.port` 端口保持与 `server_port` 相同。 3. 设置 `server.rmi.ssl.disable` 设置 SSL 是否禁用。 **启动服务:** 1. 在主服务器上运行 `./jmeter-server` 命令。 2. 在奴隶机上运行 `./jmeter-server -Djava.rmi.server.hostname=192.168.114.128` 命令。 **可能遇到的问题:** 1. 连接奴隶机被拒绝:检查防火墙是否开放端口 6789。 2. 报证书错误:在奴隶机执行证书验证命令时,请确保证书已正确安装。

正文

分布式实现的前提条件:

1.master机器和奴隶机的jmeter要一致

    a. jmeter版本要一致

    b.jdk主要版本要一致,比如都是jdk1.8,后面的小版本不一样不影响

    c.jmeter脚本中csv文件要一致(特别注意csv路径,建议csv路径使用相对路径,放在脚本的同级目录)

    d.jmeter插件要一致

2.同一局域网,防火墙要开放端口,不然访问会被拒绝

保持一致性的方法:直接压缩本地jmeter包,然后上传到各个奴隶机进行解压

 

奴隶机配置

1.本地打包的jmeter发送到奴隶机,然后解压。奴隶机可以是windows、mac或linux,这个没有特殊要求

2.修改配置文件 jmeter.properites 主要修改以下几个配置

    a. 修改server_port 端口,我设置的是6789,你也可以设置别的值,但是主要要符合规则,且端口没有被占用

    b. 修改server.rmi.port 端口,跟a步骤设置的端口保持一致

    c. 设置server.rmi.ssl.disable=true,要去掉注释

3. 启动服务

     ./jmeter-server -Djava.rmi.server.hostname=192.168.114.128   hostname助攻机器的ip,要填写你的奴隶机ip,我这个命令是在linux下启动的,windows中把./jmeter 换成 ./jmeter.bat 就可以了,linux下如果发现无法执行,要修改权限赋予可执行权限,出现下面的输出就算启动成功了

 

master机器配置

1.修改jmeter.properites配置,主要是以下几点

   a.remote_hosts 配置为奴隶机的ip加端口,如果你有多个奴隶机就用逗隔开,例如localhost:1099,localhost:2010

   b.server.rmi.ssl.disable=true

 

  c.设置mode=Standard

配置已经完成!!!配置完成记得重启jmeter

配置完成后如果脚本设置了30个线程,有3台奴隶机,那么对于被压服务器就会有30*3个并发用户

主控机器就可以让奴隶机去执行力压测了

奴隶机已经开始执行了

1.可能遇到的问题

连接奴隶机被拒绝,原因是奴隶机的防火墙没有开放对应端口

2.报证书错误:解决办法是在奴隶机执行这两个文件,linux执行下面的,windows执行上面的,然后根据提示enter就行,什么都不用写,但是最后一步要填y

 

 

    

 

与[转帖]jmeter实现分布式压测相似的内容:

[转帖]jmeter实现分布式压测

分布式实现的前提条件: 1.master机器和奴隶机的jmeter要一致 a. jmeter版本要一致 b.jdk主要版本要一致,比如都是jdk1.8,后面的小版本不一样不影响 c.jmeter脚本中csv文件要一致(特别注意csv路径,建议csv路径使用相对路径,放在脚本的同级目录) d.jmet

[转帖]Jmeter性能测试:高并发分布式性能测试

一、为什么要进行分布式性能测试 当进行高并发性能测试的时候,受限于Jmeter工具本身和电脑硬件的原因,无法满足我们对大并发性能测试的要求。基于这种场景下,我们就需要采用分布式的方式来实现我们高并发的性能测试要求。 二、分布式性能测试原理 要进行分布式性能测试,我们首先要先一台机器作为主控机(Con

[转帖]jmeter实现不写代码把测试结果存入execl

这里使用数据库作为中间件来实现不写代码就把测试结果存入execl,下面是步骤 1.新建一个setup线程组用来设置数据库连接信息和新建数据库,如下图所示,我们使用sqlite数据库来存储信息,因为不需要自己再去安装数据库,Database URL填写jdbc:sqlite:mytest.db,这是标

[转帖]Jmeter常用配置元件(二):“HTTP Cookie管理器”登录状态保持

在API接口测试过程中,我们需要传递cookie值作为连接状态的保持,例如登录后状态信息。通过使用Jmeter提供的“HTTP Cookie管理器”来实现。 一般情况下不需要输入什么值,就这样即可,如何想手动传递cookie值。可以请参考“渗透测试:通过Jmeter实现CSRF(Cross-site

[转帖]Jmeter笔记:使用Jmeter向kafka发送消息

https://www.cnblogs.com/daydayup-lin/p/14124816.html 日常工作中有时候需要向kafka中发送消息来测试功能或者性能,这时候我们怎么办呢?我之前是自己写个简单的python脚本来模拟发送消息的,其实用Jmeter来实现也比较简单方便。 1、我们必须有

[转帖]jmeter线程组与循环次数的区别

在压测的时候,有些接口需要携带登录信息,但是我们只想登录一次,然后其他接口进行多用户压测,此时你会怎么办?用仅一次控制器实现吗?下面我们来看看用仅一次控制器能不能实现 压测时jmeter中的线程数是模拟并发用户的,我们设置线程数5,然后登录请求添加一个仅一次控制器,我们通过察看结果树看到登录请求是执

[转帖]1.使用Apache Jmeter对应用压力测试学习与实践

https://cloud.tencent.com/developer/article/2129909?areaSource=105001.10&traceId=OFI4ayMl5Z9FSNINaESjJ 0x00 前言简述 1.JMeter 介绍 Q: 什么是Apache JMeter ? JMe

[转帖]jmeter 响应时间rt很小,但是tps也很小&jmeter,脚本处理,千万不要用js

一、背景: 在压测的时候,查看jmeter聚合报告,发现rt很小,但是tps也很小。 讲道理来说,响应时间越小,tps应该越大。 一共压测10分钟,发现jmeter请求的样本数量非常小,才8500个请求。 10分钟内,才打出了8500个请求。 tps= 总样本数量/总时间。 时间是固定的600s,总

[转帖]jmeter学习笔记(二十二)——监听器插件之jp@gc系列

一、jp@gc - Actiive Threads Over Time 不同时间活动用户数量展示 下面是一个阶梯加压测试的图标 二、jp@gc - Transactions per Second ,即TPS:每秒事务数 性能测试中,最重要的2个指标之一。该插件的作用是在测试脚本执行过程中,监控查看服

[转帖]Jmeter接口测试:${__UUID()}函数

UUID函数返回一个伪随机类型的通用唯一标识符ID。 UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写。UUID是基于当前时间戳、随机数和硬件标识(例如网卡的MAC地址)等数据计算生成的。在同一时间范围之内是唯一的。UUID共有5个版本,jmeter自