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)监听器
相关推荐
群联云防护小杜21 分钟前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
PyAIGCMaster43 分钟前
ubuntu装P104驱动
linux·运维·ubuntu
奈何不吃鱼44 分钟前
【Linux】ubuntu依赖安装的各种问题汇总
linux·运维·服务器
zzzhpzhpzzz1 小时前
Ubuntu如何查看硬件型号
linux·运维·ubuntu
蜜獾云1 小时前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
陌北v11 小时前
Docker Compose 配置指南
运维·docker·容器·docker-compose
只会copy的搬运工1 小时前
Jenkins 持续集成部署——Jenkins实战与运维(1)
运维·ci/cd·jenkins
娶不到胡一菲的汪大东2 小时前
Ubuntu概述
linux·运维·ubuntu
阿里嘎多学长2 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
Yuan_o_2 小时前
Linux 基本使用和程序部署
java·linux·运维·服务器·数据库·后端