赞
踩
在实际生活中大家肯定遇到过一种场景,就是在某一时间或某一时刻,某件商品进行抢购,相当于秒杀;但是用JMeter进行测试的时候,如何模拟这种场景?用一种组件就可以实现,定时器中的“同步定时器”。
官网解释: 同步定时器的目的是阻塞下称,直到X个线程被阻塞,然后立即释放。因此,同步定时器可以在各种情况下创建较大的瞬时负载。
界面显示: 如下所示。
注意:
验证同步定时器,作用,准备如下测试场景
序号 | 线程数(30) | 定时器等待线程 | 超时时间 | 预期结果 |
1 | 30 | 30 | 0 | 用户等待达到30个用户,同时并发发起请求 |
2 | 30 | 20 | 100 | 1、刚好超时100ms,且用户等待达到20个用户,同时并发发起请求。 2、等到20个用户,未超时,继续等到结束,再并发,这时用户数将大于30。 3、等到小于20个用户,又超过超时时间,等到的用户数可以小于30。 |
3 | 30 | 40 | 0 | 用户无法达到40个用户,线程会一直等待,不会停止。 |
4 | 30 | 0 | 0 | 定时器设置的用户等于线程组的用户,超时默认设置为0,用户同时并发。 |
背景: 当线程组中有多个请求,怎么实现不同请求的不同并发操作呢?
解决方案: 例如单个线程组下有两个请求,给每个请求增加同步定时器,每个定时器设置不同的并发数。
重点:线程数的参数 > 定时器的等待线程数。
序号 | 线程数(8) | 定时器等待线程1 | 定时器等待线程2 | 超时时间 | 预期结果 |
1 | 8 | 2 | 4 | 0 | 1、定时器等待线程1,总请求次数,8次,每次2个同时并发请求。 2、定时器等待线程2,总请求次数,8次,每次4个同时并发请求。 |
测试结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。