浅谈定时器之统一随机定时器

浅谈定时器之统一随机定时器

简介

JMeter的统一随机定时器(Uniform Random Timer)是一种用于在请求之间插入随机延迟的组件,旨在模拟真实用户操作间的不固定等待时间,从而更准确地模拟实际场景下的负载。这个定时器在每个线程循环中插入一个随机的时间间隔,增强测试的现实性和压力测试的有效性。

功能特点

  1. 随机延迟范围:允许用户设置一个随机延迟的最小值和最大值,JMeter会在这两个值之间随机选择一个时间间隔作为延迟。
  2. 统一性:虽然延迟是随机的,但“统一”意味着所有线程(虚拟用户)都会应用相同的随机算法,确保了测试的一致性。
  3. 独立性:每个线程独立计算延迟时间,不会因为其他线程的执行而影响自己的延迟时间。

配置步骤

  1. 添加定时器:首先,在JMeter测试计划中,选中需要添加定时器的取样器或控制器,右击选择“添加” -> “定时器” -> “统一随机定时器”。
  2. 配置参数:
    ○ 随机延迟最大值(Random Delay Maximum(in milliseconds)):设置延迟的最大时间,单位为毫秒。
    ○ Constant Delay Offset (in milliseconds):表示在随机延迟的基础上再增加一个固定的偏移量,进一步控制延迟时间。
  3. 应用与保存:配置完成后,保存并运行测试计划,JMeter将在指定的取样器前根据设定的参数插入随机延迟。

应用场景

● 性能和压力测试:通过模拟不同用户操作间的真实延迟,可以更准确地评估系统在高并发和复杂网络条件下的表现。
● 负载均衡测试:帮助识别系统在处理随机到达的请求时的稳定性和响应时间。
● 用户体验模拟:在进行Web应用或服务的性能测试时,通过模拟用户的不规律行为,使得测试结果更加贴近实际情况。

实例说明

首先我们编写这么一个脚本
线程组1参数保持默认,线程组1中的统一随机定时器设置随机延迟最大值(Random Delay Maximum(in milliseconds))为:1000,Constant Delay Offset (in milliseconds)设置为1000,BeanShell 取样器1-1、1-2、1-3中添加如下代码:

log.info("线程组1:${__time(yyyy-MM-dd HH:mm:ss.SSS,)}");

线程组2参数保持默认,线程组2中的统一随机定时器设置随机延迟最大值(Random Delay Maximum(in milliseconds))为:2000,Constant Delay Offset (in milliseconds)设置为3000,BeanShell 取样器2-1、2-2、2-3中添加如下代码:

log.info("线程组2:${__time(yyyy-MM-dd HH:mm:ss.SSS,)}");

运行脚本结果,查看JMeter日志如下

2024-06-18 16:46:33,450 INFO o.a.j.u.BeanShellTestElement: 线程组1:2024-06-18 16:46:33.450
2024-06-18 16:46:34,546 INFO o.a.j.u.BeanShellTestElement: 线程组1:2024-06-18 16:46:34.546
2024-06-18 16:46:35,677 INFO o.a.j.u.BeanShellTestElement: 线程组2:2024-06-18 16:46:35.676
2024-06-18 16:46:36,177 INFO o.a.j.u.BeanShellTestElement: 线程组1:2024-06-18 16:46:36.176
2024-06-18 16:46:36,177 INFO o.a.j.t.JMeterThread: Thread is done: 线程组1 1-1
2024-06-18 16:46:36,179 INFO o.a.j.t.JMeterThread: Thread finished: 线程组1 1-1
2024-06-18 16:46:39,718 INFO o.a.j.u.BeanShellTestElement: 线程组2:2024-06-18 16:46:39.718
2024-06-18 16:46:43,597 INFO o.a.j.u.BeanShellTestElement: 线程组2:2024-06-18 16:46:43.597

整理上述结果可以得到线程组1和线程组2每个取样器执行的时间为:

