Jmeter性能测试: Jmeter 5.6.3 分布式部署

目录

一、实验

1.环境

[2.jmeter 配置 slave 代理压测机](#2.jmeter 配置 slave 代理压测机)

3.jmeter配置master控制器压测机

4.启动slave从节点检查

5.启动master主节点检查

6.运行jmeter

7.观察jmeter-server主从节点变化

二、问题

[1.jmeter 中间请求和响应乱码](#1.jmeter 中间请求和响应乱码)


一、实验

1.环境

(1)主机

表1-1 主机

|------------|------------------|----------------|-------|----|
| 主机 | 架构 | IP | 版本 | 备注 |
| controller | Jmeter master 节点 | 192.168.204.70 | 5.6.3 | |
| slave1 | Jmeter slave 节点 | 192.168.204.71 | 5.6.3 | |

(2)查看版本

master节点

bash 复制代码
jmeter -v

java --version

slave节点

bash 复制代码
jmeter -v

java --version

2.jmeter 配置 slave 代理压测机

(1)修改配置

bash 复制代码
 slave 机器上需要修改配置 jmeter.properties,修改以下两处配置:
 1)找到 server_port 去掉 #,设置端口
 2) 找到 remote_hosts 去掉 #,添加master的 ip及端口 配进去 
 3) 找到server.rmi.ssl.disable=false 改成 true
bash 复制代码
vim jmeter.properties 

修改前:

修改后:

3.jmeter配置master控制器压测机

(1)修改配置文件

bash 复制代码
 slave 机器上需要修改配置 jmeter.properties,修改以下两处配置:
 1)找到 remote_hosts 去掉 #,添加本地与slave的 ip及端口 配进去
 2、找到server.rmi.ssl.disable=false 改成 true
bash 复制代码
vim jmeter.properties 

修改前:

修改后:

4.启动slave从节点检查

(1)启动

bash 复制代码
注:先启动从机器检查是否连接成功
进入jmeter/bin目录,启动jmeter-server
bash 复制代码
[root@slave1 bin]# jmeter-server

5.启动master主节点检查

(1)启动

bash 复制代码
注:先启动从机器检查是否连接成功,然后再启动主机器进行检查
进入jmeter/bin目录,启动jmeter-server
bash 复制代码
[root@controller bin]# jmeter-server

6.运行jmeter

(1) 主节点打开jmeter

bash 复制代码
[root@controller ~]# jmeter

(2) 添加线程组、取样器与监听器

线程数为1

(3)查看

(4)远程启动所有

(5)查看监听器结果

查看结果树

用表格查看结果

查看聚合报告

bash 复制代码
聚合报告中间的样本数量=线程数*循环次数*agent(机器台数)

聚合报告中间的样本数量=1*1*2=2

(6)清空

(7)修改线程数为1000

(8)再次远程启动所有

(9)查看监听器结果

查看结果树

用表格查看结果

查看聚合报告

bash 复制代码
聚合报告中间的样本数量=线程数*循环次数*agent(机器台数)

聚合报告中间的样本数量=1000*1*2=2000

7.观察jmeter-server主从节点变化

(1)master节点

过程涉及2次Starting和Finished

(2)slave节点

过程涉及2次Starting和Finished

二、问题

1.jmeter 中间请求和响应乱码

(1)解决方法

bash 复制代码
需修改jmeter.properties 文件中间sampleresult.default.encoding=utf-8,language=zh_CN 修改保存之后要求重启jmeter

修改前:

修改后:

3.Test Plan (测试计划) 有何作用

(1)作用

bash 复制代码
测试计划是JMETER所有组件的起点,所有的组件都是基于测试计划:
1)名称
整个测试计划名称,以实际项目名称

2)注释
方便查看自定义内容

3)用户定义变量
配置元件中间定义变量,测试计划中间的变量属于全局变量,对所有的线程组都有效(不建议通过测试计划定义用户变量,因为测试计划没法进行禁用的操作,通过配置元件进行自定义变量)

4)独立运行每个线程组

4.线程组的执行顺序

(1)顺序

bash 复制代码
1)setup 线程组
setup 线程组是用于前期的准备工作,比如:JDBC 数据库操作时,前期需要建立数据库连接,用户登录,用户登录完成之后需要做其他的操作,所以 需要把登录放在setup 线程组中间

2)线程组
给服务器做并发的时候需要用到的是并发的用户数,UV一个线程组可以理解为一个用户。
一个线程组可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每个线程之间都是隔离的,互不影响的。

3)teardown线程组
所有的线程组执行完成之后再执行该线程组,比如:退出登录,jdbc 数据库操作完成之后,需要关闭数据库的连接

5.Jmeter组件执行顺序

(1)顺序

bash 复制代码
1)配置元件

2)前置处理器

3)定时器

4)取样器

5)后置处理器

6)断言

7)监听器
相关推荐
不良人天码星9 分钟前
Linux的基础指令和环境部署,项目部署实战(下)
linux·运维·服务器
小赖同学啊31 分钟前
jmeter 与大数据生态圈中的服务进行集成
大数据·jmeter
云上的阿七1 小时前
云计算如何解决延迟问题?
云计算
一个假的前端男1 小时前
RabbitMQ 消息队列
分布式·rabbitmq
EasyNVR2 小时前
基于WebRTC与AI大模型接入EasyRTC:打造轻量级、高实时、强互动的嵌入式音视频解决方案
运维·服务器·微信·小程序·webrtc·p2p·智能硬件
liruiqiang052 小时前
DDD - 整洁架构
分布式·微服务·架构
技术小齐2 小时前
网络运维学习笔记 022 HCIA-Datacom新增知识点03园区网典型组网架构及案例实战
运维·网络·学习
刀客1232 小时前
kafka基本知识
分布式·kafka
Java潘老师2 小时前
Automa 浏览器自动化编排 实现自动化浏览器操作
运维·自动化
waves浪游2 小时前
Linux基本指令(上)
linux·运维·服务器