Jmeter体系结构-事务控制器
前言
在日常的性能测试工作中,我们往往只测试业务功能相关主要接口的数据请求和返回。
然而实际上用户在使用web应用时,可能会加载诸多资源:htmldom、cssdom、javaScript、ajax请求、图片等。从打开一个页面到界面渲染完成需要一定的加载时间,这个加载时间是衡量web性能的标准之一。web应用的快速响应,会给用户带来良好的体验。
一个web应用如果想要留住用户,必须在250ms内渲染界面或给用户提供视觉反馈。因此如果需要直观的衡量一个页面的加载时间,我们就用到了事务控制器。事务控制器会对应生成一个采样器,统计该控制器范围内所有测试元素执行的总时间。
例如,使用Jmeter录制脚本的时,Jmeter会抓取整个页面加载需要的所有请求,生成的事务控制J器下面包含所有子请求(Home Page,.jpg request,.gif request,.png request,.js request等)。执行完成后,Jmeter聚合报告会统计该控制器范围内所有接口响应总时间。
需要注意,事务控制器只有在其子采样器都执行成功的情况下才会显示成功。
事务控制器
Jmeter控制器添加层次结构:测试计划-->线程组-->事务控制器。
Jmeter控制器添加路径:Test Plan-->Add-->Threads(Users)-->Add-->Logic Controller-->Transaction Controller
事务控制器界面图:
Generate parent sample
【Generate parent sample】生成父样本,默认值为false。勾选该配置项,相关的子请求放置在事务控制器之下,聚合报告中不会看到该事务控制器所包含的所有子请求;详情如下:
不勾选任何选项:
查看结果树:
聚合报告:
勾选【Generate parent sample】
查看结果树:
聚合报告:
Include duration of timer and pre-post processors in generated sample
【Include duration of timer and pre-post processors in generated sample】生成的样本中是否包括计时器,预处理和后处理延迟。默认值为false。一般不建议勾选,因为勾选后会把一些额外时间算入执行结果总时间。
勾选【Include duration of timer and pre-post processors in generated sample】
查看结果树:
聚合报告:
小结:
如果需要进行页面性能测试,事务控制器是必不可少的利器,可以增加页面性能测试结果的准确性。
在接口测试时,也会经常用到事务控制器。因为有时一个业务需要关联多个接口才能完成。把这些接口统一归集到一个事务进行性能测试,得到的性能测试结果才会更加接近真实的业务场景。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)