线程组1:
第一个取样器:2024-06-18 16:46:33.450
第二个取样器:2024-06-18 16:46:34.546
第三个取样器:2024-06-18 16:46:36.176
线程组2:
第一个取样器:2024-06-18 16:46:35.676
第二个取样器:2024-06-18 16:46:39.718
第三个取样器:2024-06-18 16:46:43.597

上述可得固定定时器的延迟时间是针对每个线程(用户)独立计算的,即线程1间隔是1至2秒,线程2间隔是3至5秒,也就是说,如果有多个线程并发运行,每个线程都会等待各自设定的延迟时间,而不是所有线程一起等待

注意事项

● 资源消耗:大量使用随机定时器可能会增加测试的不确定性和资源消耗,特别是在大并发测试中,请合理设置参数,避免不必要的资源浪费。
● 测试设计:应根据被测系统的特性和预期用户行为来决定是否使用及如何设置统一随机定时器,以达到最佳的测试效果。
● 结果分析:由于引入了随机因素,对测试结果的分析时需考虑这一变量,可能需要更多的样本数据来确保结果的可靠性。

结论

通过上述介绍和指导,您可以有效地利用JMeter的统一随机定时器来提升测试的真实性和有效性,为系统性能评估提供更加全面和精确的数据支持。

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

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

相关文章

Python飞跃计划:30天从Java开发者到Python高手

背景与动机 作为一名拥有一年Java开发经验的程序员,我在工作中遇到了技术瓶颈,无法在现有环境中实现技术性的突破。面对选择深入枯燥的技术细节或拓展技术广度,我决定选择后者。Python以其简洁的语法和广泛的应用场景,如脚本编写…

Python基础教程——20个让人眼前一亮的逻辑妙用!

文末免费赠精品编程资料~~ Python不仅仅是一种编程语言,它还是解决问题的艺术,充满了让人拍案叫绝的“小巧思”。通过这15个小技巧,你不仅能提升编程技能,还能让你的代码更加优雅、高效。让我们一探究竟吧! 1. 列表推…

终于把TikTok账号养好了!我是如何做的?

对于很多刚开始运营TikTok的新手小白来说,都会有一个同样的疑问,那就是:TikTok到底需不需要养号?这里明确告诉大家是需要养号的,今天就把我自己实操过的养号经验和策略总结出来,分享给大家。 一、什么是Tik…

2025年计算机毕业设计题目参考

今年最新计算机毕业设计题目参考 以下可以参考 springboot洗衣店订单管理系统 springboot美发门店管理系统 springboot课程答疑系统 springboot师生共评的作业管理系统 springboot平台的医疗病历交互系统 springboot购物推荐网站的设计与实现 springboot知识管理系统 springbo…

Character Animator 2024 mac/win版:赋予角色生命,动画更传神

Character Animator 2024是一款强大的角色动画制作软件,以其创新的功能和卓越的性能,为动画师、游戏开发者以及设计师们带来了全新的创作体验。 Character Animator 2024 mac/win版获取 这款软件采用了先进的骨骼绑定技术,使得角色动画的制作…

【JavaScript】什么是异步处理,如何异步处理?

概要 在 JavaScript 中,代码默认是同步执行的。这意味着每一行代码都是按照顺序执行的,前一行代码执行完毕后才会执行下一行。这种执行方式称为同步(synchronous)执行。 然而,在实际开发中,我们常常需要执行…

系统架构设计师【论文-2016年 试题4】: 论微服务架构及其应用(包括写作要点和经典范文)

论微服务架构及其应用(2016年 试题4) 近年来,随着互联网行业的迅猛发展,公司或组织业务的不断扩张,需求的快速变化以及用户量的不断增加,传统的单块(Monolithic)软件架构面临着越来越多的挑战,…

基于Java的冬奥会科普平台

开头语:你好,我是计算机学姐码农小野。如果你对冬奥会科普平台感兴趣或有其他技术需求,欢迎随时私信我。 开发语言:Java 数据库:MySQL 技术:Java、B/S架构 工具:MyEclipse、MySQL 系统展示…

Arcgis导入excel出现的问题

