方法1:线程组
取样器错误后要执行的动作:
继续:继续执行,忽略该错误;(常用)
启动下一进程循环:停止当前线程组并直接启动下一个线程组,如设置循环次数非1,那么遇到一个线程失败则会中断此次循环而进入下一轮循环;
停止线程:停止当前线程,但不影响其他线程,即并发n个线程中有一个线程遇到异常,则终止该线程,而其他线程则会正常执行;
停止测试:直接停止此次测试,但会在当前线程组完成后;
立刻停止测试:立刻停止此次测试,不会等待无异常线程完成后停止;
线程属性:
线程数:该线程组包括的线程数(用户数);
Ramp-up 时间(秒):即设置的N个线程数在X秒内启动完毕;配置线程数为20,此项配置为5,则会每隔5/20=0.25s启动一个线程,1秒启动4个线程。
循环次数:该线程组下的线程数循环的次数(执行用例次数)。如果勾选永远,则会一直循环
(注意:如果勾选了永远且调度器配置中设置了持续时间,则会在持续时间到达之后结束循环);
延迟创建线程直到需要:直到需要时才创建线程。
在某些测试具有大量线程的情况下,如果未选择延迟线程创建选项,则CPU可以达到100%并杀死服务器进程。
选择后,JMeter将根据加速时间分配线程。 否则,无论加速时间如何,所有线程都会在测试开始时分配给JVM进程。
这与是否允许线程开始发送样本无关。 这总是取决于加速时间和测试计划定时器。
调度器配置: 勾选【调度器】复选框后配置相关参数
持续时间(秒):持续时间,到时间后停止测试。配置120,则120秒后结束测试。
(注意:1、此设置不要比Ramp-up 时间(秒)小,否则线程未完整加载完即结束了测试,达不到测试线程数;
2、如果勾选了循环次数中的永远,测试一样会在此持续时间到达后结束。)
启动延迟(秒):开始时间;配置10,则10秒后开始执行线程组测试。
方法2:Stepping Thread Group (类似于LoadRunner的Controller场景设置)
需要安装插件:JMeterPlugins-Standard.jar ,下载并拷贝只jmeter的ext目录下并重启jmeter
取样器错误后要执行的动作:
同线程组
配置参数:
This group will start:线程数(用户数)
First wait for:第一个线程延迟X秒启动
Then start:初始启动X个线程
Next,add:下一次启动X个线程
Threads every:运行X秒再启动线程
Using ramp-up:启动下一次(Next,add)线程需要时间
Then hold load for:全部线程启动完成后持续运行X秒,即总线程数并发运行X秒
Finally stop:停止X个线程
threads every:每隔 X秒停止X个进程,和Finally stop搭配使用
Elapsed time:启动、运行、释放时间
如上图:
1、则是100个线程,2秒启动10个,共需19秒启动完毕
2、持续运行20秒
3、1秒释放10个线程,10秒释完所有线程数