侧边栏壁纸
博主头像
一朵云的博客博主等级

拥抱生活,向阳而生。

  • 累计撰写 67 篇文章
  • 累计创建 25 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

JMeter -- Windows局域网远程调用(集群搭建)

一朵云
2022-02-10 / 0 评论 / 2 点赞 / 8116 阅读 / 5473 字

基本介绍:

  Jmeter压测过程中,由于测试机配置有限,CPU、内存都可能是存在瓶颈。如果使用很大的并发进行测试时,就可能会感到程序比较卡,这时候就无法继续增加压力了,所以我们需要搭建集群来分担压力。

基本原理:

  • 1、JMeter 分布式测试,选择一台测试机节点来当调度服务器,其他的测试机节点作为执行节点,通过调度节点管理其他节点;

  • 2、启动服务时,调度服务器会把脚本发送到各个执行节点(脚本会发送到执行节点,但是数据不会发送),执行节点拿到脚本开始执行命令;

  • 3、各个执行节点执行结束以后将结果回传给调度节点,调度节点进行数据汇总。

使用方式:

  • 1、通过SSL连接(需要身份验证,较安全,推荐)

  • 2、关闭SSL,直连。

操作步骤详解:

SSL连接

1、主机(调度服务器/Master) 配置 从机(执行服务器/Slave)信息

  添加从机ip地址到主机的 JMeter安装目录\bin\jmeter.properties 文件中。

# Remote Hosts - comma delimited
#remote_hosts=127.0.0.1
remote_hosts=192.168.50.213
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099

2、生成.jks文件(签名证书)

  JMeter默认启动了RMI.SSL配置,启动服务进行远程连接,需要验证身份,所以需要该jks文件配置。

  双击执行 JMeter安装目录\bin\create-rmi-keystore.bat 脚本,并按提示输入内容、回车确定。

image.png

生成的jks文件需要拷贝一份到从机的bin目录上。

3、从机(执行服务器/Slave)运行 jmeter-server 文件

  以管理员身份运行从机的 JMeter安装目录\bin\jmeter-server.bat 文件。(注意检查服务ip,当测试机网卡较多时,容易IP使用错误)

4、主机 远程调度 从机 执行脚本

  主机上点击导航栏的 “运行 -- 远程运行 -- 选择节点ip”,如下图:

image.png

  主机上的执行结果如下:

image.png

image.png

  从机控制台上显示如下:

image.png

直连模式

1、修改主机的配置文件

  关闭 RMI.SSL 开关。

# Set this if you don't want to use SSL for RMI
#server.rmi.ssl.disable=false(默认)
server.rmi.ssl.disable=true

  添加从机ip地址到主机的 JMeter安装目录\bin\jmeter.properties 文件中。

# Remote Hosts - comma delimited
#remote_hosts=127.0.0.1
remote_hosts=192.168.50.213
#remote_hosts=localhost:1099,localhost:2010

# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1099

2、从机(执行服务器/Slave)运行 jmeter-server 文件

  以管理员身份运行从机的 JMeter安装目录\bin\jmeter-server.bat 文件。(注意检查服务ip,当测试机网卡较多时,容易IP使用错误)

3、主机 远程调度 从机 执行脚本

  主机上点击导航栏的 “运行 -- 远程运行 -- 选择节点ip”,如下图:

image.png

注意事项:

1、远程调用,主机上看不到响应结果。

  JMeter默认模式为了减轻主机和网络的压力,移除了响应数据,若想看也可通过修改 jmeter.properties 文件中模式,来改变默认操作。

具体模式说明如下:

  • Stripped(默认):将成功采样的响应数据移除。

  • Standard:在采样结果产生后立即发送。

  • Hold:将采样结果保存在一个数组中,直到测试结束。这可能会占用远程服务器的大量内存。

  • Batch:当计数器或者时间超过阈值之后,发送保存的采样结果。

  • Statistical:当计数器或者时间超过阈值之后,以概要的形式发送采样结果;采样结果以线程组(Thread Group)名称和采样标签(Sample Label)进行概要统计。积累的数据域包括:elapsed time、latency、bytes、sample count、error count,其他数据域将会被丢弃。

  • StrippedBatch:将成功采样的响应数据移除,并批次发送。

  • Custom implementation:将模式参数设置为测试人员的客户化采样发送器的类名。该类必须实现接口SampleSender,并且类的构造函数只有一个RemoteSampleListener型的参数。

如下属性会影响Batch和Statistical模式。

  • num_sample_threshold:一个批次中的采样数目(默认为100)。
  • time_threshold:等待的毫秒数(默认为60秒)。

2、远程调用,外部文件引用失败。

  主机执行的脚本一旦有引用外部文件的,如CSV数据配置、jar包引用等,都是需要拷贝一份文件到从机对应目录上的,否则接口执行就会无响应。

3、jmeter-server.bat执行报错

异常信息:

  java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)

  这个异常是因为JMeter启动了RMI.SSL,需要我们生成.jks文件。


异常信息:

  java.io.IOException: java.security.UnrecoverableKeyException: Cannot recover key

  这个异常时因为生成.jks文件时,输入的密钥指令与默认的不一致,只要我们使用同一个密钥指令就可以了。通常使用默认的,jmeter.properties 文件中的密码为changeit。

2

评论区