JMeter教程
JMeter测试计划
JMeter高级教程

JMeter功能

JMeter函数和用户变量

JMeter函数是可以填充测试树中任何Sampler或其他元素的字段的特殊值.

函数调用如下所示;

${__functionName(var1,var2,var3)}

_functionName 匹配函数的名称.例如 $ {__ threadNum} .

如果函数参数包含逗号,请确保使用""对此进行转义"如下图所示 :

${__time(EEE\, d MMM yyyy)}

变量被引用为 :

${VARIABLE}

功能列表

下表列出了一组松散地分为类型和减号的函数;

函数类型

名称

评论

信息

threadNum

获取线程编号

信息

samplerName

获取采样器名称(标签)

信息

machineIP

获取本地计算机IP地址

信息

machineName

获取本地机器名

信息

时间

以各种格式返回当前时间

信息

log

记录(或显示)一条消息(并返回该值)

信息

logn

记录(或显示)消息(空返回值)

输入

StringFromFile

从文件中读取一行

输入

FileToString

读取整个文件

输入

CSVRead从CSV

分隔文件中读取

输入

XPath

使用从文件中读取的XPath表达式

计算

计数器

生成一个递增的数字

计算

intSum

添加数字

计算

longSum

添加长号

计算

随机

生成一个随机数

计算

RandomString

生成随机字符串

计算

UUID

生成随机类型4 UUID

脚本

BeanShell

运行BeanShell脚本

脚本

javaScript

处理JavaScript(Mozilla Rhino)

脚本

jexl,jexl2

评估Commons Jexl表达式

属性

property

读取房产

房产

P

读取属性(速记方法)

属性

setProperty

设置JMeter属性

变量

split

将字符串拆分为变量

变量

V

评估变量名称

变量

eval

评估变量表达式

变量

evalVar

评估存储在变量中的表达式

String

regexFunction

Parse使用正则表达式的先前响应

String

e scapeOroRegexpChars

引用ORO正则表达式使用的元字符

String

char

从数字列表中生成Unicode字符值

String

unescape

包含Java转义的进程字符串(例如\ n& \ t)

String

unescapeHtml

解码HTML编码的字符串

String

escapeHtml

使用HTML编码对字符串进行编码

String

TestPlanName

返回当前测试计划的名称

有两种功能 :

 o 用户定义的静态值(或变量)

o 内置函数

用户定义的静态值允许用户在编译测试树并提交运行时定义要用其静态值替换的变量;

变量不能嵌套;即 $ {Var $ {N}} 不起作用;

__V(变量)函数(2.2之后的版本)可以用来做这个 : 去; $ {__ V(无功$ {N})};

这种类型的替换可以在没有功能的情况下进行,但不太方便且不太直观。

使用函数和变量的位置

函数和变量可以写入任何测试组件的任何字段。

以下函数应该在测试计划中正常工作 :

o intSum

o longSum

o machineName

o BeanShell

o javaScript

o jexl

o random

o time

o 属性函数

o 日志函数

测试计划中使用的函数有一些限制.处理函数时,JMeter线程变量尚未完全设置,因此不会设置作为参数传递的变量名称,并且变量引用将不起作用.因此, split()和 regex()并且变量评估函数将不起作用. threadNum()函数不起作用,在测试计划级别没有意义。

引用变量和函数

在测试元素中引用变量是通过将变量名称括在'$ {'和'}'来完成的;

函数以相同的方式引用,但按照惯例,函数名称以"__"开头,以避免与用户值名冲突。

有些函数会使用参数来配置它们,这些函数用括号括起来,用逗号分隔.如果函数不带参数,则可以省略括号.例如 :

${__ BeanShell(vars.put("name"\ ,"value"))}

或者,您可以将脚本定义为变量,例如关于测试计划 :

SCRIPT vars.put("name","value" ")

然后可以引用脚本如下 :

${__ BeanShell($ {SCRIPT})}

函数帮助程序对话框

可以从JMeter的选项选项卡中找到函数帮助程序对话框;

使用函数帮助器,您可以从下拉列表中选择一个函数,并为其参数赋值.表中的左列提供了参数的简要说明,右列是您为该参数写入值的位置.不同的函数有不同的参数;

完成后,单击"生成"按钮,生成相应的字符串,您可以复制粘贴在任何需要的地方进入测试计划。

预定义变量

些变量是由JMeter在内部定义.它们是 :

COOKIE_cookiename : 包含cookie值。

JMeterThread.last_sample_ok : 最后一个样本是否为OK :  true/false.注意 : 这在PostProcessors和Assertions运行后更新。

START变量。

预定义属性

一些内置属性由JMeter定义.下面列出了这些属性.为方便起见,START属性也被复制到具有相同名称的变量。

o START.MS :  JMeter开始时间(以毫秒为单位)

o START.YMD :  JMeter的开始时间为yyyyMMdd.

o START.HMS :  JMeter的开始时间为HHmmss.

o TESTSTART.MS : 测试开始时间(以毫秒为单位).

请注意,START变量/属性表示JMeter启动时间,而不是测试开始时间.它们主要用于文件名等。