JMeter基础 — JMeter聚合报告详解

提示:聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容,不做示例演示。

1、聚合报告介绍

在使用JMeter进行性能测试时,聚合报告(Aggregate Report)可以说是必用的监听器。

(1)聚合报告的生成方式

聚合报告有2中生成方式:

    在已有.jtl文件的情况下,直接选择加载文件即可生成聚合报告。
    在运行JMeter的过程中,动态生成聚合报告。

    提示:我们一直使用GUI模式操作JMeter,所以看到的聚合报告组件中的内容,是第二种生成方式。等之后我们介绍非GUI模式操作JMeter时,会讲解第一种方式生成的聚合报告。

(2)聚合报告的数据来源

聚合报告中统计的数据来源,其实都是从统计的SampleResult中收集的数据。

需要特别注意的是:

  •     聚合报告中的每一行,代表一个请求。注意:同名的请求会只显示一个,把结果合并。
  •     聚合报告中的每一列信息,是由SamplingStatCalculator类的不同方法实现统计的,相同名称的请求会共用同一个SamplingStatCalculator。
  •     不管是JMeter实时生成聚合报告,还是根据已经存在.jtl结果文件生成的聚合报告,最终的底层都是调用StatGraphVisualizer类的add(sampleResult)方法来生成表格的一行数据,传递的参数为每个请求的请求结果(sampleResult)信息。

add方法的调用时机:

1)根据.jtl文件生成报告时,每解析一行数据就调用一次add方法。

2)实时运行生成聚合报告,每请求一次,就调用一次add方法。

提示:

    1、注意:使用聚合报告时,测试计划中不要用相同的的请求取样器名称。
    2、观察聚合报告的结果发现,聚合报告是累加的,即每次运行的结果统计都是基于前一次运行的结果进行统计,包括发起的请求样本数等都是叠加的。

2、聚合报告界面详解

添加聚合报告组件方式:选中“线程组”右键 —> 添加 —> 监听器 —> 聚合报告。

界面内容如下图所示:

在这里插入图片描述

聚合报告界面说明:

  • 名称:聚合报告组件的自定义名称,见名知意最好。
  • 注释:即添加一些备注信息,对该聚合报告组件的简短说明,以便后期回顾时查看。

(1)将所有数据写入一个文件

在JMeter中,我们可以将脚本测试中每个用户的访问内容,都存储到一个文件中。

需要操作聚合报告组件中的如下位置:

在这里插入图片描述

说明:

  • 文件名:输入一个文件的完整路径,后缀可以为.csv,.html等。文件若不存在,则创建该文件;若已存在该文件,运行结果选择覆盖原有文件即可。
  • 显示日志内容:

1)仅日志错误:仅保存错误的日志信息到文件中。

2)仅成功日志:仅保存正常响应的日志信息到文件中。

  • 配置(configure):配置测试结果文件中需要记录的内容,可以依据自己需求来选择。
     

 如下图所示:
在这里插入图片描述

    提示:我们可以点击“浏览”按钮,选择已存储的聚合报告文件,来查看之前脚本的请求结果。

(2)聚合报告列表项介绍

1、Label:请求的名称,就是脚本中Sampler的名称。

2、#Samples(样本):总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次。

3、Average(平均值):默认情况下是单个Request的平均响应时间,当使用了Transaction Controller(事务控制器) 时,也可以用Transaction的时间,来显示平均响应时间 ,单位是毫秒。

4、Median(中位数):50%用户的响应时间小于该值。

5、90% Line(90% 百分位):90%用户的响应时间小于该值。

6、95% Line(95% 百分位):95%用户的响应时间小于该值。

7、99% Line(99% 百分位):99%用户的响应时间小于该值。

8、Min(最小值):最小的响应时间。

9、Maximum(最大值):最大的响应时间。

10、Error%(异常%):错误率=错误请求的数量/请求的总数。

11、Throughput(吞吐量):默认情况下表示每秒完成的请求数(Request per Second)。

12、Received KB/sec (接收数据):每秒从服务器端接收到的数据量。

13、Sent KB/sec(发送):每秒发送到服务器端的数据量。

(3)保存聚合报告报表

    在标签中包含组名称?:需要就勾选,不需要则取消勾选。
    保存表格数据:就是保存聚合报告页面中显示的表格内容,而不是用户的请求日志信息。
    保存表格标题:需要就勾选。

3、聚合报告中信息点说明

(1)百分位数的说明

    1、科普:90% Line参数正确的含义

在这里我觉得有必要说一下对 90%Line 的理解:

