JMeter线程组
《JMeter核心技术、性能测试与性能分析(编程与应用开发丛书)》(张永清,张永松)【摘要 书评 试读】- 京东图书
通常情况下,每个性能测试场景都需要先在JMeter界面上创建一个线程组,然后才能运行后续的性能测试脚本。这是因为性能压测通常都是需要模拟大量用户来进行并发操作,因此需要线程组来通过多个线程的方式来模拟产生大量的用户。线程组主要控制整个性能测试的运行开始时间、运行时长、线程数量(即并发用户数)等,如图3-5所示。
图3-5 JMeter线程组界面
从图中可以看到线程组主要包括名称和注释、在取样器错误后要执行的动作以及线程属性。
1. 名称和注释
对线程组进行命名和注释说明。尤其是当一个测试计划中包含多个线程组时,通常建议填写线程组的名称和注释,方便区分不同线程组的作用,并在将来对历史脚本进行追溯时,能知道当初创建线程组的明确含义。
2. 在取样器错误后要执行的动作
(1)继续:表示当取样器发生报错时,线程组继续往下执行,这也是默认选项。
(2)启动下一进程循环:表示忽略当前的取样器报错,继续开始下一个性能压测循环。
(3)停止线程:表示退出当前取样器报错所在的线程,让该线程不再运行。由于一个线程组中通常会包含多个线程,此处的停止线程仅仅是停止当前取样器报错所在的线程,并不是停止所有的线程,如图3-6所示。
图3-6 线程组停止报错线程
(4)停止测试:等待当前取样器报错所在的线程运行结束当次测试后,停止整个性能测试。
(5)延迟创建线程直到需要:表示是否要延迟创建线程。如果不勾选该选项,在线程组初始化时,就会直接创建好预先已经设置的线程数量。
(6)调度器:用于设置性能压测持续的时长,以及运行启动的延迟时长。设置时长时的单位为秒。
(7)立即停止测试:不做任何等待,直接停止整个性能测试。
3. 线程属性
线程属性用于设置线程组中线程的运行参数,线程属性主要包括:
(1)线程数:用于设置该线程组需要启动的线程数(并发用户数)。
(2)Ramp-Up时间(秒):表示设置的线程数需要在多久内创建完成,此处的时长单位为秒。
(3)循环次数:表示循环进行性能压测的次数,当勾选“永远”选项时,表示性能压测一直运行,直到手工停止。
(4)Same user on each iteration:如图3-7所示,表示线程每次循环迭代运行时,每个线程都使用同一个用户。JMeter做性能压测时,通常每次循环迭代运行时都需要通过参数化的形式去获取一个用户。当勾选了该选项时,线程每次循环迭代运行时,不再重新从参数化数据中的用户中获取一个新用户。当参数化数据中的用户多于线程组的线程数时,会导致超出线程数的剩余用户永远不会被用到。
(5)延迟创建线程直到需要:表示是否要延迟创建线程。如果不勾选该选项,在线程组初始化时,就会直接创建好预先已经设置的线程数量。
(6)调度器:用于设置性能压测持续的时长,以及运行启动的延迟时长。设置时长的单位为秒。
图3-7 线程循环迭代运行时如何使用用户参数化数据