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)监听器
相关推荐
摇滚侠1 小时前
Java 项目教程《黑马商城-MQ 篇》,分布式架构项目,从开发到部署
java·分布式·架构
Adorable老犀牛1 小时前
给运维同行的一个小提议:一起做「不费力的周复盘」,让经验不白费
运维·周报·复盘·反人性·为自己
xlq223221 小时前
26(下).库的理解与加载
linux·运维·服务器
爱学习的小囧1 小时前
零门槛!VCF 自动化环境登录 vSphere Supervisor 全教程
运维·服务器·算法·自动化·vmware·虚拟化
wbs_scy1 小时前
Linux 动静态库完全指南:制作、使用、原理与实战
linux·运维·服务器
沃和莱特2 小时前
Copy as fetch + Skill:自动化问题记录分析的实践与思考
运维·ai·自动化·编程·skills
赛博云推-Twitter热门霸屏工具2 小时前
从手动运营到自动化增长:赛博云推让Twitter推广效率提升10倍
运维·自动化·twitter
Crazy CodeCrafter2 小时前
租金要交,但客流为零,要关店了?
大数据·运维·经验分享·自动化·开源软件
蜜獾云3 小时前
Kafka(4)-kafka生产环境规划部署
分布式·kafka
zhping10113 小时前
Linux 系统上使用 GitHub 加速工具
linux·运维·github