性能小白终于能看懂Jmeter报告了

对于刚接触性能测试的初学者来说,分析JMeter生成的测试报告无疑是一个巨大的挑战。面对大量的数据信息,如何快速理解响应时间、吞吐量、错误率等关键指标,往往让人感到困惑。今天,让我们一起探讨如何轻松看懂JMeter的性能测试报告,让“小白”也能轻松驾驭复杂的性能数据。

JMeter的报告中包含了哪些重要指标?这些指标分别代表什么含义,又该如何判断系统的性能表现?

在互联网行业中,性能测试的重要性日益凸显。尤其是电商、金融等高并发行业,性能测试不再是锦上添花,而是保障用户体验的基本要求。JMeter作为开源工具,提供了详尽的性能测试报告,帮助企业在开发过程中发现并解决性能问题,避免在上线后遭遇崩溃等灾难性事件。

Aggregate Report

Aggregate Report翻译为聚合报告,是JMeter常用的一个Listener。

添加路径:右键Thread Group或Test Plan > Add > Listener > Aggregate Report

配置了HTTP Request和Aggregate Report后运行,然后查看Aggregate Report,可以看到压测结果

Aggregate Report输出结果为:

相关字段说明:

 

90% Line的具体解释:

百分位数为统计学术语,如果将一组数据从大到小排序,并计算响应的累计百分位,则某一百分位对应数据的值就称为这一百分位的百分位数。

可表示为:一组n个观测值按数值大小排列如,处于p%位置的值称第p百分位数

90% Line:一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90%的数将小于等于12 。用在性能测试的响应时间也将非常有意义,也就是90%请求响应时间不会超过12 秒。

命令行执行

在测试服务器性能的时候,JMeter本身的客户端也会在一定程度上消耗本机的性能,对性能执行结果也会有一定影响,所以JMeter官方也建议,尽量使用命令行去执行,界面端的JMeter只是作为辅助工具。

所以,我们可以在客户端配置Thread Group、HTTP Request等最基本的配置,至于Aggregate Report、View Results Tree等与测试无关的就不配置了,尽可能的减小对本机性能的消耗,尽可能的保证性能测试的准确。

Jmeter客户端配置好基本的内容并保存



保存之后,打开命令行工具,切换到JMeter安装的bin目录下,命令行执行JMeter脚本

命令:jmeter -n -t xxx.jmx -l yyy.jtl

  • xxx.jmx是要被执行的JMeter脚本即在JMeter客户端保存的脚本

  • yyy.jtl为压测结果保存的文件,存放在命令行当前目录下

  • -n:非GUI模式,即在非客户端模式下运行JMeter

  • -t:指定待执行的JMeter脚本

  • -l:指定日志文件,即输出相关结果到指定的文件中,一般是jtl文件


命令行执行后,每隔30秒会打印出30秒内的运行情况和运行至今的运行情况,找到日志文件,打开JMeter客户端,添加Aggregate Report,导入日志文件,可以查看执行结果:

小tips

1.在命令行执行的时候,需要修改某个配置时,可以使用文本工具打开JMeter脚本文件(即jmx),然后根据经验去修改字段值,实在不行就再去JMeter修改

2.在命令行调试合理的虚拟用户数的时候,可以根据其打印出来的Avg、Min、Max、Err等字段粗浅的判断服务器性能情况去调整,然后再正式运行查看具体的情况

想进一步提升性能测试的效率?你可以尝试使用BlazeMeter,它提供了JMeter脚本的云端执行服务,支持大规模分布式测试,帮助你快速进行性能分析。

看懂JMeter报告其实并不难,关键是抓住几个核心指标:响应时间、吞吐量和错误率。通过合理的分析,性能测试“小白”也能成为性能调优的高手,为系统的稳定性保驾护航。

“性能测试不是为了找到问题,而是为了在问题发生之前解决它。” ——掌握JMeter,让你轻松读懂系统的性能秘密!

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

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

相关文章

多线程篇(其它容器- CopyOnWriteArrayList)(持续更新迭代)

一、CopyOnWriteArrayList(一) 1. 简介 并发包中的并发List只有CopyOnWriteArrayList。 CopyOnWriteArrayList是一个线程安全的ArrayList,对其进行的修改操作都是在底层的一个复制的数 组(快照)上进行的&#xff0…

基于STM32C8T6的CubeMX:HAL库点亮LED

三个可能的问题和解决方法: 大家完成之后回来看,每一种改错误都是一种成长,不要畏惧,要快乐,积极面对,要耐心对待 STMCuBeMX新建项目的两种匪夷所思的问题https://mp.csdn.net/mp_blog/creation/editor/1…

【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树

在安卓源码的设计中,将将屏幕分为了37层,不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析,整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服…

Semaphore UI --Ansible webui

1、安装python python下载地址 https://www.python.org/downloads/ 选好版本下载 wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tar.xz安装编译工具 sudo dnf groupinstall "Development Tools"安装依赖包 dnf install bzip2-devel ncurses-deve…

IDEA 常用配置和开发插件

件市场中搜索并安装“Git Integration”插件。 一、前言 在本篇文章中我会为大家总结一些我自己常用的配置和开发插件,此外也给大家提供一个建议,可以根据自己的项目需求和个人偏好选择适合的插件。另外,IDEA 也在不断更新,可能会…

