JMeter—创建web测试计划
以下采用中文介绍面板,JMeter可以在“options–choose language”中切换语言。
一、添加并发用户
创建JMeter测试计划的第一步就是添加线程组测试元件,线程组会告诉JMeter需要模拟的并发用户数,以及并发用户发送请求的频率和数目。
添加线程组的步骤:右键选中测试计划–》添加–》线程(用户)–》线程组
在测试树中选中线程组后,能够在JMeter窗口的右半部分看到线程组的控制面板。以下是参数介绍:
1、在取样器错误后当执行的动作
“继续”表示执行有错时继续执行;“启动下一进程循环”表示多个线程组一起运行时,执行有错后停止当前执行的线程组,运行后边的线程组;“停止线程”及后边两项均表示立即停止线程或停止测试,如下图:
2、Ramp-up Period
每一个JMeter线程都会完整的执行测试计划,而且他们之间是完全独立运行的,这种多线程机制被用来模拟服务器应用的并发连接。参数Ramp-up Period告诉JMeter达到最大线程数需要多长时间。假定共有10个线程,Ramp-up Period为100秒,那么JMeter就会在100秒内启动10个线程,并让他们运转起来,每一个线程都会在上一个线程启动10秒后才开始运行。假定共有30个线程,Ramp-up Period为120秒,那么线程启动的间隔就为4秒。Ramp-up Period参数不能设置得太短,否则在测试得初始阶段就会给服务器造成过大的压力。Ramp-up Period参数也不能设置得太长,否则就会发生第一个线程已经执行完毕,而最后一个线程还没启动得情况(除非测试人员希望这种特殊情况发生)。如何找到一个合适得Ramp-up Period参数值?作者建议初始值可以设定为Ramp-up=总线程数,后续再根据实际情况适当增减。
右上角时间00:00:02表示两个线程启动的时间间隔,比如Ramp-up Period/线程数=4/2=2,表示间隔了2秒。当Ramp-up Period设置为1,也就是同一时刻启动所有线程,那这个时间将为0或者保持上一个线程运行的时间间隔。
当线程数设置2后运行时,右上角会出现0/2,表示设置了2个线程,且在运行测试时斜杠左边的0会变化为实时运行的线程数。如果只设置了1个线程数,循环10次,那么斜杠左边只出现0和1的变化,换言之就是这里只显示实时加载的线程数,与循环毫无关系。如下图:
3、循环次数
该项设置线程组在结束前每个线程循环的次数,如果次数设置为1,那么JMeter在停止前只执行测试计划一次。
4、 延迟创建线程直到需要
默认情况下,测试开始的时候,所有线程就被创建完了。如果勾选了此选项,那么线程只会在合适的需要用到的时候创建。
5、调度器配置
持续时间(秒):控制测试执行的持续时间,以秒为单位。
不勾选forever的话,线程数 * 循环次数=请求执行的总时间,
“请求执行的总时间”和“持续时间”相比哪个时间短选哪个;
如果想要精确的执行时间的话就勾上forever,然后执行到“持续时间”设置的时间就结束。
启动延迟(秒):控制测试在多久后启动执行,以秒为单位。
二、 添加http默认请求属性
用户通过添加该元件,可以设置http请求使用的默认值。比如,测试人员创建了一个测试计划,其中有25个http请求,所有请求都发往相同的服务器,如此测试人员可以添加单个http请求默认值,填写“服务名称或ip”。那么当测试人员添加这25个请求的采样器时,就可以把“服务名称或ip”置空,这些http采样器就会从http请求默认值中继承该域的值。
添加http请求步骤:右键选中线程组–》添加–》配置元件 --》http请求默认值。
在测试树中选中这个测试元件后,能够在JMeter窗口的右半部分看到控制面板。如图:
三、添加http请求
添加http请求步骤:右键选中线程组–》添加–》取样器–》http请求。
在测试树中选中这个测试元件后,能够在JMeter窗口的右半部分看到控制面板。如图,添加请求:
四、添加监听器
添加http请求步骤:右键选中线程组–》监听器–》查看结果树。
之后点击上方“绿色”的启动按钮就可以了
注:以上内容部分取自《零成本实现Web性能测试:基于Apache JMeter 温素剑著》