浅谈逻辑控制器之随机控制器

news2024/10/6 5:58:13

浅谈逻辑控制器之随机控制器

随机控制器(Random Controller)是众多逻辑控制器中的一种,它为测试脚本引入了随机性,提高了模拟真实用户行为的灵活性。

随机控制器的功能

随机控制器的作用在于从其直接子元素(通常是采样器)中随机选择一个进行执行。这意味着每次迭代时,选定的采样器都是不确定的,这有助于模拟那些用户操作路径不固定或存在多种可能路径的场景。与顺序执行相比,随机控制器可以更真实地反映具有随机访问模式的应用场景。

使用场景

● 模拟用户行为多样性:当需要模拟用户的随机浏览习惯时,如电商网站中用户可能随机访问商品页面。
● 压力测试不同功能:确保系统在面对不同功能请求的随机组合时仍能稳定运行。
● 增加测试覆盖范围:通过随机选择执行路径,可以在相同数量的测试运行中覆盖更多场景。

配置与使用

  1. 添加随机控制器:
    ○ 在JMeter的测试计划中,右键点击需要添加随机控制器的父级元素(如线程组),选择“添加” -> “逻辑控制器” -> “随机控制器”。
  2. 配置随机控制器:
    ○ 名称:给随机控制器一个描述性的名称,便于识别其用途。
    ○ 注释:可选地添加注释,说明该控制器在测试计划中的具体作用或目的。
  3. 添加子元素:
    ○ 在随机控制器下,添加想要随机执行的采样器或子控制器。每个子元素代表一个可能的选择。
  4. 执行逻辑:
    ○ 运行测试时,JMeter会在每个迭代中从随机控制器的子元素中随机挑选一个执行。如果需要执行所有子元素,可以考虑结合使用循环控制器或仅执行一次的控制器来达到期望的测试结构。

实例说明

我们编写如下脚本
在这里插入图片描述
线程组:循环次数设置为5,其他保持默认
循环控制器:循环次数设置为3
BeanShell 取样器1:编写如下代码

log.info("test1");

BeanShell 取样器2:编写如下代码

log.info("test2");

BeanShell 取样器3:编写如下代码

log.info("test3");

情况1:忽略子控制器设置:勾选

运行脚本,查看JMeter日志,打印如下

2024-06-27 12:00:55,629 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1
2024-06-27 12:00:55,629 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2024-06-27 12:00:55,629 INFO o.a.j.c.LoopController: iterationStart called on 循环控制器 with source org.apache.jmeter.control.RandomController@6932fb38 and iteration 0
2024-06-27 12:00:55,629 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-27 12:00:55,629 INFO o.a.j.u.BeanShellTestElement: test3
2024-06-27 12:00:55,645 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-27 12:00:55,645 INFO o.a.j.u.BeanShellTestElement: test2
2024-06-27 12:00:55,645 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-27 12:00:55,645 INFO o.a.j.t.JMeterThread: Thread is done: 线程组 1-1

随机到BeanShell 取样器1,虽然设置了3次循环,但是执行了一次,子控制器(这里是循环控制器)失效

情况2:忽略子控制器设置:不勾选

运行脚本,查看JMeter日志,打印如下:

2024-06-27 12:02:19,586 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1
2024-06-27 12:02:19,586 INFO o.a.j.c.LoopController: iterationStart called on 循环控制器 with source org.apache.jmeter.control.RandomController@1a0fafa9 and iteration 0
2024-06-27 12:02:19,586 INFO o.a.j.u.BeanShellTestElement: test2
2024-06-27 12:02:19,586 INFO o.a.j.u.BeanShellTestElement: test3
2024-06-27 12:02:19,602 INFO o.a.j.u.BeanShellTestElement: test3
2024-06-27 12:02:19,602 INFO o.a.j.u.BeanShellTestElement: test3
2024-06-27 12:02:19,602 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-27 12:02:19,602 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-27 12:02:19,602 INFO o.a.j.u.BeanShellTestElement: test1
2024-06-27 12:02:19,602 INFO o.a.j.t.JMeterThread: Thread is done: 线程组 1-1

随机到BeanShell 取样器1,设置了3次循环,但是执行了3次,子控制器(这里是循环控制器)有效

注意事项

● 忽略子控制器设置:某些版本的JMeter可能提供选项来决定是否将子控制器视为单个请求,这会影响随机选择的单位是单个采样器还是整个子控制器。
● 测试设计:虽然随机性增加了测试的现实性,但也可能导致测试结果的可重复性降低。因此,在需要高度一致性和可比性的测试场景中,应谨慎使用。

总结

随机控制器是增强JMeter测试计划多样性和真实度的有效工具。通过随机选择执行路径,测试者能够更好地模拟复杂和不可预测的用户交互模式,进而全面评估系统的性能和稳定性。正确应用随机控制器,结合其他逻辑控制器和配置,可以显著提升测试的全面性和有效性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1868741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“ONLYOFFICE 8.1版本评测:功能更强大,用户体验更佳”

最新版本的在线编辑器已经发布 ONLYOFFICE在线编辑器的最新版本8.1已经发布,整个套件带来了30多个新功能和432个bug修复。这个强大的文档编辑器支持处理文本文档、电子表格、演示文稿、可填写的表单和PDF,并允许多人在线协作,同时支持AI集成…

火山引擎ByteHouse:新一代云数仓必不可少的五大核心能力

