场景设置

意义

设置场景就是模拟用户的真实行为对系统的操作而设计的场景,设计原则就是最大程度的贴近用户的真实操作,另外需要严格的和实际业务系统相联系,按照合适的比例去设计场景。

设置场景

概要

JMeter 是通过线程组的设置来完成场景设置的,有些复杂场景需要逻辑控制器的参与,但是一般情况下不需要(前面讲过,每多选择一个原件,其实本身就会对性能造成影响)。

具体设置

下图即是我们设置场景的主界面:

下面对其界面配置的所有信息进行说明。

线程组
  • 名称:原则上随意起,建议起个有意义的名字能够表示出业务含义;
  • 注释:一般情况下忽略不计,可以不填写。
在取样器错误后要执行的的动作

就是线程组内某一个请求出现错误后的异常处理方式。

  • 继续:某一线程的某一请求出错后继续运行,即忽略本次错误继续执行;
  • Start_NextThread loop:进行下一次线程循环,可以理解为 for 循环中的 continue;
  • 停止线程:当某一线程失败或报错后停止本线程,类似于 LoadRunner 中的停止该 VuGen;
  • 停止测试:某一线程某一请求失败后,停止所有线程,也就是停止本次测试,但不时立即停止测试,是在本场景中其他线程执行迭代结束后,停止本次测试;
  • stop Test Now:马上停止本次测试,不管其他线程是否执行结束。

通常情况下选择继续,很显然,一次性能压测完毕,有成功、有失败才正常。请注意,无论任何测试我们都不可能将 bug 全部发现,肯定都是尽力达到一个可以认可、接受的范围内即可。

线程属性

(1)线程数:虚拟用户数,上图示例中就是20。

(2)Ramp-Up period:即为场景加载的策略,设置的虚拟用户数需要多长时间全部启动。如果线程数为20,时间为10,也就是说每秒启动2个线程。

(3)循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为10,那么每个线程发送10次请求,总请求数为 20 × 10 = 200。

(4)如果勾选了永远,那么所有线程会一直请求直到停止;不勾选永远默认,总的请求运行时间为 10 × 10 = 100 秒。

(5)Delay Thread creation until needed:选择该项,线程在 Ramp-up period 的间隔时间启动并运行,如20并发线程,10秒的 ramp-up period 时间,那么1秒种启动2个线程并运行采样器中的请求。如果不勾选,测试计划启动所有线程(20个)为 new 状态,但不立即运行采样器(sampler)中的请求,是按照 ramp-up period 时间来运行的,如20个线程,ramp-up 的时间是10秒,那么每秒会有2个线程有 new 状态转为 Running,并执行采样器中的请求。在实际测试场景设置时,选不选该项都不会影响测试结果。二者的区别是勾选线程是在间隔时间内建立启动并运行,不勾选是先建立所有线程然后按间隔逐步执行。

(6)调度器:可以更灵活的设置运行时间等。

务必需要记住的是线程组、Ramp-Up period、循环次数三者满足如下等式:

  • 线程数 ÷ Ramp-Up period:即为线程增加的策略,每秒增加多少个线程;
  • 线程数 × 循环次数:即为请求的所有次数;
  • Ramp-Up periodv × 循环次数:即为运行持续的总时间。
调度器设置(一般情况下全部默认,不做特殊设置)

(1)持续时间:表示脚本持续运行的时间,以秒为单位,例如脚本模拟用户持续不断登录1个小时,你可以在文本框中填写 3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。

(2)启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。例如,你的测试场景需要再另外一个场景结束后开始,上一个场景需要10分钟后结束,那么可以再启动延迟中设置601秒,点击启动,就可以在上一个场景结束后,开始本次测试场景。

(3)启动时间:表示我们希望脚本开始启动的时间,一般不用设置。

(4)结束时间:与启动时间对应,表示脚本结束运行的时间。

需要注意的是,如果设定了调度器的持续时间,比如是1200秒(半个小时),而我们设置的持续运行的总时间却只有:线程数 × 循环次数 = 20 × 10 = 200 秒,此时我们就应该将循环次数勾选为永远,不然性能测试指标就会失真。

总结

务必掌握线程属性的配置策略,并且牢记那三个等式:

  • 线程数 ÷ Ramp-Up period:即为线程增加的策略,每秒增加多少个线程;
  • 线程数 × 循环次数:即为请求的所有次数;
  • Ramp-Up periodv × 循环次数:即为运行持续的总时间。
posted @ 2018-11-22 11:16  长安。  阅读(598)  评论(0)    收藏  举报