-
Jmeter功能概要
-
JDK常用文件目录介绍
Bin目录:
存放可执行文件和配置文件
Docs目录:
是Jmeter的API文档,用于开发扩展组件
printable_docs目录:
用户帮助手册
lib目录:存放JMeter依赖的jar包和用户扩展所依赖的
Jar包
- 修改默认配置——Jmeter界面的汉化
临时性:
启动Jmeter->选择菜单“option"->Choose language->Chinese(Simplified)
永久性——修改配置文件:
找到Jmeter安装目录下的bin目录
打开jmeter.properties文件
,把第37行
修改为”language=zh_CN
"
重启Jmeter即可。
- 修改默认配置——修改主题
Jmeter默认主题是黑色的,可以通过以下步骤修改:
启动Jmeter->选择菜单“选项”->外观->windows(选择自己喜欢的主题即可)
- Jmeter元件和组件的介绍
- 元件的基本介绍
元件:多个类似功能组件的
容器
(类似于类
)
- 组件的基本介绍
组件:实现独立的某个功能(类似于
方法
)
-
Jmeter元件作用域和执行顺序
-
元件的作用域
元件的作用域:是靠测试计划的树形结构中元件的
父子关系
来确定的。
- 元件的执行顺序
相同作用域下的不同元件:
配置元件 - 前置处理器 - 定时器 - 取样器 - 后置处理器 - 断言 - 监听器
相同作用域下的相同元件:
从上到下依次执行
- 案例:执行顺序
- 元件的作用域都
围绕 取样器 为 核心
- 固定定时器3是HTTP请求3的子节点,所以只对HTTP请求3起作用
- 固定定时器2的父节点是 if 控制器(非取样器),所以只对HTTP请求2起作用(父节点下的所有后代节点起作用)
- 固定定时器1的父节点是 线程组,所以对HTTP1,HTTP2,HTTP3都起作用
由于 相同作用域下的
相同元件
按从上到下的顺序依次
执行,
所以执行顺序为:定时器1 - HTTP请求1 - 定时器1 - 定时器2 - HTTP请求2 - 定时器1 - 定时器3 - HTTP请求3
- Jmeter第一个案例
- 需求:使用Jmeter访问百度首页接口,并查看请求和响应信息
步骤:
- 启动Jmeter
- 在“测试计划”下添加
“线程组”
- 在“线程组”下添加
“HTTP请求
“取样器- 填写”HTTP请求”的相关请求数据
- 在”线程组“下添加
”查看结果树“
监听器- 点击”启动“按钮运行,并查看结果
- 线程组
作用:线程组就是控制JMeter用于执行测试的
一组用户
位置:右键点击”测试计划“->添加->线程(用户)->线程组
特点:
- 模拟多人操作
- 线程组可以添加多个,多个线程组
可以并行或串行
- 取样器(请求)和逻辑控制器必须依赖线程组才能使用
- 线程组下可以添加其他元件下组件
- 线程组分类
- 线程组(编写脚本)
普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户。- SetUp线程组(前置处理、初始化)
一种特殊类型的线程组,可用于执行预测试操作
- TearDown线程组(后置处理、环境恢复等)
一种特殊类型的线程组,可用于执行测试后工作
- 线程组参数详解
练习:编写JMeter脚本,访问百度
要求:
- 模拟10个用户并行执行;
- 模拟10个用户5s内启动完成;
- 模拟2个用户各循环3次;
- 模拟2个用户运行30s;
- 模拟2个用户等待10s后开始执行(持续时间5s)
- 案例分析
使用1个线程组,添加HTTP请求(百度)
- 配置线程数为2,循环次数为3时,运行观察结果
- 配置线程数为3,循环次数为2时,运行观察结果,对比是否有不同
相同点:从请求数量来说,是完全相同的
不同点:场景不同
- 线程数:代表
用户数
,即性能测试时的负载量
(线程数为2比线程数为3对应的负载量小)- 循环次数:代表
时间
,即性能测试时的运行时间
(循环次数3比循环次数2对应的时间长)
- HTTP请求
作用:向服务器发送http及https请求
位置:选择线程组->右键->添加->取样器->HTTP请求
参数:
端口号:http默认80,http默认443
- 案例一(使用
HTTP请求
路径来传递get请求
参数)
(1)使用1个线程组,添加HTTP请求(百度),路径为/S
- 使用HTTP协议,GET请求方法,路径中添加参数为:wd=test,运行观察结果。
- 案例二(使用
参数列表
来传递get请求
的参数)
- 使用HTTPS协议,GET请求方法,路径中添加参数为: wd = test,运行观察结果
- 案例三(使用参数列表来传递POST请求的form格式参数)
- 使用HTTPS协议,POST请求方法,消息体数据中添加参数为: wd = test,运行观察结果
- 案例四:(消息体数据来传递post请求的form格式参数)
- 使用HTTP协议,POST请求方法,消息体数据中添加参数为: wd = test,运行观察结果
- 查看结果树
案例1:查看结果树种的HTTP请求种,有多个子请求的HTTP请求
原因分析:
- 第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径
- JMeter会自动发送第二个HTTP请求(使用第一个HTTP请求中返回的URL路径)
- 点击最外层HTTP请求时,显示的内容与最后一个HTTP请求的请求和响应数据一致
案例2:HTTP响应数据中
存在乱码
,需要修改取样器结果的编码格式