从数据库领域的发展历程来看,分析型数据库已有 40 多年的发展历史,与数据库基本同时代。从OLTP 和 OLAP 的分支来看,分析型数据库支持了海量数据规模下的聚合性分析。尤其是随着移动互联网甚至 AI 等领域的发展,用户画像行为分析的…

C#校园在线投票系统-计算机毕业设计源码10577

摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,校园投票通过网…

AI产品经理如何快速接手一个新产品?

我们到一家新的公司,往往都有现成的产品需要你熟悉,这个对你来说就是一个新产品。 又或者说,公司要搭建一个新的项目,让你负责,需要你从0开始去接手,最终去上线,去推广,去盈利&…

项目实训-vue(八)

项目实训-vue(八) 文章目录 项目实训-vue(八)1.概述2.医院动态图像轮播3.页面背景板4.总结 1.概述 除了系统首页的轮播图展示之外,还需要在医院的首页展示医院动态部分的信息,展示医院动态是为了确保患者、…

pdf压缩,pdf压缩在线,pdf压缩在线网页版

当我们遇到PDF文件过大,需要压缩其容量大小时,通常是为了更方便地传输、存储或分享这些文件。PDF文件的大小可能因其包含的图像、字体等元素的数量和质量而有所不同。下面,我们将详细介绍压缩PDF容量大小的方法,帮助您轻松实现文件…

MySQL详细介绍:开源关系数据库管理系统的魅力

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

注册中心不知选哪个?Zookeeper、Eureka、Nacos、Consul和Etcd 5种全方位剖析对比

本文给大家讲解 5 种常用的注册中心,对比其流程和原理,无论是面试还是技术选型,都非常有帮助。 对于注册中心,在写这篇文章前,我其实只对 ETCD 有比较深入的了解,但是对于 Zookeeper 和其他的注册中心了解甚…

opencascade AIS_InteractiveContext源码学习6 management of active Selection Modes

AIS_InteractiveContext 前言 交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行…

docker-本地部署-后端

前置条件 后端文件 这边是一个简单项目的后端文件目录 docker服务 镜像文件打包 #命令行 docker build -t author/chatgpt-ai-app:1.0 -f ./Dockerfile .红框是docker所在文件夹 author:docker用户名chatgpt-ai-app:打包的镜像文件名字:1.0 &#…

【Sklearn驯化-聚类指标】搞懂机器学习中聚类算法评估指标,轮廓系数、戴维森堡丁指数

【Sklearn驯化-聚类指标】搞懂机器学习中聚类算法评估指标,轮廓系数、戴维森堡丁指数 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! &#…

Redis 7.x 系列【10】数据类型之有序集合(ZSet)

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 常用命令2.1 ZADD2.2 ZCARD2.3 ZSCORE2.4 ZRANGE2.5 ZREVRANGE2.6 ZRANK2.7…

ubuntu22.04 设置双屏

一 概述 最近把ubuntu18.04 升级到 22.04 双屏显示出来问题,在此记录下解决问题方案。二 解决方案 1 使用命令查看能检测到显示器 xrandr根据输出的信息,我们可以知道 HDMI-0 与 DP-0 是connected 。检测到两个显示器 2 设置输出显示器分辨率 由于我…

一款专为网页开发者设计的高效工具,它简化了响应式网站的开发流程

大家好,今天给大家分享的是一款专为web开发人员和测试人员设计的工具,它通过改进的web浏览器功能,帮助用户进行响应式web开发和兼容性测试。 主要功能 所有设备上的镜像用户交互:允许开发人员在单一设备上进行操作,实时…

十年磨一剑,华火电燃组合灶重磅问世,引领厨房新时代

十年磨一剑,华火研发团队经过不懈努力,成功将等离子电生明火技术与电陶炉红外线光波炉技术精妙融合,打造出的这款具有划时代是意义的电燃组合灶HH-SZQP60,终于在 2024 年6月震撼登场,该灶以其卓越的创新技术和独特的产…

MTK平台Android13实现三方launcher为默认

一、前言 目前有遇到客户的定制需求,希望使用三方的launcher作为默认的launcher使用,一般情况下直接将三方launcher通过内置到系统并通过overlay机制即可很方便的实现launcher的替换,但是存在一个问题,需要增加ROM的维护成本。本文通过设备在使用前联网通过后台下发三方lau…

花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?

我就是从培训机构学的网络安全,线下五六个月,当时学费不到一万,目前已成功入行。所以,只要你下决心要入这一行,过程中能好好学,那这8000就花得值~ 因为只要学得好,工作两个多月就能赚回学费&am…

Spring中的InitializingBean接口

使用方法 Slf4j Component public class MyBean implements InitializingBean {public MyBean() {log.info("> 构造方法");}Overridepublic void afterPropertiesSet() throws Exception {log.info("> afterPropertiesSet方法");} }Spring中的Bean注…

浏览器插件利器-allWebPluginV2.0.0.14-beta版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品,致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX插件直接嵌入浏览器,实现插件加载、界面显示、接口调用、事件回调等。支持谷歌、火狐等浏…

免费分享:2021年中国土壤类型空间分布数据(附下载方法)

Lambert等角圆锥投影是J.H.兰勃特于1772年所创,根据其与旋转椭球面的交线个数不同,将其分为兰勃特切圆锥投影和兰勃特割圆锥投影。圆锥面与旋转椭球的交线成为标准纬线。 数据简介 2021年中国土壤类型空间分布数据是基于全国土壤普查办公室1…