高级性能测试系列《20. 事务控制器、在性能测试中,看聚合报告的前提条件是?》

2022-12-02 21:48:18 浏览数 (2)

目录

  • 一、回顾
  • 二、事务控制器
  • 三、聚合报告/汇总报告
    • 1.没有网络瓶颈。
    • 2.并发用户数不变。

一、回顾

jmeter脚本性能转换:逻辑控制器。

用jmeter写脚本,可以去做接口测试、自动化测试、性能测试。

性能测试脚本,可以直接用于接口测试、自动化测试。

但是,接口测试、自动化测试脚本,不能直接用于性能测试,需要进行性能转换,才能用于性能测试。

性能测试,要尽可能得降低jmeter工具自身对资源的消耗。

接口测试、自动化测试脚本,一定会添加断言,断言的目的是判断是否有bug。

断言,这个元件在执行时,消耗来自jmeter工具启动后所分配的资源(自己电脑的cpu 内存相关的一些资源)。

这个是本机消耗的时间和资源,不是服务器消耗的时间和资源。

断言所消耗的时间和资源被算到服务器消耗的时间和资源里面去了。所以,性能测试,不要加断言。

接口测试、自动化测试:用Beanshell元件,写脚本时,只考虑功能能实现即可,不会过多去考虑元件使用的时间、资源消耗。

性能测试:Beanshell所有元件,能不用则不用。

如果,一定要写java代码来处理的,可以采用JSR223、{__jexl3(,)}函数、{__groovy(,)}函数替换掉Beanshell所有元件。

  • 元件的选择:
    • DDT
    • JSR223

运行模式:GUI 图形界面模式,这个模式只用于编辑调试脚本。

真正的性能测试用CLI模式(无图形界面模式),为了减少资源的消耗,从而向服务器发起更多的请求。

  • if条件控制器:
    • 默认勾选:Interpret condition as variable
    • 勾选了,要使用jexl3groovy函数,得出结果truefalse
    • 不勾选:Interpret condition as variable
    • 不勾选,条件框中运算过程(表达式)的结果为truefalse

二、事务控制器

在jmeter中,默认一个取样器执行一次请求,就是一个事务。

事务控制器:控制其子集的取样器(n个),合并为一个事务。

TPS:是服务器每秒处理的事务数。

在事务控制器下,挂载多个取样器,想要把多个取样器合并为1个事务,必须勾选Generate parent sample

1.性能测试中,是否要勾选Generate parent sample

性能测试,要先做单接口的性能测试,然后再做多接口的性能测试。

在做多接口合并的时候,需要勾选。

例1:事务控制器:已经勾选Generate parent sample

运行结果

例2:勾选了,就把前置处理器和后置处理器的时间都算到事务控制器里面去了,在聚合报告里面显示出来。

在性能测试中,需要先用单个取样器,做出某个接口的性能测试指标。

然后再出多个接口的性能指标,再使用事务控制器,勾选Generate parent sample,做出业务的性能指标。

把所有的业务都做出来,再合并,做出整个系统的性能指标。

2.如果领导要你得到某个业务的性能指标:

需要先梳理出这个业务所有的接口,然后对这个业务所有的接口进行性能测试,得到性能指标。

然后,再使用事务控制器,合并取样器,最终才得到业务的性能指标。

三、聚合报告/汇总报告

真正做性能测试时,所有的监听器,都要禁用。(监听器拿到数据展示出来是需要时间的)

在性能测试中,看聚合报告,有前提条件:

1、没有网络瓶颈。

因为,在很多时候,我们在看聚合报告时,会把吞吐量的值等价为TPS的值(没有网络瓶颈的时候才可以这样理解)。

怎么判断有没有网络瓶颈?

聚合报告最后两列:是吞吐率。

吞吐率与我们的带宽是有关系。

通过吞吐率,是可以看出是否存在网络带宽问题。

20Mb 100Mb

1Mb = 1 x 1024kb = 1024kb/8 = 128KB/s

吞吐率的值越接近128,可能就有网络瓶颈了。

企业的带宽和民用的带宽是不一样的。

民用的带宽:上行(入门理解为发送)比较窄,下行(入门理解为接收)比较宽。

企业级的带宽:上行(入门理解为发送)比较宽,下行(入门理解为接收)比较窄。

企业服务器,一般电商类的产品,也就几m带宽。

2、并发用户数不变。

负载测试时,并发用户数会随着时间变化而变化(每秒钟发20个人,30个人。1秒钟发的请求量都不一样),就不能看聚合报告。

线程组:10个线程,永久循环,持续时间60秒

事务控制器

运行结果:聚合报告

  • 每一行:都是一种事务。
每一列:
  • 样本:在刚才的过程中,所有的并发用户数,在一段时间中的总请求量。

单独看样本,是无法知道并发用户数、执行时长。

10r x 60s x pl(频率)= 351

pl(频率)=0.585

每一个人的吞吐量是0.585。因为没有网络瓶颈,tps值就是0.585。

  • 平均值...........最大值:这些都是响应时间。单位是毫秒ms。
  • 90%:所有的样本中,有90%的样本时间是小于等于这个时间的。

脚本链接

链接:https://pan.baidu.com/s/10rIeYWWfcdPmyNPqJG3-pw?pwd=1234 提取码:1234


文章中除标明“图片来自网络”的图片,皆为小编本人所画所截图,计算机知识都一样,如有雷同,纯属巧合。文章为清菡所编写,如有转载,请标明出处!

0 人点赞