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

JMeter教程|0到1学会接口性能压测第9课-JMeter事务

JMeter是一款开源免费的接口性能压测工具,在企业中用的较为广泛,上节我们学习了JMeter JSON提取器。今天分享JMeter事务,后续文章都会系统分享干货,带大家从0到1学会JMeter,另外还有教程等同步资料,文末加小编VX领取即可。

01事务的定义

在做性能测试的时候,有些操作或请求是逻辑上依赖相关的一个整体,不可分割;或者是为了方便度量 我们关注的一组操作或请求的性能,将要将其看做一个整体。

基于这些原因,我们把这些操作或请求放在一个事务控制器下,事务控制类似于简单控制器,不仅提供了元素分组的功能;除此之外,还可以度量其包含的所有测试元 素执行的响应时间。

只有当事务控制器所有的取样器都成功时,事务控制器才成功。

02事务控制器

使用事务控制器的典型场合:

1. 当要度量生成某个页面的整体性能时,不仅考虑页面请求本身,还需要考虑完成页面渲染所需要的image、CSS、js等资源,因为请求这些数据也会消耗系统,网络等资源,故需要页面请求与资源请求看做一个整体,放在一个事务控制器下;

2. 在做API或接口性能测试时,接口之间存在逻辑依赖关系,后一个接口会引用前面接口返回的结 果,故需要将这些接口看成一个整体,放在一个事务控制器下,度量性能才能接近真实场景;

3. 在前面的请求服务器返回了token,后面的请求需要使用token,这些请求有逻辑上的依赖关系, 需要看成一个整体,放在一个事务控制器下;

配置项说明:

Generate parent sample:

若勾选此项,在聚合报告等监听器中只显示事务控制器本身的数据,不会显示其下的每一个取样器请求的数据;反之,则会显示事务控制器和其下的所有取样器的数据。

事务控制器有两种模式的操作:

1. 事务控制器额外生成的取样器添加在其下所有的取样器后面;

2. 事务控制器额外生成的取样器作为其下所有的取样器的父取样器,称之为父模式。不选(默认)是以模式1操作;勾选则以模式2操作。

若以父模式操作,断言等可以被添加到事务控制器下,默认情况下会作用于事务控制器下的每一个单独的取样器以及整个事务取样器,为了限制断言的范围,可以考虑将多个取样器和断言同时放在同一个简单控制器下。

Include duration of timer and pre-post processors in generated sample:

事务控制器生成一个额外的取样器,用于测量执行嵌套测试元素所花费的总时间。默认不包含内嵌其中的定时器与前/后置处理耗费的时间。若勾选此项,则包含事务控制器下所有元素的处理时间。

03应用案例

这里以ECshop前台系统登录为例

第一步:登陆步骤:

s1.直接访问ECshop前台系统登录页面;

s2.在登录页面输入用户名及密码,点击登录;

s3.跳转到网站首页;

可以将步骤s1、s2、s3对应的操作看做一个事务。

第二步:运行结果:

具体操作较简单,不再细讲。

1.先以非父模式运行,查看结果树与聚合报告如下:

2.以父模式运行,查看结果树与聚合报告如下:

下期分享JMeter集合点知识,敬请关注!

http://www.jsqmd.com/news/1329674/

相关文章:

  • 5000+戴森球计划工厂蓝图:从新手到大师的生产力革命
  • 鸿蒙 6.1 API 23 开发坑系列篇 1:ArkUI.modifier 装饰器坑——attributeModifier + AttributeModifier<T> 状态化节点修改器根因
  • 终极Windows热键冲突检测指南:Hotkey Detective一键找出占用程序
  • 终极Python调试指南:nvim-dap-python插件让Neovim调试效率提升10倍
  • 如何在5分钟内为Audacity免费添加AI音频处理能力:OpenVINO插件完整指南
  • EVERSPIN替代方案netsol串行STT-MRAM芯片
  • 3大平台通用!UniHacker:解锁Unity专业版功能的终极解决方案
  • 腾讯面试:10 亿用户签到记一年,怎么算「连续 30 天」?
  • AI小程序创业陷阱大起底(92%新手踩坑的3个致命错误)
  • 太原除甲醛公司甲醛检测测评推荐:康之居除甲醛标准、流程、避坑指南 - 信誉隆金银铂奢回收
  • GiraffePlayer性能优化:CPU架构裁剪与轻量级APK构建技巧
  • 2026年最新版Python安装教程
  • 告别下载烦恼!全平台资源下载神器res-downloader让你轻松获取视频号、抖音、小红书等热门内容
  • 【Linux】二十八.线程篇五《Linux多线程编程:线程同步之条件变量》---详解
  • HarmonyOS 应用开发《掌上英语》第89篇:短信服务通知模块实现
  • Buzz:如何在本地实现专业级音频转录和翻译?
  • 单片机毕业设计-基于 L293D 驱动的充电式红外遥控智能小车设计 基于单片机的 7.4V 锂电供电红外避障小车研发(022201)
  • 政企档案升级实操:档案系统定制开发如何搭配驻场服务高效落地
  • NETSOL MRAM芯片RAID系统应用方案
  • 5分钟彻底告别Windows臃肿:Win11Debloat终极优化指南
  • PDF补丁丁多语言OCR技术解析:如何实现20+语言的高效文本识别
  • 为什么92.7%的AI 3D生成项目卡在UV重拓扑?资深TD曝光内部验证过的5步自动化修复协议
  • 鼠标连点器MouseClick:跨平台自动化点击工具完整指南
  • 泰安除甲醛公司甲醛检测测评推荐:康之居除甲醛标准、流程、避坑指南 - 信誉隆金银铂奢回收
  • TG 基础科普|厘清开发者经常混淆的几个核心概念与误区
  • Next.js Blog Boilerplate核心功能解析:Markdown支持与语法高亮全攻略
  • 从0到1开发flatten.nvim插件:核心模块设计与API实现详解
  • 从OpenClaw源码泄露看AI智能体框架的安全风险与加固实践
  • Torch-RecHub模型部署教程:ONNX导出与向量索引,从训练到生产环境一键部署
  • 面试官:LangChain 能做 Agent,为什么还需要 LangGraph?