十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

Jmeter变量参数化及函数应用

上一篇 / 下一篇  2011-06-18 08:18:25 / 个人分类:JMeter

  我们在使用Jmeter录制脚本后,经常会对已录制的脚本进行修改,需要把一些参数使用一些变量替代,Jmeter是支持这些功能的,不过是通过函数实现的。

HwhM"Fy$XF~0


,M1?C"bO-_!g$P_c(ML051Testing软件测试网d6nh.N;Yr6O

       下面举一个简单的例子,使用随机数替代一个参数:

jMV\!t0

  打开录制好的脚本,点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉框中选择 “_Random”,然后在“函数参赛”中会出现三个参数有用户来设置,第一个参数是“一个范围内的最小值”,即所要取的随机数的最小值,我们设置成1;第二个参数是“一个范围内的最大值”,即所要取的随机数的最大值,我们设置成100;第三个参数是“函数名称”,即用于存储在测试计划中其他的方式使用的值,我们设置成Random。设置好上面的三个参数后,点击“生成”按钮,这样就会在对话框的最下面生成一个字符串 “${__Random(1,100,Random)}”,然后我们找到要替换的参数,把它的值换成前面生成的字符串就可以了,然后每次运行的时候,这个参数会变成一个1到100之间的随机数。

1S9A |(Il)K9c#t%P0


*tpFum$d0

aA6UeH j0

  我们在上个例子中可以看到Jmeter提供了很多函数,能满足咱们在测试中的大多数需要,下面来讨论几个常用的函数。51Testing软件测试网,z:MO4] N U0l

51Testing软件测试网#K1Z qV.\
51Testing软件测试网 h;]4JL al+ii"[

  _StringFromFile,这个函数是从一个文件中取到一个字符串,这个函数和LoadRunner中的File变量差不多,不过LoadRunner可以直接从数据库中查询记录,自动生成文件,而Jmeter需要我们借助第三方工具生成文本文件(我们可以通过数据库查询工具查出结果,然后拷贝到一个文本文件中,这样就是 40万人民币的软件和免费软件之间的差别,嘿嘿)。生成文本文件后就可以设置这个函数的参数了,参数分别是“输入文件的全路径”,“函数名称”,“Start file sequence number”,Final file sequence number”。第一个参数就是咱们前面生成的文件的完整路径,即文件路径+文件名.扩展名(文件路径可以写成相对路径或绝对路径)。第二个参数是用于存储在测试计划中其他的方式使用的值(其实我也一直不明白这个参数的用处,不设置有些函数也能正常使用,不过最好还是随便设置一下吧,因为还有一些函数不能缺省)。第三和第四个参数的用途有两个,如果一起使用可以从多个文件中读取字符串。如果只使用第四个参数则表示对同一个文件读取多次。51Testing软件测试网V8R{.[SO1s


KuN"{?N,P051Testing软件测试网 GC:@4U#t&y W!k

  例如:${_StringFromFile(test#'.'txt,,1,2)} 可以读取test1.txt和test2.txt,多线程使用时,从test1的第一条记录开始读取,test1的记录读取完成后,自动从test2.txt的第一行继续读取。51Testing软件测试网&D aJ&AZ+TDv7JBF

51Testing软件测试网k-V0BHio/U;}#Ea

QTj-}!B%?0

  ${_StringFromFile(test1.txt,,,2)} 读取test.txt两次,多线程使用时,从test1的第一条记录开始读取,test1的记录读取完成后,再次返回test1.txt的第一行继续读取。以上两种情况时,如果文件中数据读取完成,则循环会自动终止。51Testing软件测试网B3i b#w OJ)g$E

51Testing软件测试网#h$P%}8PlHO \
51Testing软件测试网 uH"t(d"y'`}~X1p

  _counter,这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调用这个函数一次它就会自动加1,它有两个参数,第一个参数是布尔型的,只能设置成“TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器,可以用于统计每个线程歌执行了多少次。如果是FALSE,那就使用全局计数器,可以统计出这次测试共运行了多少次。第二个参数是“函数名称”。

WY%g(dI4m_hC0


0~x Yi q/L051Testing软件测试网9u3J!cr qRd{

  _javaScript,我个人认为这个函数是最好用的函数,通过它能使用JavaScript所支持的所有函数,比如当前的系统日期,系统时间等,它的参数也有两个,第一个是“JavaScript. expression to evaluate”,这个参数是JavaScript的语句表达式,我们可以输入任何的JavaScript支持语句,调用JavaScript自带的函数(可惜不能使用自己写的JavaScript函数,有点遗憾)。第二个参数是“函数名称”。

'T5m\)W,ls X.z0


)Z"D(FN`GvWJ4S g y0

;FpjJ;D%C4G5p0

  _threadNum,这个函数没有任何参数,它用于得到当前运行的线程编号。

qd+w9MC!M8{:g9qJ0

51Testing软件测试网z0CZ/S$Ve h
51Testing软件测试网#q'` OhW`9F

  _machineName,这个函数用于返回当前的主机名,有一个参数,是“函数名称”。51Testing软件测试网3{4wo0yZf/j


l3Cm:V/w-J/g+Es0

2oQ [R_#Ef#w[0

  _log,用于记录日志,它可以将一条信息记录到指定的日志文件中,并返回所记录的信息。它有三个参数。第一个是“String to be logged”,即要记录到日志文件中的内容。第二个是“Log level”,即日志的等级,这个参数只能设置成OUT, ERR, DEBUG, INFO,WARN or ERROR,如果这个参数不设置,函数默认为“INFO”。第三个参数是“Throwable text”,即要抛出的文本信息,如果不设置,函数会抛出Java自定义的异常。51Testing软件测试网a R1M{ ~fG

51Testing软件测试网"l~%hp3G-W R

t!w*I9|(IrR1\u7h0

  _logn,这个函数和_log的功能一样,参数和使用都完全相同,唯一个差别在于_log会返回记录到日志中的信息,而_logn不返回任何信息。51Testing软件测试网 T1\ H j(G)aP:O

51Testing软件测试网.n8wZZ6K7ig1x

j#lBn$H'Q i2K0

  _intSum,用于计算多个整数的和,可以是计算正整数和负整数的和,它有N个参数,最少有3个参数,最多不限。最后一个参数是函数名称,前面的其它参数是要求和的整数。这个函数在函数对话框中只显示3个参数,如果要计算多个整数,可以通过添加参数实现,不过最后一个参数一定是函数名称。51Testing软件测试网,l7A'@k&cB

51Testing软件测试网-^y@7zX%Bhp

MkP-H|*Ma0

  除了上面介绍的几个函数外,Jmeter还支持了更多更强大的函数,比如_BeanShell,_regexFunction等,如果有需要设置更复杂场景的朋友可以仔细研究一下

'OoKb)xw"\0

TAG: Jmeter JMeter jmeter JMETER

 

评分:0

我来说两句

Open Toolbar