jmeter(四)集合点

JMeter里面的集合点通过添加定时器来完成。

注意:集合点的位置一定要在Sample之前.

 

集合点:简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,拿那个用户和密码的地方,每到输入用户名和密码登录的地方,所有的虚拟用户都相互之间等一等,然后,一起访问。

1.接着之前创建的脚本,右键点击 线程组---->定时器---->Synchronizing Timer

这样子就添加了一个“集合点”,下面来设置一下集合点,设置延迟时间(以毫秒为单位)

2.我们添加完之后的列表是这个样子的


发现了没,我们集合点的位置不对,应该在登录的前面才对。怎么弄呢?

简单方法:直接移动Synchronizing Timer至登录的前面即可。

至此,集合点已添加完成。




### 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、付费专栏及课程。

余额充值