很多人都理解为:90%用户的平均响应时间。我之前也一直这样认为,但是后来才发现我错了。

那看看JMeter 官网是怎么说的?

90% Line - 90% of the samples took no more than this time. The remaining samples at least as long as this.

意思是:有 90% 的样本不超过这个时间, 剩下的样品至少只要等于或超过这个时间。

换句话说,就表示有90%的请求耗时,都在这个时间之内。

    2、这里涉及到一个数学中的概念:百分位数

百分位数:统计学术语,如果将一组数据从大到小排序,并计算相应的累计百分位,则某一百分位所对应数据的值,就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列,处于p%位置的值称第p百分位数。

百分位通常用第几百分位来表示,如以身高为例,身高分布的第5百分位,表示有5%的人的身高小于此测量值,95%的身高大于此测量值。

    3、再举个例子:

有10个数:1、2、3、4、5、6、7、8、9、10,按由小到大将其排列。

求它的第90%百分位,也就是第9个数刚好是9 ,那么他的90%Line就是9 。

    4、那么百分位数用在性能测试中有什么意义呢?

它可以使用我们的分析结果更准确!

因为在评估一次测试的结果时,仅仅有平均响应时间是不够的。假如在一次测试中,总共有100个请求被响应,其中最小响应时间为0.02秒,最大响应时间为110秒,平均事务响应时间为4.7秒。你会不会想到最小和最大响应时间,这样如此大的偏差,是否会导致平均值本身并不可信?

如果我们把每个请求的响应时间用Excel统计出来,会发现那个最大值的出现几率,只不过是千分之一甚至万分之一,剩下99%的用户请求的响应时间,都是在性能需求所定义的范围之内的。所以为了更准确的衡量整体请求的耗时情况,除了平均响应时间之外,还要有90%Line、95%Line、99%Line来辅助统计。

总结一下,聚合报告中的百分位数的含意:

  •     Median:中位数,50%用户的响应时间在小于该值,注意它与Average平均响应时间的区别。
  •     90% Line:90%用户的响应时间小于该值。
  •     95% Line:95%用户的响应时间小于该值。
  •     99% Line:99%用户的响应时间小于该值。

(2)吞吐量说明

吞吐量(QPS):默认情况下表示每秒完成的请求数。

误区:把吞吐量值当服务器每秒处理的事务数的值(TPS)。

经常有的同学直接把聚合报告中的吞吐量当作TPS来看,这种做法是相当不严谨的。

那么聚合报告中的吞吐量什么情况下可以看成TPS?

从严格意义来讲就是交易成功率为100%(一个完整的事务)。

还有一种情况是,交易失败率在你可以接受的范围内,也就是对当前测试整体结果影响不大,到了可以忽略的程度。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Internet协议的安全性

Internet协议的安全性 文章目录 Internet协议的安全性1. 网络层1. IP*62. ARP*33. ICMP * 3 2. 传输层协议1. TCP1. * SYN-Flood攻击攻击检测* 防御 2. TCP序号攻击攻击 3. 拥塞机制攻击 2. UDP 3. 应用层协议1. DNS攻击*3防范*3: 2. FTP3. TELNET: 改用ssh4. 电子邮件1. 攻击2…

【Javascript编程实操06】1、反转数组和字符串 2、将二维数组转一维数组

前言 1、反转数组和字符串 代码: 实现效果: 2、将二维数组转一维数组 代码: 实现效果: 总结 前言 本次主要是针对Javascript阶段的字符串与数组的实操练习,共有2个实操,大家可以在实操的过程中更加深…

什么时候去检测大数据信用风险比较合适?

什么时候去检测大数据信用风险比较合适?在当今这个数据驱动的时代,大数据信用风险检测已经成为个人的一项重要需求。本文将从贷前检测、信息泄露检测和定期检测三个方面,阐述何时进行大数据信用风险检测较为合适。 一、贷前检测 大数据信用风险检测在贷…

Docker使用(二)Docker安装和常见典型操作

Docker使用(二)Docker安装和常见典型操作 二、软件安装 1、Docker安装 (1)环境准备 [rootlocalhost ~]# uname -r 3.10.0-327.el7.x86_64 # cat /etc/os-release (2)卸载旧版本 $ sudo yum remove docker \ ​ docker-cli…

145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,

一 协议的概念 从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。 典型协议 传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议,FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常…

springboot“涛宝”大学生二手物品交易商城

