Jmeter—联机负载(分布式)

转自:https://blog.csdn.net/Rainday666/article/details/102641465

·联机负载:
Jmeter本身的性能问题,导致很多时候我们都需要采用分布式(联机负载)的方式来进行性能测试。

·前提条件:
·控制机和负载机、负载机和被测服务器之间的网络是通畅。
·控制机和负载机上具有相同的jmeter环境。

·操作步骤:
·第一步:启动负载机上的Jmeter-server.bat。
PS:默认情况下,server端采用的通信端口是1099,不被占用即可。如果需要修改该端口,则修改jmeter.properties文件中的server_port属性即可。要求端口未被占用。
如果负载机的server_port被修改,则控制机上添加负载机的时候,host:port中的port也要对应修改。(不需要修改控制机上的server_port属性)。

·第二步:在控制机上添加负载机。
是通过修改控制机的jmeter.properties文件来实现。
属性:remote_hosts。
示例:
remote_hosts=127.0.0.1
#remote_hosts=localhost:1099,localhost:2010
remote_hosts=192.168.2.212:8000,192.168.2.100:1099
PS:表示新增两台负载机,分别是2.212:8000,2.100:1099
多台负载机之间使用逗号分隔。
修改之后,需要重启jmeter。

·第三步:启动。
在jmeter中,远程启动有两种方式:
·远程启动:选中某一台负载机,运行脚本。
·远程全部启动:直接启动所有的负载机运行脚本。

·注意事项:
1、从jmeter4.0开始,分布式负载开始支持基于https的模式(默认)。该模式下,需要额外进行操作:
·在控制机上运行bin目录下的脚本:create-rmi-keystore.bat
则会在bin目录下生成密钥文件:rmi_keystore.jks
·将密钥文件rmi_keystore.jks复制到负载机的Jmeter的bin目录即可。

当然,也可以通过修改控制机与负载机的配置文件jmeter.properties,设置不使用https模式,而是采用http模式。
#server.rmi.ssl.disable=false
默认值是false,表示使用ssl模式。
如果不希望使用,则修改为:
server.rmi.ssl.disable=true
PS:控制机和负载机都修改。

2、联机负载时,脚本的运行环境是负载机。
这就意味着我们在做联机负载时,要尽可能的保证负载机和控制机的环境的一致性。
常见的有:
·系统环境变量
·基础环境,比如说jmeter版本和JDK版本。
·第三方文件(参数文件),需要人为的复制分发到负载机。脚本中的访问路径:
·如果控制机和负载机的操作系统类型一致,则建议使用绝对路径。
·如果控制机和负载机的操作系统类型不一致,则只能使用相对路径。
·在本地(控制机上),当前路径是脚本所在路径。
·在远程(负载机上),当前路径是Jmeter的bin目录所在路径。

3、远程全部启动时,如果负载机的数量大于等于两台。脚本是分别、独立、同步在不同的负载机上运行的。
这就意味着,对于服务器而言,承受的压力是:
线程组设计的压力×负载机的数量。

4、如果需要获取错误响应,则需要修改模式为:standard。
默认情况下,负载机是只会将一些特定的数据反馈给控制机的,通常不会包含服务器的响应。
则需要修改以下配置(包括控制机和负载机)。
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data.on_error=true

#Remote batching support
mode=Standard

 

posted @ 2020-05-05 10:29  nnniki  阅读(1134)  评论(0编辑  收藏  举报