首页 > 其他分享 >Jmeter分布式压测

Jmeter分布式压测

时间:2022-11-07 10:40:42浏览次数:58  
标签:Jmeter jmeter 压测 配置 192.168 server 如下 rmi 分布式

 一、原因

  1、当你想并发很大的时候(比如3000)那么一台jmeter可能就不能胜任了,这时候就需要多台jmeter同时加压

  2、当jmeter压力机安装在没有gui的linux上,又不想通过非gui的方式完成性能测试

二、原理

  原理很简单就是找一台装有jmeter的机器当控制端,由这个控制端统一控制其它装有jmeter的机器作为代理,产生压力。如下图

Jmeter分布式压测_linux

三、安装jdk和jmeter

1、分别下载windows版本和linux版本的jdk,jdk版本1.8。windows点击安装包一路下一步即可。linux将tar.gz包上传linux解压缩并配置环境变量即可,参见

2、从 ​​http://jmeter.apache.org/download_jmeter.cgi​​ 下载最新jmeter安装包。windows系统的是zip压缩i文件,linux系统的是tar.gz压缩包。也是简单的解压缩即可。 

四、配置controller

本文档使用1.10机器作为控制端,1.11作为代理,ip地址需要根据你的实际情况加以修改,如下图:

 

Jmeter分布式压测_javascript_02

1、修改 jmeter.properties 配置文件

  打开 C:\apache-jmeter-5.1.1\bin\jmeter.properties 配置文件(这是我的jmter解压位置,根据你的位置打开相应文件)

  a)找到 server.rmi.ssl.disable 配置,将行首的注释删掉并改为true 

server.rmi.ssl.disable=true

  如果没有配置运行脚本的时候会报如下图错误

Jmeter分布式压测_apache_03

   b)配置代理地址,找到 remote_hosts 并配置如下

    其中1.11就是一台代理ip地址1099是在代理上启动的jmeter-server的监听端口。每台代理以“,”号分割

remote_hosts=127.0.0.1,192.168.1.11:1099,192.168.1.12:1099,192.168.1.13:1099,192.168.1.10:1099

  c)配置代理连接控制端ip地址

  打开 C:\apache-jmeter-5.1.1\bin\jmeter-server.bat 文件,添加如下内容,添加位置无所谓只要在 set ARGS= 前即可,其中 192.168.1.10就是你的控制端的ip地址

set rmi_host=-Djava.rmi.server.hostname=192.168.1.10

  修改 set ARGS= 配置,原来配置信息如下

set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER%

  在最后添加  %rmi_host%,添加后如下

set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER% %rmi_host%

  以上配置非必须。如果你的控制端只有一块网卡并且没有安装虚拟机等软件就可以不用配置。

  因为在控制端连接代理后会通知代理控制端的ip地址,然后代理会在测试完成后主动连接控制端,以便将测试结果回传给控制端。此时如果有多块网卡就有可能连接失败,错误现象如下。

  另外一个解决方式是将虚拟网卡或第二块网卡禁用,这样就不会出现连接不上控制端的问题但如果不小心启用的网卡还会出现此问题。

Jmeter分布式压测_apache_04

 

Jmeter分布式压测_linux_05

 

Jmeter分布式压测_linux_06

五、配置agent

1、修改 jmeter.properties 配置文件

根据你安装的目录修改
vi /home/apache-jmeter-5.1.1/bin/jmeter.properties

1、将原来的
#server_port=1099

前边的注释去掉改为
server_port=1099

2、将原来的
#server.rmi.localport=4000

前边的注释去掉改为
server.rmi.localport=1099

  这里的端口号如果不改也可以,但jmter每次启动都会换一个端口,这样每次都要修改controller的remote_hosts配置信息比较麻烦。不配置如下图端口每次启动都改变

Jmeter分布式压测_linux_07

  找到 server.rmi.ssl.disable 配置,将行首的注释删掉并改为true

server.rmi.ssl.disable=true

  如果没有配置运行脚本的时候会报如下图错误

Jmeter分布式压测_javascript_08

2、修改 jmeter-server 启动脚本

vi jmeter-server


#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx

改为
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.11

  改后如下图,同样如果linux只有一块网卡也无需设置。

Jmeter分布式压测_javascript_09

  另外一个方法是启动时候指定ip地址如下

./jmeter-server   -D java.rmi.server.hostname=192.168.1.11

 2、启动 jmeter-server

