目录
[2.jmeter 配置 slave 代理压测机](#2.jmeter 配置 slave 代理压测机)
[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)监听器