Jmeter变量参数化及函数应用

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

javascriptloadrunnerrandom脚本测试多线程

我们在使用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自
定义的语言开发测试脚本,下次再说,嘿嘿。

时间: 2024-10-27 06:17:16

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

JMeter 十五:函数以及变量

参考:http://jmeter.apache.org/usermanual/functions.html 函数以及参数引用 JMeter 函数引用方式如下: ${__functionName(var1,var2,var3)} __functionName:表示函数名称.比如 ${__time(YMD)} var1,var2,var3:表示参数.每个函数的参数一般不一样.有些甚至没有参数,比如 ${__threadNum},不带有参数的函数可以省略后边的括号. 参数包含","的话,需要

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

Jmeter里面参数化的方法有很多,大家可以结合自己的项目情况来使用哪种方式来调用测试 数据. 下面我给大家介绍下Jmeter里CSVRead函数来获取参数的方法: 我这里已去到直播间发表评论为例(这里怎么建测试用例就不讲了,另一篇有讲), 设置好server和Path.Method.Content encoding等,并把要Post的数据写到Body Data 栏目里: 我们这里要对chat做参数,先把要参数化的内容准备好: 选择Options---Function helpDialog,选择

JMeter脚本参数化 的方法用

一.什么叫参数化,参数化用来做什么? 参数化是干嘛的呢,咱们在调用接口的时候,有入参,那参数里面的值如果经常变化的话,就得每次去改了,很麻烦,这时候咱们就把需要经常变的值,改成可以变化的或者是咱们提前设置好的一些值,这样的话,调用的时候就不用每次都改它的值了. 用Jmeter测试时包含两种情况的参数 二.Jmeter参数化的方式有三种 ?1.用户定义的变量 ?这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的 ?2.函数生成器 ?函数生成器可以参照一定的规则生成数据,这样的比如说

Jmeter之参数化

初识Jmeter的时候, 除了感觉安装和配置都很轻量以外, 还有一个最大的感触就是, 翻译真硬啊, 真的够够的! 和他磨合了挺长一段时间之后, 终于开悟了, 这些硬硬的翻译, 其实还是基本靠谱的, 看翻译的名称, 还是可以大致知道是干嘛的. Jmeter的配置元件, 不仅可以帮助进行参数化, 还可以帮助用来存储服务器的响应信息(HTTP信息头管理), 还可以做初始化配置(JDBC Connection Configuration配置和DB的连接). 1. 回到我们的参数化, 我们先用CSV Da

JMeter(四)--参数化

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问. 一.准备脚本,测试数据 1.录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面.如下: 2.我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.

JMeter学习-参数化

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问. 一.准备脚本,测试数据 1.录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面.如下: 2.我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.

jmeter 24个常用函数

JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__functionName(var1,var2,var3)}其中,__functionName为函数名,括号内是函数的参数,无参数时可以不用括号,如${__UUID} Tips:如果参数包含逗号,那么一定要使用“\”来转义,否则JMeter会把它当作一个参数分隔符 实际使用时,可通过函数助手对话框选择函数,设置参数后,点击生成按钮生成

Jmeter脚本参数化和正则匹配

我们在做接口测试过程中,往往会遇到以下几种情况 每次发送请求,都需要更改参数值为未使用的参数值,比如手机号注册.动态时间等 上一个接口的请求体参数用于下一个接口的请求体参数 上一个接口的响应体参数用于下一个接口的请求体参数,比如:sessionId.token 上一个接口的响应体参数用于下一个接口的url接口地址中 上一个接口的响应头参数用于下一个接口的请求体参数,比如:token ...... 针对以上种种情况,我们都可以通过参数化和正则提取的方式来解决 一.参数化 举例演示,提供一个注册和登

PHP超级全局变量、魔术变量和魔术函数

PHP在设计的时候已经预定义了9个超级全局变量.8个魔术变量和13魔术函数,这些变量和函数可以在脚本的任何地方不用声明就可以使用. 在PHP开发会频繁的使用这些变量和函数,这些变量和函数可以方便的帮我们解决很多问题.下面详细的讲解下PHP中的超级全局变量.魔术变量和魔术函数. PHP超级全局变量(9个) $GLOBALS 储存全局作用域中的变量 $_SERVER 获取服务器相关信息 $_REQUEST 获取POST和GET请求的参数 $_POST 获取表单的POST请求参数 $_GET 获取表单