linux上执行 ./jmeter-server 命令windows上双击 jmeter-server.bat 即可,启动成功后如下

[root@bj-zd2f-vm-ceshi-test-loadrunner1 bin]# ./jmeter-server 
Using local port: 1099
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.1.11:1099](local),objID:[258e0404:16db9c33fc1:-7fff, -5488498502529841046]]]

使用上面命令启动 jmeter-server虽然可以使用但只要关闭xshell后就不能用了,可以使用如下命令运行在后台

nohup ./jmeter-server &

如果重新启动服务器那还要每台服务器重新运行 jmeter-server,可以直接将启动命令放到profile文件中这样jmeter-server会跟随系统启动而运行

打开profile文件
vi /etc/profile

在profile最后添加运行jmeter-server命令
cd /home/apache-jmeter-5.1.1/bin
nohup /home/apache-jmeter-5.1.1/bin/jmeter-server &

保存profile在命令行执行如下命令,使profile配置生效
source /etc/profile

六、分布式压测

 1、在控器器中打开脚本

Jmeter分布式压测_linux_10

 2、点击 run->Remote Start 下的agent压测

 

Jmeter分布式压测_apache_11

压测完成后就可以看到报告了。

 

Jmeter分布式压测_linux_12

七、分布式压测中的参数文件问题

1、当脚本引用csv参数文件后不要使用绝对路径

Jmeter分布式压测_javascript_13

2、将此csv文件上传到所有agent

csv文件需要上传到启动 jmeter-server时候的目录下,由于在profile文件中添加了 cd /home/apache-jmeter-5.1.1/bin 命令,所以将csv文件传到此目录 /home/apache-jmeter-5.1.1/bin 即可

 

 

 

 

 

 



标签:Jmeter,jmeter,压测,配置,192.168,server,如下,rmi,分布式
From: https://blog.51cto.com/u_15862829/5828060

相关文章

  • JMeter中文乱码的解决
    对于JMeter中文乱码分为两部分:1、请求(request):由于引用了csv文件当csv文件编码与JMeter不统一可能造成服务器收到数据的中文乱码2、返回(response):由于服务器返回数据......
  • Jmeter测试中奖概率
    最近做个项目需要测试中奖概率,又刚换的mac本win上的工具全不能用了,所以想到用jmeter实现。实现步骤:1、使用HTTP请求访问接口2、添加查看结果树查看测试结果3、......
  • Jmeter 分布式 运行时异常linux 命令统计
    1,强行结束程序ps-ef|grepjava|awk'{print$2}'|xargskill-9;ps-ef|grepthirdparty|awk'{print$2}'|xargskill-9;2,清除缓存echo3>/proc/sys/vm/d......
  • JMeterPerfReporter3.0正式版本发布,速进围观
    Lemon-JMeterPerfReporter工具,是性能测试课程教研组根据JMeter性能测试报告的不足,定制开发的一个性能报告生成工具。2022年11月1日,正式发布了3.0版本。有需要的同学,可以通过......
  • SpringCloud_Alibaba(分布式事务)
    1、Seata简介Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务http://seata.io/zh-cn/分布式事务处理过程唯一ID+......
  • 命令行运行JMeter
    一、终端运行JMeter1、cd /Users/xiao/Downloads/apache-jmeter-5.5/bin2、jmeter-n-t../work/0724测试计划.jmx3、jmeter-n-t../work/0724测试计划.jmx-lres......
  • JMeter中的BeanShell
    一、BeanShell1、什么是BeanShell?BeanShell是由Java编写的,相当于一个小巧的Java源码解释器,简单来说就是你可以在里面写代码,然后通过BeanShell翻译成插件可以识别指......
  • 转 性能测试连载 (5)-jmeter 下的性能指标监听
    性能指标监听概述性能测试过程中,想要得到比较靠谱的性能数据,就不得不对各种性能数据进行动态监听。jmeter中提供了很多性能数据的监听器,我们通过监听器可以来分析性能瓶......
  • 【博学谷学习记录】超强总结,用心分享 。分布式缓存
    分布式缓存--基于Redis集群解决单机Redis存在的问题单机的Redis存在四大问题:1.数据丢失问题:实现Redis数据持久化2.并发能力问题:搭建主从集群,实现读写......
  • 分布式架构碎片
    转载:https://www.cnblogs.com/imyalost/p/15318976.html异地多活定义:广域的分布式架构;目的:容量扩展,资源弹性;实质:多个不同地域不同规模的数据中心;收益:更强的容灾能力,用......