jmeter之集合点

本文介绍了LoadRunner中集合点的作用,它可同步虚拟用户,使他们在同一时刻执行任务,如满足系统承受1000人同时提交数据的测试需求。还说明了在测试中添加定时器、设置并发数等操作,以及集合点位置、线程数、超时时间等设置的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合点:
集合点用以同步虚拟用户,以便恰好在同一时刻执行任务。在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求(拷贝于百度百科)。

“Step 1”–>添加–>定时器–>Synchronizing Timer–>设置并发数。
注意:集合点位置要放到集合的操作之前。

Number of Simulated Users to Group by:集合多少人后再执行请求(也就是执行的线程数)
注意:等同于设置为线程租中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。

Timeout in milliseconds:指定人数多少秒没集合到算超时(设置延迟时间以毫秒为单位)
注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去
线程数量无法达到"Number of Simultaneous Users to Group by"中设置的值,那么Test将无限等待,除非手动终止。
如果设置Timeout in milliseconds为10,表示等待10毫秒,若时间到达10毫秒时,还没到达指定人数,则不再等待,直接发送
在这里插入图片描述

原文:https://www.cnblogs.com/zhengna/p/8919830.html

### JMeter 中设置集合点(Synchronizing Timer)的使用方法 在 JMeter 中,可以通过 **Synchronizing Timer** 来实现类似于 LoadRunner 的集合点功能。该工具用于模拟多个线程在同一时刻发起请求的操作,从而验证系统的高并发处理能力。 #### 配置 Synchronizing Timer 实现线程同步 1. 在测试计划中找到需要添加集合点的目标采样器或控制器。 2. 右键点击目标位置 -> 添加 -> 定时器 -> Synchronizing Timer[^1]。 3. 配置 `Number of Simultaneous Users to Group by` 参数:此参数定义了需要聚集在一起并同时触发请求的线程数量。例如,如果将其设置为 5,则当有 5 个线程到达此处时,它们会一起发送请求[^3]。 4. (可选)配置 `Timeout in milliseconds` 参数:此参数指定了线程等待其他线程加入的最大时间。如果在此时间内未能达到指定的线程数,则已有的线程将继续执行后续操作而不会继续等待。注意,若将超时时间设为 0 并且未满足所需的线程数,测试可能会陷入无限等待状态[^2]。 #### 示例场景说明 假设我们需要模拟 10 个用户访问某个接口,并希望这些用户能够完全同时提交请求: - 创建一个线程组并将线程数设置为 10; - 在目标 HTTP 请求下添加 Synchronizing Timer; - 将 `Number of Simultaneous Users to Group by` 设定为 10; - 考虑到实际运行环境可能存在的延迟,在必要情况下设定合理的超时时间 (如 10 秒)[^4]。 以下是具体代码片段展示如何通过脚本形式控制这一过程的一部分逻辑: ```java // 假设这是 Java API 下调用 JMeter 测试元件的方式之一 StandardJMeterEngine jmeter = new StandardJMeterEngine(); HashTree testPlanTree = new HashTree(); ThreadGroup threadGroup = new ThreadGroup(); threadGroup.setNumThreads(10); // 设置线程数目为10 Timer syncTimer = new SyncTimer(); syncTimer.setProperty(TestElement.TEST_CLASS, "kg.apc.jmeter.timers.VariableThroughputTimer"); ((SyncTimer) syncTimer).setNumberOfSimUsersToGroupBy(10); testPlanTree.add(threadGroup); ``` #### 注意事项 - 确保所使用的 JVM 和硬件资源足以支持预期的大规模并发测试需求。 - 若跨多台机器分布式部署 JMeter,则需额外考虑网络延迟等因素的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值