了解性能测试的同学相信对并发这个词应该不会陌生,但该如何来测量被测系统最大能支撑多少并发,可能很多同学都感觉无从下手。编写压测脚本时,我们可以通过设置jmeter中的线程数来模拟用户访问系统接口,但此时接口的访问是有先后顺序的,如果被测系统的性能足够强大,也许上一个接口已经结束,下一个接口还没开始,所以并不能做到真正的并发。针对此种场景,我们需要借助一个控制元件来尽可能的模拟接口的并发并发请求——同步定时器,也叫集合点。
为什么说是尽可能的模拟真实场景下的接口请求呢,主要原因是同步定时器虽然可以拦截接口请求直到满足条件后才予以并发执行,但并不能保证所有的接口都是在同一时间到达被测系统。
同步定时器有两个参数可以设置,分别是模拟用户组的数量(Number of Simulated Users to Group by)和超时时间(timeout in milliseconds)。
模拟用户组的数量代表你本次设置需要当用户达到多少数量时,予以并发执行。例如:当我设置用户组数量为30,在启动jmeter后,当虚拟用户数未满30时,所有的接口请求都会在后台集合等待,只有当数量满足30时,才会予以并发执行。若此参数设置为0,则默认等于线程组中设置的线程数。
超时时间(毫秒)参数则代表当达到设定的时间后,若接口请求数量还未满足设置要求,则不再继续等待,予以并发执行。若此参数设置为0,则代表jmeter需要无条件等待设置用户组数量满足条件才予以并发执行。
设置合理性
1.线程组中的线程数和模拟用户组数量之间的关系,例如线程组中的线程数量设置为20个,但模拟用户组数量设置为30,且超时时间设置为0,则由于无法满足要求,jmeter将永远无法发送请求。
2.超时时间需要大于等于jmeter加载设置用户数的耗时,例如线程组中设置了10秒加载完200个线程,模拟用户组数量为100,系统每秒将加载20个接口请求,意味着至少需要花费5000毫秒才能达到模拟用户组数量,所以超时时间需要大于等于加载耗时。
关注点
1.同步定时器的摆放位置。jmeter中定时器的执行顺序是在取样器之前,也就是说不管同步定时器是放在取样器之前还是取样器之后,jmeter都会先执行同步定时器。且若线程组中存在多个接口请求的取样器,则同步定时器同时作用于这些取样器。若想只针对于某个取样器生效,可以将同步定时器移至取样器节点之下。
2.同步定时器仅对同一JVM下的线程生效,因此并不适用于分布式测试。
标签:定时器,性能,接口,并发,线程,测试,集合点,取样器,用户组 From: https://www.cnblogs.com/sherlock1059/p/17830601.html