jmeter--监听器组件
以下介绍jmeter中几种常用的监听器组件,主要包括:聚合报告、用表格察看结果、断言结果、jg@gc-response times over time、jg@gc-connect times over time、jg@gc-transactions per second 、察看结果树(这个比较简答,不做介绍了);部分组件会介绍一些自己在工作中的使用场景,有些组件在学习和使用过程中存在的疑惑和思考也会记录在这里。
1、 聚合报告
下方xmind截图,为聚合报告中每一项代表的意思。其中加粗项为接口功能和性能测试中经常关注的项。
2、用表格察看结果
下方xmind截图,为用表格察看结果中每一项代表的意思。其中加粗项为接口功能和性能测试中经常关注的项。
问题1:为什么有的connect time 是0呢?
思考1:一般第一次请求建立tcp 连接后,后面的请求就不会再建立tcp 连接,所以后面的connect time 为0, 但是是每隔多久会再次建立连接呢? 我这边看了一下一般是每隔2的时候 请求的connect time不为0, 那是不是每隔2s 再重新建立一次tcp。
如下截图,是http请求中的keep-alive 解释,最后说到 keep-alive 连接的时间长短是由服务器决定的。后续可以咨询一下开发,这个间隔是不是2s,为什么设置的这个时间这么短?
3、 jp@gc-response times over time
即图形化显示响应时间,这里的响应时间是指tcp连接时间+服务器处理请求的时间(即用表格查看结果中的 sample time 或latency值)
此监听器会自动采集接口的响应时间,并图形化展示出来(如下截图,我跑了1000个样本,但图像化展示的时候,并没有把这1000个样本的响应时间都图形化展示出来,因为是抽取出来展示的。)
组件的settings 可以对图形展示进行配置,
其中:type of graph中的aggregated display,all samplers conbined 勾选后,即将多个请求的的响应图形线合并成一条线,如下图所示,是上图的合并结果。(我计算了一下,这里合并成一条线的逻辑是取得平均值:在A时间点,请求1的响应时间是30,请求2的响应时间是21, 合并后的图形中在A时间点的响应时间是26.2)
type of graph中的detailed display,one row per sampler ,就是每个请求都会显示属于自己的响应线,默认选此值。
type of graph中的 use relative times 勾选时 ,表示使用相对时间(即图形的横坐标原点是从0开始),如果use relative times不勾选,则表示使用的是绝对时间(即图形的横坐标原点是从当前时间开始),默认是勾选状态
其他配置参数的意思如下:
4、jp@gc-connect times over time
图形化显示请求建立连接时间(即用表格察看结果中的connected time的值图形化展示了), 可以在压测、稳定性测试中,看一下请求建立连接花费的时间的一个趋势,有没有增长的趋势。当请求出现connectionTimeOut错误时,则图形中connectTime值就等于连接超时的时间。
Settings 中的配置,同jp@gc-response times over time,这里不再做讲解。
问题1: 当我的请求执行非常快时且连续不停的发请求时(比如请求一般二三十毫秒就响应完成),这时候,看到的图形化展示的结果,和用表格查看结果中的结果是不一致的。例如下图
我的猜想:因为网上搜到说,jp@gc-connect times over time这个组件是展示的平均时间,那有可能是在某个时间点抽样时,抽到了多个请求,比如抽到了5个请求,其中一个请求的连接耗时时70ms,另外四个请求的连接耗时是0ms, 那这5个请求的平均连接耗时是70/5即12ms,则此时间点的抽样结果就是12ms
当我请求前加一个固定定时器(固定500ms、1m等),则jp@gc-connect times over time中显示的结果就和用表格察看结果中的值是一致的了。
5、 jg@gc-transactions per second
图形化显示tps值(每秒事务数)即聚合报告中的throughput值的图形化显示。
通过此组件可以观察接口在不同时间点的tps值,以及tps值得变化趋势。
同时在测接口得最大吞吐量时,也会用到此组件来找到接口吞吐量的拐点值。
Settings的配置同jp@gc-response times over time,这里不再做讲解
6、 断言结果
会将每个请求的断言结果显示在这里面,断言失败的会显示在这里,
断言结果会显示所有类型的断言组件(包括json断言、xpath断言、响应断言等14种断言)。