1. 摘要
本文介绍Jmeter界面各个菜单及界面的功能介绍,并重点讲解监听器介绍。
2. 界面基本介绍
jmeter面板大致分为菜单栏,功能区,用例视图区以及详细配置区。
2.1 菜单栏
菜单栏从左到右分别是:
JMeter:jmeter信息展示;
File(文件):主要是新建、打开和保存;
Edit(编辑):主要是添加元件、保存、打开、禁用等;
Search(查找):查找和清除查找;
Run(运行):主要是运行,分布式运行;
Options(选项):主要是函数和日志;
Help(帮助),我们可以点击帮助,查看Jmeter帮助文档。
2.1.1 文件
新建:新建一个空白的测试计划
Templates<模板>:对于一些常用功能的示例模板,点击模板中的链接可跳转到官方的介绍页面
打开:弹出路径选择框,可选择并打开一个新的JMX格式的脚本文件
Open Recent<最近打开>:显示最近打开过的脚本记录,选择后可打开对应的脚本
合并:将多个JMX文件合并成一个文件,指将所选文件的内容合并到当前文件中来
保存测试计划:就字面意思,保存整个测试计划
保存测试计划为:类似于文本编辑器中的另存为,保存的是整个测试计划
选中部分保存为:仅保存选择部分,类似于选中部分另存为XXX
save as Test fragment:保存为测试片段,其中测试计划、测试组是不能被保存为测试片段的<4.0之前的版本工作台也是不能保存的,4.0开始工作台被去掉了>。
Revert:还原,还原到上次保存时的状态
退出:关闭程序
2.1.2 编辑
添加:根据当前再树形标签页中所选中的标签,来显示不同的添加内容
粘贴:就是粘贴,将复制的部分粘贴过来
打开:等同于文件—打开
合并:等同于文件—合并
选中部分另存为:等同于文件—选中部分保存为
Save Node As Image:保存节点为图片,只会截取并保存右侧内容显示区域
Save Screen As Image:保存屏幕为图片,会保存整个jmeter程序的界面
启用:对当前选中的标签进行启用操作
禁用:对当前选中的标签进行禁用操作
Toggle:切换,对当前选中的标签进行禁用/启用切换操作,禁用变启用、启用变禁用
帮助:跳到官方帮助文档页面
2.1.3 搜索
Search:查询功能,查找到的内容会在树形结构中框红显示
Reset Search:重置查询,对前面框红的内容进行清除
2.1.4 运行
启动:运行测试计划
Start no pauses:不停顿启动,运行测试计划,但会忽略测试计划中的定时器等待
远程启动:分布式测试时使用,指定启动一个远程agent运行。
远程全部启动:分布式测试时使用,启动所有的远程agent运行。
停止:停止执行测试samper;
关闭:停止线程组的全部用例执行;
远程停止:分布式测试时使用,指定停止一个远程agent运行。
远程全部停止:分布式测试时使用,停止所有的远程agent运行。
远程关闭:类似于远程停止。
远程全部关闭:类似于远程全部停止。
远程退出:
远程全部退出:
清除:清除当前所选标签的执行结果,只对监听器有用。
清除全部:清除当前计划中的所有监听器的执行结果。
2.1.5 选项
函数助手对话框:弹出函数助手弹窗,可快速生成需要的代码
外观:可用改变jmeter的界面风格主题。
Log Viewer:打开\关闭日志输出框
Log Level:设定运行输出日期的等级
SSL管理器:导入外置的SSL管理器,用于更好的管理证书。
选择语言:改变界面的语言种类,适配不完善的地方依旧使用的英语。
Collapse All:展开所有的菜单
Expand All: 折叠所有的菜单
Zoom In:放大,页面中的文字整体放大
Zoom Out:缩小,页面中的文字整体缩小
Save automatically before run:翻译过来是保存之前自动运行,但没发现实际意义
Plugins Manager:插件管理器
2.2 功能区
功能区从左到右分别是:
- 新建测试计划;
- 选择测试计划模板创建一个新的测试计划;
- 打开jmeter脚本;
- 保存jmeter脚本;
- 剪切;
- 复制;
- 粘贴;
- 展开目录树;
- 收起目录树;
- 禁用或启用元件;
- 本机开始运行当前测试计划;
- 立即开始在本机运行当前测试计划;
- 停止;
- 关闭;
- 清除;
- 清除全部;
- 查找;
- 清除查找;
- 函数助手对话框;
- 帮助。
2.3 状态区
状态展示区从左到右分别是:
用例执行时间;
用例状态:如果是黄色感叹号则是正常的,如果是红色数字的代表有问题(warnings/errors 数量就是多少);
点击黄色叹号会展示jmeter日志(这个日志是jmeter使用加载信息的日志jmeter.log,并不是测试脚本运行的日志).
3. 界面基本操作
3.1 模板
3.2 线程组
线程组相当于有多个用户,同时去执行相同的任务。每个线程之间都互不影响。
区域一:在采样器失败后怎么处理(LoadRunner里面也有类似的运行设置选项,对比去学习):
1、continue:继续执行接下来的操作;
2、Start Next Thread Loop:开始下一次循环;
3、stop Thread:停止线程,退出该线程(不再执行此线程的操作);
4、stop Test:等待当前执行的采样器结束后,结束整个测试;
5、Stop Test Now:马上停止测试;
区域二:线程属性
1、Number of Threads(users):线程数,相当于模拟的用户数量;
2、Ramp-up Period(in seconds):达到指定线程需要的时间,例如线程数为100,时间设定为10s,那么就是10s加载 100个线程,每秒启动的线程数=100/10=10;
3、Loop Count:如果填具体的数值,就是循环对应的次数;如果选择“Forever”,则一直执行下去,直到手动停止;
4、Delay Thread creation until needed:延迟线程创建,直到需要才创建。
举例:Jmeter 使用线程模拟用户,增加一个线程就是多一个模拟用户。Number of Threads 表示模拟的并发用户数。
当取
Number of Threads = 5
时,为了便于观察结果,我们将 Ramp-Up Period 设置为 5秒
,这样能将5个线程发起请求的时间在时间轴上完全分开而不重叠。属性列表如下:上图可以看出,Jmeter 在5秒钟内发起了5个线程,每个线程各发出1个请求。在时间轴上延伸是下图的样子,一条线表示一个用户:
区域三:调度器配置
需要选中调度器(scheduler),调度器配置才生效。
a.Duration(seconds):持续时间,测试计划持续多长时间。
b.Startup delay(seconds):启动延时。点击启动按钮后,仅初始化场景,不运行线程,等待延时时间到才运行。
3.3 新建一个HTTP请求
服务器名称或IP、端口号 :配置目标服务器名称或者IP地址,端口号默认情况下为80,也可以指定其它端口号。
方法:发送请求的具体方法,可以是GET、POST等。
路径:配置路径,注意在填写路径时服务器地址、端口及参数不需要,只需要填写剩余后的部分。
Content encoding :编码方式。此处采用utf-8,如果为空,则表示采用ISO-8859-1编码。
参数配置:表中每行表示一个参数(与URL中的 name=value相对应)
4. 监听器的介绍和使用
察看结果树
Summary Report
聚合报告
Backend Listener
Aggregate Graph
断言结果
Comparison Assertion Visualizer
生成概要结果
图形结果
JSR223 Listener
邮件观察仪
Response Time Graph
保存响应到文件
Simple Data Writer
用表格察看结果
BeanShell Listener
4.1 察看结果树
调试利器。想必大家也都经常用,不做介绍。有点类似我们的抓包,可以看到request以及response信息。
4.2 Summary Report
Summary Report 为测试中的每个不同命名的请求创建一个表行。这与聚合报告类似,只是它使用更少的内存。
参数说明:
文件名:保存的路径
Configure:点击打开,选择要监听的事项
Label 取样器别名,如果勾选Include group name ,则会添加线程组的名称作为前缀
Samples 取样器运行次数
Average 请求(事务)的平均响应时间
Min 请求的最小响应时间
Max 请求的最大响应时间
Std. Dev 响应时间的标准方差
Error % 事务错误率
Throughput 吞吐量 也就是TPS
Received KB/sec 每秒收到的千字节
Sent KB/sec 每秒发送的千字节
Avg. Bytes 响应平均流量
4.3 聚合报告
与Summary Report类似,但是表格中的内容有些许区别。
Label 取样器别名,如果勾选Include group name ,则会添加线程组的名称作为前缀
Samples 取样器运行次数
Average 请求(事务)的平均响应时间
Median 中位数
90% Line 90%用户响应时间
95% Line 90%用户响应时间
99% Line 90%用户响应时间
Min 最小响应时间
Max 最大响应时间
Error 错误率
Throughput 吞吐率
Received KB/sec 每秒收到的千字节
Sent KB/sec 每秒收到的千字节
4.4 Aggregate Graph
通过Aggregate Graph 我们可以看到表格显示的结果与图形结果,看着挺复杂,其实稍微翻译一下就知道,绝大多数都是对图形的设置。
Column settings
Columns to display 选择要在图表中显示的列
Rectangles color 单击右侧颜色矩形打开弹出对话框,选择自定义颜色。(就是点击)
Foreground color 允许更改值文本颜色
Value font 允许定义文本的字体设置
Draw outlines bar? 在条形图上绘制或不绘制边界线
Show number grouping? 是否显示Y轴标签中的数字分组
Value labels vertical? 更改值标签的方向。(默认为水平)
Column label selection 按结果标签过滤
Title
在图表的头部定义图表的标题
Graph size
根据当前JMeter窗口大小的宽度和高度计算图形大小。使用“ 宽度”和“ 高度”字段定义自定义大小。单位是像素。
X Axis settings
定义X轴标签的最大长度(以像素为单位)
Y Axis settings
为Y轴定义自定义最大值。
Legend
定义图表图例的放置和字体设置
4.5 图形结果
样本数目:是总共发送到服务器的请求数。
最新样本:表示服务器相应最后一个请求的响应时间。
吞吐量:服务器每分钟处理的请求数。
平均值:是总运行时间除以发送到服务器的请求数(平均响应时间)。
中间值:一半的响应时间请求高于该值。
偏离:代表服务器相应时间变化的数据的分布
4.6 用表格查看结果
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
4.7 Response Time Graph
响应时间图形监听器。有点和我们之前介绍的Aggregate Graph类似
参数解释
Interval (ms) X轴间隔的时间(以毫秒为单位)
Sampler label selection 按结果标签过滤。可以使用正则表达式
Title 在图表的头部定义图表的标题
Line settings 定义线条的宽度
Graph size 根据当前JMeter窗口大小的宽度和高度计算图形大小。使用“ 宽度”和“ 高度”字段定义自定义大小。单位是像素。
X Axis settings 自定义X轴标签的日期格式
Y Axis settings 为Y轴定义自定义最大值(以毫秒为单位)
Legend 定义图表图例的放置和字体设置
4.8 邮件观察仪
如果测试运行从服务器收到太多失败的响应,则可以将邮件程序可视化工具设置为发送电子邮件,这个不错,起到及时通知效果,下面我使用的是163 SMTP进行测试。可以实现。
from 发送人 addressee 接收人
4. 9 输出性能报告
输入以下命令,进行性能测试并输出CSV执行结果文件和HTML报告
jmeter -n -t C:\temp\jmeter.jmx -l C:\temp\jmeterfile\test.csv -e -o C:\temp\jmetertest
三个路径依次是:xxx.jmx文件路径,输出xxx.csv文件路径,要保存的http report的文件路径
[注意]当这个两个目录已经生成了文件时,请先清除或者备份,保持目录为空时,在执行以下操作
4.10 响应断言
4.11 持续时间断言
4.12 字节断言
4.13 Backend Listener
4.14 JSR223 Listener
JMeter 支持使用编程语言来开发测试,最常用的莫过于 BeanShell
但是 BeanShell 脚本的效率却不高
针对此种情况,JMeter 给了测试开发人员更多的选择,引入了 JSR223 组件元素,提供了使用多种编程语言开发测试的可能性,其中包括了性能较高的Groovy语言
在使用 JSR223 组件元素开发测试时,可以使用其内置的变量,有助于精简脚本,提高开发测试的效率
JSR223 定义了可集成在Java平台上运行的一系列脚本语言,比如 Groovy,JavaScript 等。
Jmeter 有哪些 JSR223:
定时器: JSR223 Timer
前置处理器:JSR223 PreProcessor
采样器: JSR223 Sampler
后置处理器:JSR223 PostProcessor
断言: JSR223 断言
监听器: JSR223 Listener
4.15 保存响应到文件
4.16 Simple Data Writer
用来记录取样器响应结果,不会以图形方式显示。配合NON GUI模式使用
5.参考
(1)第一章 JMETER的基础使用:2 界面介绍
https://www.freesion.com/article/22281097125/
(2)(三)JMeter GUI操作界面介绍
https://www.pianshen.com/article/83111732967/
(3)JMeter学习--基础Jmeter操作(一)【JMeter界面操作介绍】
https://www.pianshen.com/article/77231145947/
(4)12、jmeter-监听器介绍与使用
https://www.cnblogs.com/jingdenghuakai/p/11125879.html