【性能测试】Jmeter如何做一份测试报告(3)

 

本篇文章主要介绍Jmeter中下载插件(Jmeter  Plugins)

如何使用监听器插件,线程组插件,梯度压测线程组

测试报告需要去关注的数据,怎么看测试报告图表

目录

一:插件下载

1:下载地址

2:插件下载

3:下载两个插件

(1)监听器插件

(2)线程组插件

4:下载成功的标志

二:梯度压测线程组(Stepping Thread Group)

1:This  group  will  start

2:First  waitfor

3:Then  start

4:Next  add

5:thread  severy

6:using ramp-up

7:Then hold load for

8:Finally , stop

9:threads every

三:测试报告 重要数据

1:TPS吞吐量

2:响应时间

四:运行结果图

1:启动运行

2:退出阶段

五:全局观理解测试图

六:出具测试报告

1:测试报告

2:测试报告分析

(1)响应时间

(2)错误率(可靠性)

(3)吞吐量


一:插件下载

1:下载地址

Install :: JMeter-Plugins.org  附上下载链接地址

在压测场景中,我们通常为⼀点⼀点的逐步增加线程数,因此需要安装新的插件来⽀持线程数的配置。

通过插件管理⼯具下载其他插件:将该jar文件放到exe文件夹中后,此时我们的Jmeter工具就支持安装插件了,重启

2:插件下载

下载成功的标志,可以看到这个像蝴蝶一样的图标

3:下载两个插件

(1)监听器插件

点击Available

(2)线程组插件

这里临时修改了一下界面颜色,黑色太高冷了,阿华是屌丝

4:下载成功的标志

我们的监听器中多了很多选项

我们的线程组中多了很多的选项

二:梯度压测线程组(Stepping Thread Group)

重点理解图上三个打圈的参数 这里指的是 这个线程组中有20个线程,等待0秒后开始压力测试,一开始有0个线程,每3秒,增加5个线程进来,这5个线程需要在1s内启动完毕,

以上图数据为例

1:This  group  will  start

启动多少个线程,同线程组中的线程数

2:First  waitfor

等待多少秒才开始压测,⼀般默认为0

3:Then  start

⼀开始有多少个线程数,⼀般默认为0

4:Next  add

指的是下一次要额外增加的线程数量。例如,当前有 10 个线程在运行,设置 Next add 为 5,那么下一次线程数量会增加到 15 个。


5:thread  severy

一组线程(5个)执行完之后,等待3秒后再启动下一组线程

指的是在一组线程执行完之后,等待多长时间再启动下一组线程。也就是相邻两组线程启动之间的时间间隔。


6:using ramp-up

这一组(5个)线程,在1秒内均匀的启动

设置为 1秒,表示在 1 秒的时间内均匀地启动指定数量的线程。例如,设置线程数为 10 个,ramp-up period 为 1 秒,那么 Jmeter 会在 1 秒内逐步启动这 10 个线程,平均每秒启动 10 个线程 

7:Then hold load for

20个线程启动完成后,一直运行60s 

8:Finally , stop

9:threads every

解读——每隔1s,结束5个线程,可以看到这边是直降,与左边是有区别的

三:测试报告 重要数据

1:TPS吞吐量

全称Transactions per Second

2:响应时间

这里通常是一个折线图 

逆天,有时候并发数可能太多,造成莫名其妙的报错,那就在run一次

四:运行结果图

1:启动运行

活跃的线程数折线图

响应时间——由低变高

吞吐量——整体比较平稳

2:退出阶段

活跃的线程数,逐步下降

响应时间——中间部分比较高

吞吐量 老样子 四平八稳

五:全局观理解测试图

对应过来就是下面这条蓝色的线。

看第一个红色方框——我们的响应时间降低,吞吐量就上升了

再看第二个红色方框——我们的响应时间增大的时候,吞吐量就下降了。

这里其实可以得出——我们的响应时间和吞吐量呈现负相关的关系

这里细心的老铁会发现最后结束的的时候,为什么响应时间反而激增了呢?这是因为我们有一个线程请求一直没有得到响应,我们观察聚合报告,列表页,有一个最大的请求时间为59s,图标中的绿色最高峰也可以看出来。

六:出具测试报告

1:测试报告

JMeter测试报告是⼀个全⾯⽽详细的⽂档,它提供了关于测试执⾏结果的详细信息,帮助⽤⼾全⾯评估系统的性能并进⾏性能优化。这份测试报告也要交给我们的后端开发同学(如果有异常的话)

1:⽣成性能测试报告的命令

Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录
-n : ⽆图形化运⾏                  (可以理解成后台运行,有 点像Linux中的nohup操作!)
-t : 被运⾏的脚本
-l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件
-e : ⽣成测试报告
-o : 指定报告输出⽬录