我手动添加了object-id字段也没有用,然后再excel里面又添加了一行,关闭后打开还是不行,额案后在网上看到了一种方法,很有效,予以记录。 1、我的文件是csv格式, 先在excel里面另存为xlsx格式 2、转换工具里…

【vue3 + element plus 】拖动排序实现(只能拖拽一次的问题、拖动后的位置不准确问题)

1.使用sortablejs插件 用于el-table列表拖动排序 import Sortable from sortablejs // 拖拽插件 mounted() { this.rowDrop() }, swap(arr, from, to) { // 在这方法中按需求修改排序规则即可if (from < 0 || from > arr.length || to < 0 || to > arr.length) r…

1 catboot:房价预测

学到的知识&#xff1a; 面对传统特征层面如何进行深度挖掘&#xff0c;衍生有价值的特征&#xff0c;让模型更好的理解数据&#xff1b;如何处理文本特征&#xff1b;如何对类别特征进行处理&#xff1b;类别特征与连续特征如何组合更加的高效&#xff1b;如何使用catboost, …

联华集团:IT团队如何实现从成本中心提升至价值中心|OceanBase 《DB大咖说》(十)

OceanBase《DB大咖说》第 10 期&#xff0c;我们邀请到了联华集团的CTO楼杰&#xff0c;来分享他如何思考 IT 业务价值&#xff0c;以及联华华商数据库的升级实践。 楼杰从大学毕业后就进入了联华工作&#xff0c;并一直扎根在近 20 年的&#xff0c;从一名底层的技术员成长为…

[每日一练]利用左右指定键连接实现经理的下属员工数量

该题目来自于力扣&#xff1a; 1731. 每位经理的下属员工数量 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 表&#xff1a;Employees----------------------- | Column Name | Type | ----------------------- | employee_id | int | | name …

【区块链】POS(Proof of Stake)权益证明算法深度解析

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 POS&#xff08;Proof of Stake&#xff09;权益证明算法深度解析引言1. POS基本…

Bash sleep随机时间

在 Bash 中&#xff0c;如果你想让 sleep 命令等待一个随机的时间&#xff0c;你可以使用 $RANDOM 变量来生成一个随机数&#xff0c;然后将其转换为秒数。但是&#xff0c;$RANDOM 生成的数字范围是从 0 到 32767&#xff0c;这可能对于你想要的等待时间来说太大了。 为了得到…

【代码随想录】【算法训练营】【第42天】 [1049]最后一块石头的重量II [494]目标和 [474]一和零

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 42&#xff0c;周二&#xff0c;坚持一下~ 题目详情 [1049] 最后一块石头的重量II 题目描述 1049 最后一块石头的重量II 解题思路 前提&#xff1a;最多只会剩下一块 石头&#xff0c;求此…

生命在于学习——Python人工智能原理(3.5)

三、深度学习 9、常见神经网络 常见的神经网络有卷积神经网络&#xff08;AlexNet、VGGNet&#xff09;、循环神经网络&#xff08;RNN&#xff09; 长短时记忆网络&#xff08;LSTM&#xff09;。 &#xff08;1&#xff09;AlexNet AlexNet于2012年由Hinton学生Alex提出&a…

SqlServer添加索引

1. 聚集索引&#xff08;Clustered Index&#xff09; 描述&#xff1a;表数据按照索引顺序实际存储。适用场景&#xff1a;数据经常需要排序或范围查询&#xff0c;比如按日期排序的查询。优点&#xff1a; 提高排序和范围查询性能。一个表只能有一个聚集索引&#xff0c;但可…

uniapp顶部导航栏实现自定义功能按钮+搜索框并监听响应事件

目录 第一步&#xff1a;先下载按钮需要展示的图标&#xff08;若不使用图标&#xff0c;直接使用文字可跳过这步&#xff09; 1、点击需要的图标&#xff0c;添加入库 2、点击旁边的购物车&#xff0c;在弹出的窗口中选择下载代码 3、解压下载的压缩包&#xff0c;将这几个…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑绿证—碳交易的多能互补综合能源系统电—热—气协同低碳优化调度 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…