Jmeter线程组和同步定时器!_线程数和synchronizing timer

请求
线程数为10个,跑完后得到:

理解为:(10个线程数)10个人,每个人都要跑这10个请求,所以:10*10=100:

并发数:100;线程数:10

PS:线程组也可以看作是一个虚拟用户组。线程组中的每一个线程都可以理解为一个虚拟用户。

1.2接口分组:

接口分组 http请求------对应----线程 线程组

顺序执行:按照线程的启动顺序挨个执行 ----线程组内顺序执行

并发执行:多个线程同时执行 特定:执行结束顺序和线程的启动顺序不一定一致 —线程组间并发执行

​线程数5:–模拟用户数 5个用户

时间(秒数)10:指定时间内启动所有线程数,10秒钟之内启动5个用户(区间内)

循环次数3:单个用户访问次数 3 ,每个用户执行3次

1.3线程组的区域

区域一:在采样器失败后怎么处理(LoadRunner里面也有类似的运行设置选项,对比去学习):

1、continue:继续执行接下来的操作;

2、Start Next Thread Loop:开始下一次循环;

3、stop Thread:停止线程,退出该线程(不再执行此线程的操作);

4、stop Test:等待当前执行的采样器结束后,结束整个测试;

5、Stop Test Now:马上停止测试;

区域二:线程属性:

1、Number of Threads(users):线程数,相当于模拟的用户数量;

2、Ramp-up Period(in seconds):达到指定线程需要的时间,例如线程数为100,时间设定为10s,那么就是10s加载 100个线程,每秒启动的线程数=100/10=10;

3、Loop Count:如果填具体的数值,就是循环对应的次数;如果选择“Forever”,则一直执行下去,直到手动停止;

4、Delay Thread creation until needed:延迟线程创建,直到需要才创建。

区域三:调度器配置:

需要选中调度器(scheduler),调度器配置才生效。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

2.Synchronizing Timer(同步计时器)

同步计时器,用来模拟多用户并发,或者说更严格的并发场景。

用来设置集合点,阻塞线程,同步虚拟用户,直到指定的线程数量到达后,恰好在同一时刻执行任务,再一起释放,可以瞬间产生很大的压力。

注意:一般情况,并发用户数多少,同步定时器就写多少。(多少并发就要等多少个人到齐一起释放)

同步定时器的位置和影响:

(1)如果在线程组上添加“同步定时器”,那同步定时器中的规则将对每一个请求都有效。

(2)如果在单个请求下添加“同步定时器”,那么同步定时器的规则只对这个请求有效

参数说明:

Number of Simulated Users to Group by(模拟用户组数量):集合点个数 (执行的线程数),如果设置为0,等于设置为线程租中的线程数量。

Timeout in milliseconds(超时时间):指定线程数多少秒没集合到算超时(以毫秒为单位),默认为0。

    • 如果设置为0,该定时器将会等待线程数达到了 “模拟用户组数量” 中设置的值才释放,不够的话就死等。
      • 如果大于0,那么如果超过 “超时时间” 中设置的最大等待时间后还没达到 “模拟用户组数量” 中设置的值,Timer 将不再等待,释放已到达的线程。
      • 上面两个参数如果都设置了值,则在实际中是哪个条件先达到,定时器先执行哪个,如第一个参数释放线程数量先达到,则不会管超时时间的值,timer 会释放;如果第二个参数超时时间先达到,则不会再等线程数量,按照目前超时的时间点集合的线程数,timer 释放。
同步定时器(Synchronizing Timer)的超时时间设置要求:
    • 超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)。

同步定时器的超时时间, 是向线程组发送相应模拟用户数的时间

例如:

线程组设置的线程数为10, Ramp-Up时间为5s, 循环次数为10;

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

片转存中…(img-TszKhAIm-1719229768463)]
[外链图片转存中…(img-lTjch90J-1719229768464)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

### JMeter 线程组的配置与使用方法 JMeter线程组是性能测试的核心组件之一,它定义了如何模拟用户负载以及请求发送的方式。以下是关于 JMeter 线程组配置使用的详细介绍: #### 1. 基本概念 JMeter 线程组是一个测试计划的基础单元,所有其他元件都需要嵌套在至少一个线程组中运行。每个线程代表一个虚拟用户,这些线程可以并行执行任务[^1]。 #### 2. 主要参数说明 以下是一些常见的线程组参数及其作用: - **Number of Threads (users)**:表示需要模拟的用户数量,即并发线程的数量。 - **Ramp-Up Period (in seconds)**:指启动全部线程所需的时间间隔(以秒为单位)。例如,如果有 10 个线程,并且 Ramp-Up 时间设为 10 秒,则每秒钟会启动一个新的线程[^3]。 - **Loop Count**:控制每个线程重复执行采样器操作的次数。如果设置为无限循环 (`Forever`) 或者勾选 `Scheduler` 并设定结束时间,则可以根据需求灵活调整测试持续周期[^2]。 #### 3. 进阶功能——自定义线程组 为了更精确地控制流量模式,可以通过安装插件扩展标准线程组的功能。比如 Custom Thread Groups 提供多种预定义模板来实现复杂的业务逻辑仿真,像阶梯型增长、脉冲波形等特殊场景下的压力施加方式都可以轻松完成配置。 #### 4. 同步定时器的应用 当涉及到某些特定情况下需让多个请求同时发生时,可利用 Synchronizing Timer 来协调不同线程之间的行为动作。需要注意的是,在实际应用过程中应合理规划其相关属性值以免造成不必要的延迟或者资源浪费现象出现。例如,“超时时间”的计算公式可以帮助确定合适的等待上限[^4]: \[ \text{超时时间} > (\text{请求集合数量} * 1000) / (\text{线程数} / \text{线程加载时间}) \] ```python # 示例 Python 计算脚本用于估算同步定时器的最佳超时时间 def calculate_timeout(requests, threads, ramp_up): thread_load_time = ramp_up / threads timeout_ms = requests * 1000 / (threads / thread_load_time) return int(timeout_ms) requests_count = 50 thread_number = 100 rampup_period_seconds = 60 optimal_timeout = calculate_timeout(requests_count, thread_number, rampup_period_seconds) print(f"Optimal Timeout Value: {optimal_timeout} ms") ``` 以上代码片段展示了如何依据给定条件动态得出推荐的同步定时器超时数值。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值