jmeter函数

1.常用JMeter函数

1)__regexFunction

正则表达式函数可以使用正则表达式(用户提供的)来解析前面的服务器响应(或者是某个变量值)。函数会返回一个有模板的字符串,其中携带有可变的值。

__regexFunction还可以被用来保存值,以便供后续使用。在函数的第6个参数中,测试人员可以指定一个引用名。在函数执行以后,测试人员可以使用用户定义值的语法来获取同样的值。例如,如果测试人员输入"refName"作为第6个参数,那么测试人员可以使用:

${refName}来引用第2个参数(Template for the replacement string)的计算结果,这依赖于函数的解析结果。

${refName_g0}来引用函数解析后发现的所有匹配结果。

${refName_g1}来引用函数解析后发现的第一个匹配组合。

${refName_g#}来引用函数解析后发现的第n个匹配组合。

${refName_matchNr}来引用函数总共发现的匹配组合数目。

参数如表11-2所示。

表11-2  参数描述


函数参数


描述


是否必需


第1个参数


第1个参数是用于解析服务器响应数据的正则表达式。

它会找到所有匹配项。如果测试人员希望将表达式

中的某部分应用在模板字符串中,一定记得为其加

上圆括号。例如,<a href="(.*)">。这样就会将链接

的值存放到第一个匹配组合中(这里只有一个匹配组

合)。又如,<input type="hidden" name="(.*)"

value="(.*)">。在这个例子中,链接的name作为第

一个匹配组合,链接的value会作为第二个匹配组合。

这些组合可以用在测试人员的模板字符串中



第2个参数


这是一个模板字符串,函数会动态填写字符串的部分

内容。要在字符串中引用正则表达式捕获的匹配组合,

请使用语法:$[group_number]$。例如$1$或者 $2$。

测试人员的模板可以是任何字符串



第3个参数


第3个参数告诉JMeter使用第几次匹配。测试人

员的正则表达式可能会找到多个匹配项。对此,

测试人员有4种选择:

n          整数,直接告诉JMeter使用第几个匹配项。

n          “1”对应第一个匹配,“2”对应第二个匹配,以此类推

n          RAND,告诉JMeter随机选择一个匹配项

n          ALL,告诉JMeter使用所有匹配项,为每一

n          个匹配项创建一个模板字符串,并将它们连接在一起

n          浮点值0到1之间,根据公式(找到的总匹配

n          数目*指定浮点值)计算使用第几个匹配项,

n          计算值向最近的整数取整


否,默认值为1


第4个参数


如果在上一个参数中选择了“ALL”,那么这第4个

参数会被插入到重复的模板值之间



第5个参数


如果没有找到匹配项返回的默认值



第6个参数


重用函数解析值的引用名,参见上面内容



第7个参数


输入变量名称。如果指定了这一参数,那么该变量

的值就会作为函数的输入,而不再使用前面的

采样结果作为搜索对象


2)__counter

每次调用计数器函数都会产生一个新值,从1开始每次加1。计数器既可以被配置成针对每个虚拟用户是独立的,也可以被配置成所有虚拟用户公用的。如果每个虚拟用户的计数器是独立增长的,那么通常被用于记录测试计划运行了多少遍。全局计数器通常被用于记录发送了多少次请求。

计数器使用一个整数值来记录,允许的最大值为2,147,483,647。

目前计数器函数实例是独立实现的(JMeter 2.1.1及其以前版本,使用一个固定的线程变量来跟踪每个用户的计数器,因此多个计数器函数会操作同一个值)。全局计数器(FALSE)每个计数器实例都是独立维护的。

参数如表11-3所示。

表11-3  参数描述


函数参数


描述


是否必需


第1个参数


True,如果测试人员希望每个虚拟用户的计数

器保持独立,与其他用户的计数器相区别。

false,全局计数器



第2个参数


重用计数器函数创建值的引用名。测试人员可

以这样引用计数器的值:${refName}。这样一来,

测试人员就可以创建一个计数器后,在多个地方引

用它的值(JMeter 2.1.1及其以前版本,这个参数是必需的)


3)__threadNum

函数__threadNum只是简单地返回当前线程的编号。线程编号不依赖于线程组,这就意味着从函数的角度看来,某个线程组的线程#1和另一个线程组的线程#1是没有区别的。另外,该函数没有参数。

这一函数不能用在任何配置元件中(如用户定义的变量),原因在于配置元件是由一个独立线程运行的。另外在测试计划(Test Plan)中使用也是没有意义的。

4)__intSum

函数__intSum可以被用来计算两个或者更多整数值的合。

参数如表11-4所示。

表11-4  参数描述


函数参数


描述


是否必需


第1个参数


