JMeter 脚本技术(集合点)

集合点,顾名思义就是集合的地方。为什么脚本需要集合点呢?举个栗子:

我们平时上某宝或者某东等网站购物时经常遇到限时抢购的活动,限购时间到了之后,商品一眨眼就被抢购一空,没抢到的就开始骂爹骂娘了......商品一眨眼就被抢购完,大家应该能想到为什么了。其实在活动的背后可能有成千上万的消费者在虎视眈眈着这些活动商品,那手心出汗的手紧紧握着鼠标等待抢购时间的到来,时间一到就开始猛点抢购商品的按钮。

这是生产环境用户实际的操作情况,在产品功能上线之前,我们测试人员也应该要模拟这种实际的现象去测试抢购活动的功能,防止产品上线后在真正开始活动时出性能问题。那这个如何测试呢?

先说个大家不太相信的栗子,笔者之前听朋友说他们公司的产品在最初上线时碰到过这样的情况,大量用户同时操作系统某部分功能导致系统崩溃。然后公司的领导安排公司所有人加班同时去操作这些功能,看能不能找出问题。听完你敢说你相信?当然,这个是很久之前的故事了,现在应该不会有公司这么干了。

接下来我们来学习一下如何用 JMeter 模拟这种大量用户同时抢购的操作。在 JMeter 里面,可以通过设置固定定时器 Synchronizing Timer 来实现集合点的功能。Synchronizing Timer 的目的是阻塞线程,直到阻塞了 X 个线程,然后一次释放所有线程。因此,Synchronizing Timer 可以在测试计划的各个点上创建即时负载。譬如,我们要模拟大量用户同时操作某个请求,可以在该请求下添加 Synchronizing Timer 。

JMeter 脚本技术(集合点)_第1张图片

Synchronizing Timer 的 Grouping 下有两个配置项:

  • Number of Simultaneous Users to Group by : 如上图所写,当集合的用户达到10个时,释放等待的用户。

    注意:这里设置的集合用户数应当小于等于线程组中设置的虚拟用户数。

  • Timeout in milliseconds : 当集合的用户永远达不到10个时不可能让用户一直在等待,所以这里是一个超时释放用户,即当用户等待了10秒后还没有集合10个用户,这个时候也不再等待,集合了多少个用户就释放多少个。

    注意:超时时间单位是毫秒。

像这种设置集合点模拟大量用户同时去操作某个请求的做法,其实就是我们平时所说的并发测试

你可能感兴趣的:(JMeter 脚本技术(集合点))