测试场景:某一接口每秒并发N个请求,持续60秒。
误区:未深度研究jmeter并发测试的同学,经常通过设置线程数一步到位完成单个接口的压力测试,而不知执行过程中的并发并不符合初衷,可通过添加不同维度的定时器提高并发准确率。
1、线程设置
·线程组:用户数,在Ramp-up时间内(包括循环数),即同时在线用户数。
· Ramp-ups时间(秒):N秒跑完设置的线程数,决定多长时间启动所有线程。
· 循环次数:
1.1、线程组循环N次,一般并发设置成1。(例:设置线程组为5,循环10次,总共有50 个请求),第二次循环基础在第一次启动时就跟着启动了。也就是说,在5秒内总共启动10*2个线程组实例。那么也就是说循环开始的时间几乎和第一次启动时间相同。
1.2、循环是为了让抽样更多,模拟客户端用户登录点击操作进行线程大量发起并持续性循环发起,线程组实例启动后它是需经过线程组内部的各个步骤请求来完成的,当前一个组织还没有走完,可能第二个又来了直第N个结束,那中间就会产生N个交集,以模拟达到并发数的测试。
结论:并发数=(线程数*循环次数)/ramp-Up
· 调度器-持续时间:持续压测N秒
2、同步定时器
· 原理:英文Synchronizing Timer,多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,达到集合点的作用。
· 模拟用户组的数量:集合点触发的线程数。
· 超时时间:如果设置为0,线程将会等待线程数达到了设置的值才释放。如果线程数不足集合点中设置的数,就会一直处于等待当中。如果设置时间大于0,那么如果超过设置的最大等待时间后还没达到模拟用户组中设置的值,线程组将不再等待,释放已到达的线程。
3、准确的吞吐量定时器
· 原理:控制吞吐量,根据吞吐量在做计时器(到了多少量就发请求),控制请求的速度和个数。
· 目标吞吐量(每个“吞吐期”的样本):Target Throught,目标吞吐量。
· 吞吐量周期:Throught Period,在多长时间内发送Target Throught指定的请求数(以秒为单位)。
· 测试持续时间(秒):Test Druation,指定测试运行时间(以秒为单位)。
· 批处理中的线程数:Number of threads in the bath,用来设置集合点,等到指定个数的请求后并发执行。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理