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评估存储在变量中的表达式.
StringregexFunctionParse使用正则表达式的先前响应.
Stringe scapeOroRegexpChars引用ORO正则表达式使用的元字符.
Stringchar从数字列表中生成Unicode字符值.
Stringunescape包含Java转义的进程字符串(例如\ n& \ t).
StringunescapeHtml解码HTML编码的字符串.
StringescapeHtml使用HTML编码对字符串进行编码.
StringTestPlanName返回当前测试计划的名称.
  • 有两种功能 :

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

    • 内置函数

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

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

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

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

使用函数和变量的位置

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

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

  • intSum

  • longSum

  • machineName

  • BeanShell

  • javaScript

  • jexl

  • random

  • time

  • 属性函数

  • 日志函数

测试计划中使用的函数有一些限制.处理函数时,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属性也被复制到具有相同名称的变量.

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

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

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

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

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