控制请求数和并发

 

 

Thread Group

 

Number of Threads(users):     一个用户占一个线程,  200个线程就是模拟200个用户,通过多个线程模拟多个用户

Ramp-Up Period(in seconds):   设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程,假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。

(a). 如果设置成零,Jmeter将会在测试的开始就建立全部线程并立即发送访问请求, 这样一来就很容易使服务器饱和,更重要的是会隐性地增加了负载,这就意味着服务器将可能过载,不是因为平均访问率高而是因为所有线程的第一次并发访问而引起的不正常的初始访问峰值。这种异常不是我们需要的,因此,确定一个合理的ramp-up period 的规则就是让初始点击率接近平均点击率。当然,也许需要运行一些测试来确定合理访问量。如果要使用大量线程,ramp-up period 一般不要设置成零。

(b). 如果ramp-up period 过大也是不恰当的,因为将会降低访问峰值的负载,换句话说,在一些线程还未启动时,初期启动的部分线程可能已经结束了

(c). 合理的ramp-up period,首先推测一下平均点击率并用总线程除点击率来计算初始的ramp-up period
例如,假设线程数为100估计的点击率为每秒10次, 那么估计的理想ramp-up period 就是 100/10 = 10

 

Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。每个线程执行的次数

Loop Count(Loop Controler)*Number of Threads*Loop Count(group)=2*100*500

 

SycTimeType的目的是阻止线程,直到X个线程被阻塞,然后它们都被立即释放。因此,同步计时器可以在测试计划的各个点创建大的即时负载。(百度翻译)

其目的为阻塞线程,什么意思呢?就好似过桥一样,先在桥头将人挡住,直到人数阻塞到一定数量,释放障碍物,让人一起从桥上通过(速度恒定)

该元件只有两个指标:Number of Simultaneous Users to Group by:每次释放的线程数

          Timeout in milliseconds:超时时间,超时时间后达不到设置的线程数时,会丢弃继续请求

 

synchronized timer使用集合点。阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力。

1)、Number of Simulated Users to Group by

a.每集合够多少个模拟用户(线程)后发送一次测试请求;

b.如果设置为0,等同于设置为线程租中的线程数;

c.确保设置的值不大于它所在线程组包含的用户数(线程数)-- 一直集结线程而不发出测试请求,直到超时(如果设置了的话)。

例子说明:“Number of Simulated Users to Group by: 5”表示并发量是5。也就是说,Jmeter会等到5个线程都运行到此处时,这五个线程才开始执行后面的操作,先到达的线程将会在此等候。

2)、Timeout in milliseconds

a.超时时间,即多少毫秒后同时释放已集结的的线程,发送测试请求;

b.如果设置为0,Timer将等待线程数达到了"Number of Simultaneous Users to Group"中设置的值才释放。如果大于0,那么如果超过Timeout in milliseconds中设置的最大等待时间(毫秒为单位)后还没达到"Number of Simultaneous Users to Group"中设置的值,Timer将不再等待,释放已到达的线程。

3)、这里设置:

Number of Simulated Users to Group by :10

Timeout in milliseconds :500

posted @ 2019-07-09 22:51  garraw  阅读(129)  评论(0)    收藏  举报