第1个整数值



第2个参数


第2个整数值



n个参数


n个整数值



最后一个参数


重用函数计算值的引用名。如果用户指定

了这一参数,那么引用名中必须包含一个非

数字字母,否则它会被当成另一个整数值,

而被函数用于计算


时间: 2024-10-12 23:10:07

jmeter函数的相关文章

十九.jmeter函数---csvRead( )

Jmeter函数是一些能够转化在测试树种取样器或者其他配置元件的特殊值,一个函数的调用就像这样:${_functionName(var1,var2,var3)}, _functionName匹配函数名,圆括号内设置函数的参数,例如 ${_time(YMD)}实现参数因函数而不同,不需要参数的函数使圆括号内为空,例如 ${_theadNum()}. jmeter函数有两种函数:自定义静态值(用户变量)和内置函数 自定义静态值允许当一个测试树编译提交运行时,自定义变量被它们的静态值代替,这个替代在测

详解JMeter函数和变量(转载)

详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var3)} 其中,__functionName匹配被调用的函数名称.用圆括号包含函数的形参,例如${__time(YMD)},不同函数要求的参数也不同.有些JMeter函数不要求参数,则可以不使用圆括号,例如${__threadNum}. 如果一个函数的参数中包含逗号,那么必须对逗号进行转义(使用"\&

详解JMeter函数和变量

详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var3)} 其中,__functionName匹配被调用的函数名称.用圆括号包含函数的形参,例如${__time(YMD)},不同函数要求的参数也不同.有些JMeter函数不要求参数,则可以不使用圆括号,例如${__threadNum}. 如果一个函数的参数中包含逗号,那么必须对逗号进行转义(使用"\&

【转】 JMeter学习(十六)JMeter函数学习

JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functionName(var1,var2,var3)},-functionName匹配函数名,圆括号内设置函数的参数,例如${_time(YMD)}实际参数因函数而不同.不需要参数的函数使圆括号内为空,例如${_theadNum}. Jmeter函数有两种函数:自定义静态值(或者变量)和内置函数. 自定义静态值允许当一个测试树编译并且提交运行时自定义变量被它们的静态值代替.这个替代在测试

jmeter函数使用方法

Jmeter函数小助手: 业务场景1.参数当中我需要随机数 如图所示,生成的函数贴到相关参数的数值当中,运行时就可以从1到1000中随机取整啦 业务场景2:想要模拟用户的身份信息,比如用户名密码,或者cookie信息,但没有渠道获取到足够多的信息 图1:第一列为userName,第二列为password,则使用时对应生成函数即可,如下图: 那么问题来了:如果我想循环使用这些用户名密码呢?CSVRead只能一列一列读取,读完了就完事了,显然不能够满足我们的业务需求二.配置元件——CSV Data

jmeter 函数助手里的P,property的使用

1.函数助手里的 p及property的使用 ${__P(init,2)} , ${__property(init,start,200)} 可以自行定义变量名称,及变量的默认值 P 变量名为init, 值为2 ,使用的时候直接${__P(init,2)}就可以,改变量的结果为2 ${__property(init,start,200)} 变量名为init, 默认值为200,同时会将200默认传给start这个变量,start可进行再使用 ${start} 2.还有一种用法是直接在jmeter.p

Jmeter 函数

一._csvRead 函数 _cvsRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数. 步骤: 1.先新建一个文件,例如c.txt,里面的数据存放为 [email protected],111111 [email protected],111111 [email protected],111111 为使用的用户名和密码,也可以加其他参数,用逗号隔开,每一列表示一种参数,每一行则表示一组参数 2.在jmeter中的[选项]中选择[函数助手对话框],将会弹出如下对话框:

JMeter学习(十六)JMeter函数学习

转自:http://www.cnblogs.com/linglingyuese/archive/2013/03/06/linglingyuese-three.html 一._csvRead 函数 _cvsRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数. 步骤: 1.先新建一个文件,例如c.txt,里面的数据存放为 [email protected],111111 [email protected],111111 [email protected],111111 为使

Jmeter函数作用域实时取值覆盖[针对HTTP Request等控制器]

jmeter的属性和变量可以简单理解为编程里面的全局变量和局部变量.属性是全局可见,可以跨线程组传递调用,而变量基本上只能存在于一个线程组中(在测试计划定义的变量也是可以跨线程组传递的).同线程组内的数据传递一般用变量,例如,存放一个临时的过程值.多个进程组共用的一般用属性,例如,登录操作的session值需要传给其他线程组用,避免每个线程组都重复登录. 属性的创建和赋值及访问方法如下: 1.创建一个属性并赋值: 方式一:使用beanShell的内置对象props,props.put("属性名&