1.线程组
1.1线程组的定义
进程:正在运作中的程序—QQ、微信、迅雷
线程:进程中的执行单元 一个进程包含多个线程 —下载 播放
线程组:按照线程性质对线程进行分组 --单个下载 批量下载 – 接口分组
线程组:就是一个线程组,里面有若干个请求;
线程:一个线程就是一个“虚拟用户”
请求:一个线程组里面有若干个请求。
例如:1个
线程组里面有10个
请求,
线程数为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群号:455787643【暗号:csdn999】
2.Synchronizing Timer(同步计时器)
同步计时器,用来模拟多用户并发,或者说更严格的并发场景。
用来设置集合点,阻塞线程,同步虚拟用户,直到指定的线程数量到达后,恰好在同一时刻执行任务,再一起释放,可以瞬间产生很大的压力。
注意:一般情况,并发用户数多少,同步定时器就写多少。(多少并发就要等多少个人到齐一起释放)
同步定时器的位置和影响:
(1)如果在线程组上添加“同步定时器”,那同步定时器中的规则将对每一个请求都有效。
(2)如果在单个请求下添加“同步定时器”,那么同步定时器的规则只对这个请求有效
参数说明:
Number of Simulated Users to Group by(模拟用户组数量):集合点个数 (执行的线程数),如果设置为0,等于设置为线程租中的线程数量。
Timeout in milliseconds(超时时间):指定线程数多少秒没集合到算超时(以毫秒为单位),默认为0。
-
- 如果设置为0,该定时器将会等待线程数达到了 “模拟用户组数量” 中设置的值才释放,不够的话就死等。
- 如果大于0,那么如果超过 “超时时间” 中设置的最大等待时间后还没达到 “模拟用户组数量” 中设置的值,Timer 将不再等待,释放已到达的线程。
- 上面两个参数如果都设置了值,则在实际中是哪个条件先达到,定时器先执行哪个,如第一个参数释放线程数量先达到,则不会管超时时间的值,timer 会释放;如果第二个参数超时时间先达到,则不会再等线程数量,按照目前超时的时间点集合的线程数,timer 释放。
- 如果设置为0,该定时器将会等待线程数达到了 “模拟用户组数量” 中设置的值才释放,不够的话就死等。
同步定时器(Synchronizing Timer)的超时时间设置要求:
-
- 超时时间 > 请求集合数量 * 1000 / (线程数 / 线程加载时间)。