摘 要 二十一世纪我们的社会进入了信息时代,信息管理系统的建立,大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多,而在线管理系统刚好能满足这些需求,在线管理系统突破了传统管理方式的局限性。于是本文针对这一…

Kubernetes operator系列:webhook 知识学习

云原生学习路线导航页(持续更新中) 本文是 Kubernetes operator学习 系列文章,本节会对 kubernetes webhook 知识进行学习 本文的所有代码,都存储于github代码库:https://github.com/graham924/share-code-operator-st…

免费接口调用 招标信息自动抽取|招标信息|招标数据解析接口

一、开源项目介绍 一款多模态AI能力引擎,专注于提供自然语言处理(NLP)、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大,支持本地化部署,并鼓励用户体验和开发者共同完善&#xf…

浅谈性能测试中的基准测试

在性能测试中有一种测试类型叫做基准测试。这篇文章,就聊聊关于基准测试的一些事儿。 1、定义 通过设计合理的测试方法,选用合适的测试工具和被测系统,实现对某个特定目标场景的某项性能指标进行定量的和可对比的测试。 2、特质 ①、可重…

软件实例,餐厅酒水寄存管理系统软件,酒水寄存登记表软件操作教程

软件实例,餐厅酒水寄存管理系统软件,酒水寄存登记表软件操作教程 一、前言 以下软件操作以 佳易王酒水寄存管理系统软件V16.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、酒水寄存管理系统软件可以管理多个品类的物…

AI健身教练-引体向上-俯卧撑计数-仰卧起坐姿态估计-康复训练姿态识别-姿态矫正

在AI健身应用中,通过关键点检测技术可以实现对用户动作的精准捕捉和分析,从而进行统计计数和规范性姿态识别。 统计计数:比如在做瑜伽、健身操等运动时,系统可以通过对人体关键点(如手部、脚部、关节等)的…

复习 --- windows 上安装 git,使用相关命令

文章目录 很少使用windows的git工具,这次借助这个任务,记录下使用过程,其他的等有空在整理。 其中,还使用了浏览器的AI小助手,复习了git相关的命令:图片放最后

ROS——集成开发环境搭建

1.4 ROS集成开发环境搭建 和大多数开发环境一样,理论上,在 ROS 中,只需要记事本就可以编写基本的 ROS 程序,但是工欲善其事必先利其器,为了提高开发效率,可以先安装集成开发工具和使用方便的工具:终端、ID…

YOLOv9算法原理——使用可编程梯度信息学习想要学习的内容

前言 2023年1月发布YOLOv8正式版后,经过一年多的等待,YOLOv9终于面世了!YOLO是一种利用图像全局信息进行目标检测的系统。自从2015年Joseph Redmon、Ali Farhadi等人提出了第一代模型以来,该领域的研究者们已经对YOLO进行了多次更…

EOS 与ESD 区别

ESD: 英文:Electrical Static Discharge; 定义:不同静电电位的两个物体之间的电荷转移;中文释为静电放电。静电是一种客观的自然现象; EOS: 英文:Electrical Over Stress 定义&#xf…

钉钉小程序 - - - - - 如何通过一个链接打开小程序内的指定页面

方式1 钉钉小程序 scheme dingtalk://dingtalkclient/action/open_mini_app?miniAppId123&pagepages%2Findex%2Findex%3Fx%3D%25E4%25B8%25AD%25E6%2596%2587 方式2 https://applink.dingtalk.com/action/open_mini_app?type2&miniAppIdminiAppId&corpIdcorpId&…

spacy进行简单的自然语言处理的学习

自然语言处理基本概念 概念:自然语言处理,是让机器理解人的语言的过程。 作用:通过使用自然语言处理,机器可以理解人的语言,从而进行语义分析,例如:从一句话中判断喜怒哀乐;从一段文…

Unity类银河恶魔城学习记录10-12 p100 Improve aliments - chill源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili CharacterStats.cs using System.Collections; using System.Collections…

计算机二级Python题目13

目录 1. 基本题 1.1 基本题1 1.2 基本题2 1.3 基本题3 2. turtle画图 3. 大题 3.1 大题1 3.2 大题2 1. 基本题 1.1 基本题1 lseval(input()) s"" for item in ls:if type(item)type("香山"):s item print(s) 1.2 基本题2 import random random.se…

说下你对TCP以及TCP三次握手四次挥手的理解?

参考自简单理解TCP三次握手四次挥手 什么是TCP协议? TCP( Transmission control protocol )即传输控制协议,是一种面向连接、可靠的数据传输协议,它是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。 面向连接&a…