哈希表、算法

哈希表 hash: 在编程和数据结构中,"hash" 通常指的是哈希函数,它是一种算法,用于将数据(通常是字符 串)映射到一个固定大小的数字(哈希值)。哈希函数在哈希表中尤为重要…

使用vue2+axios+chart.js画折线图 ,出现 RangeError: Maximum call stack size exceeded 错误

目录 效果图 解决方案 修正要点 效果图 修改前App.vue代码&#xff1a; <template><div id"app"><canvas id"myChart"></canvas></div> </template><script> import axios from axios; import { Chart, regis…

stm32 W25Q数据存储

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、cubemx配置二、keil中文件修改与配置三、几个重要函数的说明四、DMA方式传输&#xff08;待写&#xff09;总结 前言 W25Q128 容量为128位 128/8 16 也就…

Mac 上终端使用 MySql 记录

文章目录 下载安装终端进入 MySql常用操作查看数据库选择一个数据库查看当前选择的数据库Navcat 打开提示报错参考文章 下载安装 先下载社区版的 MySql 安装的过程需要设置 root 的密码&#xff0c;这个是要进入数据库所设定的&#xff0c;所以要记住 终端进入 MySql 首先输…

Linux基础-Makefile的编写、以及编写第一个Linux程序:进度条(模拟在 方便下载的同时,更新图形化界面)

目录 一、Linux项目自动化构建工具-make/Makefile ​编辑 背景&#xff1a; makefile小技巧&#xff1a; 二、Linux第一个小程序&#xff0d;进度条 先导&#xff1a; 1.如何利用/r,fflush(stdout)来实现我们想要的效果&#xff1b; 2.写一个倒计时&#xff1a; 进度条…

智能家居环境监测系统设计(论文+源码)

1. 系统方案 系统由9个部分构成&#xff0c;分别是电源模块、烟雾传感器模块、GSM发送短信模块、报警模块、温度传感器模块、人体红外感应模块、按键设置模块、显示模块、MCU模块。各模块的作用如下&#xff1a;电源模块为系统提供电力&#xff1b;烟雾传感器模块检测烟雾浓度&…

猫狗识别大模型——基于python语言

目录 1.猫狗识别 2.数据集介绍 3.猫狗识别核心原理 4.程序思路 4.1数据文件框架 4.2 训练模型 4.3 模型使用 4.4 识别结果 5.总结 1.猫狗识别 人可以直接分辨出图片里的动物是猫还是狗&#xff0c;但是电脑不可以&#xff0c;要想让电脑也分辨出图片里的动物是猫还是小…

C++面试3

一、常用设计模式 https://blog.csdn.net/m0_71530237/article/details/141140118?spm1001.2014.3001.5501 二、死锁以及解决方式&#xff1f; 死锁&#xff1a;一种常见的并发问题&#xff0c;发生在多个进程或线程因为竞争资源而陷入相互等待的状态&#xff0c;导致这些进…

Flutter之SystemChrome全局设置

一、简介 SystemChrome作为一个全局属性&#xff0c;很像 Android 的 Application&#xff0c;功能很强大。 二、使用详解 2.1 setPreferredOrientations 设置屏幕方向 在我们日常应用中可能会需要设置横竖屏或锁定单方向屏幕等不同要求&#xff0c;通过 setPreferredOrien…

JavaScript高级——作用域和作用链

1、概念理解&#xff1a; —— 就是一块“地盘”&#xff0c;一个代码所在的区域 —— 静态的&#xff08;相对于上下文对象&#xff09;&#xff0c;在编写代码时就确定了 2、分类 ① 全局作用域 ② 函数作用域 ③ 没有块作用域&#xff08;ES6有了&#xff09; 3、作用 …

WPF利用Path自定义画头部导航条(TOP)样式

1;新建两个多值转换器&#xff0c;都有用处&#xff0c;用来动态确定PATH的X,Y州坐标的。 EndPointConverter 该转换器主要用来动态确定X轴&#xff0c;和Y轴。用于画线条的。 internal class EndPointConverter : IMultiValueConverter {public object Convert(object[] val…

GIS 中的 3D 分析

GIS 中的 3D 分析 3D 分析已成为 GIS 的一个发展趋势&#xff0c;因为它能够更好地表现现实世界。 这不仅仅是为了得到漂亮的图片。对于某些类型的问题&#xff0c;3D 分析有时是解决它们的唯一方法。 3D 数据类型的激增也推动了这一需求。例如&#xff0c;LiDAR、BIM、UAV、…

VS Code 配置 Rust-Analyzer 报错

报错信息&#xff1a; Bootstrap Error" rust-analyzer requires glibc > 2.28 in latest build. 参考了好多地方&#xff0c; https://github.com/rust-lang/rust-analyzer/issues/11558 https://blog.csdn.net/aLingYun/article/details/120923694 https://rust-anal…

C++——⼆叉搜索树

文章目录 一、 ⼆叉搜索树的概念二、⼆叉搜索树的性能分析三、⼆叉搜索树的插⼊四、⼆叉搜索树的查找五、⼆叉搜索树的删除六、二叉搜索树的有序遍历七、⼆叉搜索树的实现代码八、二叉搜索树key与key_value的应用key的应用key_value的应用key/value⼆叉搜索树代码实现 一、 ⼆叉…