分类: 测试工具 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自
定义的语言开发测试脚本,下次再说,嘿嘿。

Jmeter变量参数化及函数应用的更多相关文章

  1. 【转】Jmeter变量参数化及函数应用

    我们在使用Jmeter录制脚本后,经常会对已录制的脚本进行修改,需要把一些参数使用一些变量替代,Jmeter是支持这些功能的,不过是通过函数实现的.下面举一个简单的例子,使用随机数替代一个参数: 打开 ...

  2. jmeter调试脚本之变量参数化

    前言 对于参数化,觉得用得最多的应该是csvread函数.csv data config以及用户自定义变量(前一篇文章已经进行了讲解)控制器这几个 案例:bugfree ,提交bug,参数bug名称和 ...

  3. JMeter学习-014-JMeter 配置元件实例之 - 用户定义的变量 参数化配置

    前文讲述了通过 CSV Data Set Config 实现参数化配置(详情敬请参阅:JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置), ...

  4. JMeter 十五:函数以及变量

    参考:http://jmeter.apache.org/usermanual/functions.html 函数以及参数引用 JMeter 函数引用方式如下: ${__functionName(var ...

  5. Jmeter性能测试-----参数化方法CSVRead函数

    Jmeter里面参数化的方法有很多,大家可以结合自己的项目情况来使用哪种方式来调用测试 数据. 下面我给大家介绍下Jmeter里CSVRead函数来获取参数的方法: 我这里已去到直播间发表评论为例(这 ...

  6. Jmeter参数化(_csvread函数、CSV Data Set Config)

    方法一.Jmeter自带的函数助手——_CSVRead函数 1.数据准备:先在excel存储数据,保存格式选择csv格式.或在记事本存储数据,列之间用英文逗号分隔,保存为txt 2.使用_csvrea ...

  7. Jmeter——变量嵌套函数使用(__V)案例分析

    jmeter版本:5.3 __V官方函数解释: (https://jmeter.apache.org/usermanual/functions.html#__V) 图1-1 解决问题:实现字符串拼接 ...

  8. Jenkins环境搭建(5)-与Jmeter完成参数化构建和构建前删除操作

    此前介绍过几篇关于Jenkins配置相关的文章,今天再来说说参数化构建和构建前删除已有的报告.在实际测试过程中,是需要测试几套环境的,不使用参数化构建的话,构建脚本就比较麻烦了:自然,已生成的报告,不 ...

  9. 7 jmeter之参数化

    badboy里参数化(前面4 jmeter badboy脚本开发技术详解已讲过) jmeter里参数化-1 用户参数 1.打开badboy工具,点击红色按钮开始录制,在地址栏目中输入地址:www.so ...

随机推荐

  1. 用WP Super Cache和七牛为你的WordPress网站加速

    众所周知,WordPress一直都是博客建站的首选程序,而现在也有越来越多的企业网站都选择采用WordPress来搭建. WordPress虽好但其过于臃肿且响应速度慢等缺点也为站长们所诟病,目前网上 ...

  2. explain分析SQL语句详解

    性能分析explain MySql Query Optimizer是MySql中专门负责优化select语句的优化器模块,主要功能:通过计算分析系统中收集到的系统信息,为客户端请求的Query提供他认 ...

  3. [BZOJ4537][Hnoi2016]最小公倍数 奇怪的分块+可撤销并查集

    4537: [Hnoi2016]最小公倍数 Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 1474  Solved: 521[Submit][Stat ...

  4. 浅谈C#多线程与UI响应

    www.educity.cn     发布者:shenywww                    来源:网络转载                     发布日期:2014年10月06日      ...

  5. 【互动问答分享】第10期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第10期互动问答分享] Q1:Spark on Yarn的运行方式是什么? Spark on Yarn的运行方式有两种:Client ...

  6. fmod()函数和modf()函数

    最近从博客上看到了一个fmod函数,结果又蹦出来一个modf函数 fmod()函数: 头文件:#include<math.h> C库函数... fmod()用来对浮点数进行取模(求余),原 ...

  7. leetcode122 Best Time to Buy and Sell Stock

    题意:有一个数组,第i个数据代表的是第i天股票的价格,每天只能先卖出再买进(可以不卖出也可以不买进),求最大收益. 思路:自己去弄几个数组比划比划就知道了,比如[1,2,5,3,6],第一天买进,第二 ...

  8. bzoj 2163: 复杂的大门

    2163: 复杂的大门 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 418  Solved: 259[Submit][Status][Discuss ...

  9. JAVA Socket 连接时长

    其实关于这个问题可能用到的人不会很多,不过我在这里还是说说. 正常很多人写socket通信时,都会直接通过new socket(IP,PORT)直接去链接服务器.其实这种做法也没有错误,但是若当服务器 ...

  10. 对象数组的初始化:null reference

    今天写代码的时候,发现我写的对象数组,只声明,而没有初始化,所以记录一下这个问题:null reference. Animals [] an=new Animals[5];//这只是个对象类型数组的声 ...