JMeter如何进行多服务器长途测试

打印 上一主题 下一主题

主题 536|帖子 536|积分 1608

JMeter是Apache软件基金会的开源项目,主要来做功能和性能测试,用Java编写。
我们一般都会用JMeter在本地进行测试,但是受到单个电脑的性能影响,每每达不到性能测试的要求,无法有效的模仿高并发的场景,那么这个时间,我们就可以借由JMeter提供的Romote Test来进行长途的测试。
其工作方式入下图:

我们可以在多台电脑上,启动JMeter的Romote Testing模式,然后用某一台服务器作为Master端通过RMI控制Slave端来实验我们的测试脚本。当JMeter Slave端实验完测试脚本后,会将实验结果发送回Master控制端进行汇总,得出整体的测试报表。
JMeter的Romote Test模式的好处就是可以用一台终端、一个测试计划在多台服务器端同时对目标服务器进行测试,并且将测试的结果回报给同一的控制终端进行汇总,方便高并发的测试需求。
下面先容下JMeter这种长途测试的使用方法。
Step 1: 在Slave端安装JMeter
JMeter可以从官网下载,下载地址:https://jmeter.apache.org/download_jmeter.cgi
由于JMeter的运行需要Java环境,所以,服务器端也必须安装Java。
留意:为了Remote Testing模式能正常工作,尽量保证Slave端和Master端的JMeter和Java版本一致。
Step 2: Slave端运行JMeter
在JMeter的bin目次下,实验下面下令,就可以以服务的方式启动JMeter的Slave端:
  1. jmeter-server
复制代码
JMeter Slave端,默认会启动RMI(Remote Method Invoke)机制,RMI的默认端口为1029,可以在文件jmeter.properties中进行修改。
别的,从JMeter 4.0开始,RMI默认会使用SSL连接,为了能让Slave端和Master端正常通讯,我们需要天生对应的keys和certificates。在JMeter的bin目次下,自带JKS(Java KeyStore)文件天生下令。
在JMeter的bin目次下运行如下的下令,并按照提示符输入相应的内容:


  •   >bin % ./create-rmi-keystore.sh

  •   What is your first and last name?

  •    [Unknown]: rmi

  •   What is the name of your organizational unit?

  •    [Unknown]: unit

  •   What is the name of your organization?

  •    [Unknown]: org

  •   What is the name of your City or Locality?

  •    [Unknown]: city

  •   What is the name of your State or Province?

  •    [Unknown]: prov

  •   What is the two-letter country code for this unit?

  •    [Unknown]: cn

  •   Is CN=rmi, OU=unit, O=org, L=city, ST=prov, C=cn correct?

  •    [no]: yes

  •   Enter key password for <rmi>

  •    (RETURN if same as keystore password):

  •   Re-enter new password:

  •   Copy the generated rmi_keystore.jks to jmeter/bin folder or reference it in property 'server.rmi.ssl.keystore.file'

留意:提示符内里的内容,第一条的名字和末了的密码需要记录下来,其他的内容可以任意填写。
例如,我这里的第一条填写的name是rmi,末了的密码设置为changeit,如果你这里填了其他的值,那么,你需要将你的值写到jmeter.properties文件中,分别对应两个属性:


  • server.rmi.ssl.keystore.alias


  • server.rmi.ssl.truststore.password
末了,我们还需要按照提示,将天生的rmi_keystore.jks文件复制到需要连接的JMeter的bin目次下。如果放到其他目次下,我们需要在jmeter.properties文件中通过server.rmi.ssl.keystore.file指定.jks文件的目次。
Step 3: Master控制Slave实验测试脚本
在Slave端启动成功后,我们就可以实验在Master端进行连接控制。
首先,我们需要将长途JMeter服务器(Slave端)的IPort添加到本地JMeter中,方式是修改本地bin目次下的jmeter.properties文件,在此中找到remote_hosts,将本身的长途JMeter的host和端口添加到这里,如果有多个,使用,分隔。
  1. remote_hosts=<server ip>:1199
复制代码
配置完成后,我们就可以运行下令来实验我们的测试计划:
  1. ./jmeter.sh -n -t test.jmx -r
复制代码
-r: 会控制在remote_hosts中配置的全部Slave端来实验我们的测试计划test.jmx;
你也可以直接在下令行中来指定想要控制的长途JMeter的具体IPort,下令如下:
  1. ./jmeter.sh -n -t test.jmx -R<IP>:1099
复制代码
问题息争决方案
这里可能会出现许多问题,下面列出一些我踩过的坑:
1. Master报连接被拒绝,这个时间你需要检查防火墙设置,是否屏蔽了端口;
2. Slave端启动时,你会发现每次的端口都是随机的,这个可能会造成每次都需要去修改防火墙的端口策略,我们可以通过修改jmeter.properties中的server.rmi.localport来设置一个固定端口号;
3. 某些特殊情况,也会出现客户端无法连接的问题,比如,有些服务器是有双网卡的,这个时间,我们可能就需要指定JMeter启动的服务器端的IP,配置的方式是修改bin/jmeter-server文件,将此中注释的一行修改如下:
  1. RMI_HOST_DEF=-Djava.rmi.server.hostname=1.2.3.4
复制代码
这里的1.2.3.4为你要指定的网卡的IP。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是盼望各人少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,对峙几天便放弃的感受的话,在这里我给各人分享一些自动化测试的学习资源,盼望能给你前进的路上带来资助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信各人都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋侪来说应该是最全面最完备的备战堆栈,这个堆栈也陪伴我走过了最艰难的路程,盼望也能资助到你!以上均可以分享,点下方小卡片即可自行领取。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表