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)监听器
相关推荐
荣光波比19 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
hzulwy19 小时前
Kafka基础理论
分布式·kafka
武文斌7719 小时前
单片机:DS18B20测温度、74HC595扩展芯片、8*8LED矩阵
运维·服务器·单片机·嵌入式硬件
fengfuyao98519 小时前
诊断并修复SSH连接Github时遇到的“connection closed“错误
运维·ssh·github
scugxl20 小时前
centos7 docker离线安装
运维·docker·容器
明达智控技术20 小时前
MR30分布式IO在全自动中药煎药机中的应用
分布式·物联网·自动化
jakeswang21 小时前
细说分布式ID
分布式
绿箭柠檬茶21 小时前
Ubuntu 使用 Samba 共享文件夹
linux·运维·ubuntu
失散131 天前
分布式专题——1.2 Redis7核心数据结构
java·数据结构·redis·分布式·架构
工藤新一¹1 天前
Linux —— 虚拟进程地址空间
linux·运维·服务器·c/c++·虚拟进程地址空间