举例:

开始执行——等待大概1min左右结束

最后生成一个first.jtl日志文件,这个不是重点

重点去我们创建的first文件中查看测试报告

双击index.html

静态数据,其实可以理解成我们的聚合报告

这里还有很多数据展示,在左边的菜单栏展开。

总结:我们测试人员,做出来测试报告本质上是从宏观角度去测试项目,去发现问题,但是不能排查问题,具体去解决问题还是我们后端开发人员去做。

2:测试报告分析

我们测试人员主要去干的事情还是要从这三方面进行分析

(1)响应时间

如果响应时间超过了请求,代表系统到了瓶颈,响应时间发生变化的原因——我们的系统不稳定啊,有时快有时慢,随着并发压力变大而慢慢变慢,响应时间变高

(2)错误率(可靠性)

高并发场景下,系统能否正常处理业务

要求:99.99%可靠  99.9999%(也就是我们常说的4个9——10w次请求只能出现一次错误)

错误率高的原因:

①接口请求错误

②服务器无法继续处理请求,达到了瓶颈

③后端系统限流

④熔断 

解释:防止因为某个服务的故障而整体崩溃。可以理解成及时止损——比如说给一个场景,电商用户支付场景,忽然微信支付失败率激增,超时严重,此时我们就先临时把微信支付这个方式先熔断掉,先保证我们整体的这个服务还是完好的(先保大头)

⑤降级

主动关闭一些非核心功能,以确保核心功能正常运行。比如说,某次大型直播,那么直播间显示的用户名称给成一个统一默认的名字

(3)吞吐量

①吞吐量越大,性能越好;吞吐量稳定或者变低,可能系统达到了性能瓶颈。

②吞吐量变化的规律

吞吐量波动很大的话,说明我们系统的性能不稳定;

吞吐量如果是慢慢变大,再趋于稳定,说明我们的并发量在上升,和并发量是强相关的

如果吞吐量慢慢变低,我们的并发量也在慢慢变低,说明我们的性能测试要结束了。

换一个角度,我们并发量在增,吞吐量变低,一般就是系统处理不过来这么多响应了,造成系统卡顿啊什么的。

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

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

相关文章

cocos creator使用mesh修改图片为圆形,减少使用mask,j减少drawcall,优化性能

cocos creator版本2.4.11 一个mask占用drawcall 3个以上,针对游戏中技能图标,cd,以及多玩家头像,是有很大优化空间 1.上代码,只适合单独图片的,不适合在图集中的图片 const { ccclass, property } cc._decorator;c…

AI重构SEO关键词布局

内容概要 在搜索引擎优化(SEO)领域,AI技术的深度应用正在颠覆传统关键词布局逻辑。通过机器学习算法与语义分析模型,智能系统能够实时解析海量搜索数据,构建动态词库并精准捕捉用户意图。相较于依赖人工经验的关键词筛…

泛微ecode的页面开发发送请求参数携带集合

1.在开发过程中我们难免遇见会存在需要将集合传递到后端的情况,那么这里就有一些如下的注意事项,如以下代码: // 新增action.boundasync addQuestion(formData) {var theList this.questionAnswerList;var questionAnswerListArray new Ar…

20250212:linux系统DNS解析卡顿5秒的bug

问题: 1:人脸离线识别记录可以正常上传云端 2:人脸在线识别请求却一直超时 3:客户使用在线网络 思路:

道路运输安全员考试:备考中的心理调适与策略

备考道路运输安全员考试,心理调适同样重要。考试压力往往会影响考生的学习效率和考试发挥。​ 首先,要正确认识考试压力。适度的压力可以激发学习动力,但过度的压力则会适得其反。当感到压力过大时,要学会自我调节。可以通过运动…

LLM - 白话RAG(Retrieval-Augmented Generation)

文章目录 Pre一、大模型的"幻觉"之谜1.1 何为"幻觉"现象?1.2 专业场景的致命挑战 二、RAG技术解析:给大模型装上"知识外挂"2.1 核心原理:动态知识增强2.2 技术实现三部曲 三、RAG vs 微调:技术选型…

探索现代 C++:新特性、工程实践与热点趋势

目录 一、现代 C 的关键特性与热点关联 二、精简代码示例解析 三、工程实践中的应用思考 四、总结与展望 近几年,人工智能、边缘计算与跨语言开发成为技术热点,而 C 作为高性能系统编程的主力军,也在不断进化。从 C11 到 C20,…

《HTML + CSS + JS 打造炫酷轮播图详解》

