当前位置: 首页 > news >正文

【性能测试】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.mrgr.cn/news/94050.html

相关文章:

  • 大模型架构记录3-1-Gradio 入门
  • 【FreeRTOS】FreeRTOS操作系统在嵌入式单片机上裸机移植
  • Maven的依赖管理
  • ubuntu 解决 DNS 代理设置错误,导致不能上网的 DoH、DoT问题
  • 统计登录系统10秒内连续登录失败超过3次的用户
  • 基于redisson实现接口幂等性
  • Jenkins链接私有仓库Failed to connect to repository,stderr: No ECDSA...的问题
  • bootloader相关部分
  • 通道注意力机制、空间注意力机制、混合注意力机制
  • 【Spring 事务】
  • PySide(PyQT),QGraphicsRectItem的setPos()和setRect()的坐标位置的区别
  • 【WRF-Urban】使用 LCZ 替换 WRF 运行中的 LUCC 数据
  • 【Yonghong 企业日常问题07 】 东方通TongWeb替代Tomcat的实战指南!
  • 如何使用logrotete定时切割mysql的慢日志
  • Android DUKPT - 3DES
  • shell编程——条件表达式和if判断
  • liunx磁盘挂载和jar启动命令
  • Vue3项目-大事件
  • 在资源有限中逆势突围:从抗战智谋到寒门高考的破局智慧
  • 瑞芯微RK3576(2)-调试过程中遇到的问题