分类: 测试工具 2006-12-14 10:54 12041人阅读 评论(5) 收藏 举报

我们在使用Jmeter录制脚本后,经常会对已录制的脚本进行修改,需要把一些参数使用一些变量替代,Jmeter是支持这些功能的,不过是通过函数实现的。下面举一个简单的例子,使用随机数替代一个参数:
     
 
打开录制好的脚本,点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉框中选择
“_Random”,然后在“函数参赛”中会出现三个参数有用户来设置,第一个参数是“一个范围内的最小值”,即所要取的随机数的最小值,我们设置成1;
第二个参数是“一个范围内的最大值”,即所要取的随机数的最大值,我们设置成100;第三个参数是“函数名称”,即用于存储在测试计划中其他的方式使用的
值,我们设置成Random。设置好上面的三个参数后,点击“生成”按钮,这样就会在对话框的最下面生成一个字符串
“${__Random(1,100,Random)}”,然后我们找到要替换的参数,把它的值换成前面生成的字符串就可以了,然后每次运行的时候,这个
参数会变成一个1到100之间的随机数。
        我们在上个例子中可以看到Jmeter提供了很多函数,能满足咱们在测试中的大多数需要,下面来讨论几个常用的函数。

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

例如:${_StringFromFile(test#'.'txt,,1,2)} 可以读取test1.txt和test2.txt,多线程使用时,从test1的第一条记录开始读取,test1的记录读取完成后,自动从test2.txt的第一行继续读取。

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

_counter,这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调用这个函数一次它就会自动加1,它有两个参数,第一个参数是布尔型
的,只能设置成“TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器,可以用于统计每个线程歌执行了多少次。如果是FALSE,
那就使用全局计数器,可以统计出这次测试共运行了多少次。第二个参数是“函数名称”。
       
_javaScript,我个人认为这个函数是最好用的函数,通过它能使用JavaScript所支持的所有函数,比如当前的系统日期,系统时间等,它的
参数也有两个,第一个是“JavaScript expression to
evaluate”,这个参数是JavaScript的语句表达式,我们可以输入任何的JavaScript支持语句,调用JavaScript自带的函
数(可惜不能使用自己写的JavaScript函数,有点遗憾)。第二个参数是“函数名称”。
        _threadNum,这个函数没有任何参数,它用于得到当前运行的线程编号。
        _machineName,这个函数用于返回当前的主机名,有一个参数,是“函数名称”。
       
_log,用于记录日志,它可以将一条信息记录到指定的日志文件中,并返回所记录的信息。它有三个参数。第一个是“String to be
logged”,即要记录到日志文件中的内容。第二个是“Log level”,即日志的等级,这个参数只能设置成OUT, ERR, DEBUG,
INFO,WARN or ERROR,如果这个参数不设置,函数默认为“INFO”。第三个参数是“Throwable
text”,即要抛出的文本信息,如果不设置,函数会抛出Java自定义的异常。
        _logn,这个函数和_log的功能一样,参数和使用都完全相同,唯一个差别在于_log会返回记录到日志中的信息,而_logn不返回任何信息。

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

除了上面介绍的几个函数外,Jmeter还支持了更多更强大的函数,比如_BeanShell,_regexFunction等,如果有需要设置更复杂场
景的朋友可以仔细研究一下,可以在函数助手对话框中点击“帮助”,读取这些函数的使用帮助(我的英语水平有限,不能准确的翻译函数帮助,就不在这里献丑
了)。另外,Jmeter还支持自定义的脚本语言的开发,比如Java和BeanShell等,可以自己写测试语句,咱们下次讨论如何使用Jmeter自
定义的语言开发测试脚本,下次再说,嘿嘿。

最新文章

  1. Emacs学习心得之 LaTeX编辑
  2. org.apache.commons.lang.StringUtils中常用的方法
  3. PHPMySQL 中 pdo文件的增删改查
  4. ios9下ionic框架报[$rootScope:infdig] 10 $digest() iterations reached. Aborting!的解决办法
  5. TCP/IP:链路层
  6. Muduo-Base-Atomic
  7. 关于安卓的log学习
  8. 三家DirectUI的商业公司
  9. Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换
  10. 免费 WebOffice使用
  11. VUE相关资料合集
  12. SpringBootApplication注解 专题
  13. Asp.Net WebAPI中Filter过滤器的使用以及执行顺序
  14. Java编程思想(前十章)
  15. ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
  16. Android 中使用 dlib+opencv 实现动态人脸检测
  17. c#学习个人总结
  18. requestAnimFrame 动画的使用方法
  19. Oracle性能优化之普通用户使用dbms_xplan包需要有的权限
  20. PHP:第二章——PHP中的流程控制语句

热门文章

  1. linux程序与进程内存结构
  2. hdu6059( Trie )
  3. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)
  4. 容斥原理 求M以内有多少个跟N是互质的
  5. ubuntu 16.04.1 LTS python 3.5.2安装
  6. 在MYSQL中插入当前时间,就象SQLSERVER的GETDATE()一样,以及对mysql中的时间日期操作。
  7. 【数论】【快速幂】CODEVS 2952 细胞分裂 2
  8. 【分块】【常数优化】【Orz faebdc】洛谷 P1083 NOIP2012提高组 借教室
  9. 【kruscal】【最小生成树】【并查集扩展】bzoj3714 [PA2014]Kuglarz
  10. 1.1(Mybatis学习笔记)初识Mybatis