《HTML CSS JS 打造炫酷轮播图详解》 一、项目概述 本次项目旨在使用 HTML、CSS 和 JavaScript 实现一个具有基本功能的轮播图,包括图片自动轮播、上一张 / 下一张按钮切换、小圆点指示与切换等功能,以提升网页的交互性和视觉吸引力。 二、实现步骤…

257. 二叉树的所有路径(递归+回溯)

257. 二叉树的所有路径 力扣题目链接(opens new window) 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 思路:在叶子节点收割结果,如果不是叶子节点,则依次处理左右子树&a…

【架构差异】SpringとSpringBoot:Bean机制的深入剖析与自动配置原理

目录标题 SpringBoot框架中Bean机制的深入剖析与自动配置原理摘要1. 引言2. SpringBoot与Spring的架构差异2.1 从Spring到SpringBoot的演进2.2 SpringBoot中的Bean容器体系 3. SpringBoot的自动配置机制3.1 SpringBootApplication解析3.2 自动配置原理深度解析3.2.1 自动配置类…

CSDN博客:Markdown编辑语法教程总结教程(中)

❤个人主页:折枝寄北的博客 Markdown编辑语法教程总结 前言1. 列表1.1 无序列表1.2 有序列表1.3 待办事项列表1.4 自定义列表 2. 图片2.1 直接插入图片2.2 插入带尺寸的图片2.3 插入宽度确定,高度等比例的图片2.4 插入高度确定宽度等比例的图片2.5 插入居…

ChebyKAN0、ChebyKAN1 网络阅读

目录 ChebyKAN0 Chebyshev Polynomial-Based Kolmogorov-Arnold Networks: An Efficient Architecture for Nonlinear Function Approximation 参考文献 文章内容 文章详细结构 5. Experiments and Results 5.1 Digit Classification on MNIST 5.2 Function Approximat…

RK3588部署YOLOv8(2):OpenCV和RGA实现模型前处理对比

目录 前言 1. 结果对比 1.1 时间对比 1.2 CPU和NPU占用对比 2. RGA实现YOLO前处理 2.1 实现思路 2.2 处理类的声明 2.3 处理类的实现 总结 前言 RK平台上有RGA (Raster Graphic Acceleration Unit) 加速,使用RGA可以减少资源占用、加速图片处理速度。因此…

破局者登场:中国首款AI原生IDE Trae深度解析--开启人机协同编程新纪元

摘要 字节跳动于2025年3月3日正式发布中国首款AI原生集成开发环境Trae国内版,以动态协作、全场景AI赋能及本土化适配为核心优势。Trae内置Doubao-1.5-pro与DeepSeek R1/V3双引擎,支持基于自然语言生成端到端代码框架、实时上下文感知与智能Bug修复&…

【PyCharm】Python和PyCharm的相互关系和使用联动介绍

李升伟 整理 Python 是一种广泛使用的编程语言,而 PyCharm 是 JetBrains 开发的专门用于 Python 开发的集成开发环境(IDE)。以下是它们的相互关系和使用联动的介绍: 1. Python 和 PyCharm 的关系 Python:一种解释型、…

SNIPAR:快速实现亲缘个体的基因型分离与推断

SNIPAR:快速实现亲缘个体的基因型分离与推断 近日,英国剑桥大学研究团队在Nature Genetics上发表了最新研究成果——SNIPAR(SNP-based Inference of Pedigree relationship, Ancestry, and Recombination)。这一强大的工具可以帮助…

3.11记录

leetcode刷题: 1. 334. 递增的三元子序列 - 力扣(LeetCode) 方法一:使用贪心算法求解 class Solution(object):def increasingTriplet(self, nums):first nums[0]second float(inf)for i in nums:if i>second:return Truee…

阿里云操作系统控制台评测:国产AI+运维 一站式运维管理平台

阿里云操作系统控制台评测:国产AI运维 一站式运维管理平台 引言 随着云计算技术的飞速发展,企业在云端的运维管理面临更高的要求。阿里云操作系统控制台作为一款集运维管理、智能助手和系统诊断等多功能于一体的工具,正逐步成为企业高效管理…

大语言模型学习--向量数据库Milvus实践

Milvus是目前比较流行的开源向量数据库,其官网地址 Milvus 是什么? | Milvus 文档 1.Milvus简介 Milvus 是一种高性能、高扩展性的向量数据库。Milvus 提供强大的数据建模功能,能够将非结构化或多模式数据组织成结构化的 Collections。它支…

DeepSeek Kimi详细生成PPT的步骤

以下是使用 DeepSeek 和 Kimi 协作生成 PPT 的详细步骤,结合了两者的优势实现高效创作: 第一步:使用 DeepSeek 生成 PPT 大纲或内容 明确需求并输入提示词 在 DeepSeek 的对话界面中,输入具体指令,要求生成 PPT 大纲或…