目录

jMeter - 功能( Functions)

JMeter函数和用户变量

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

  • 函数调用看起来像这样 -

${__functionName(var1,var2,var3)}
  • _functionName匹配函数的名称。 例如${__threadNum}

  • 如果函数参数包含逗号,请确保使用“\”进行转义,如下所示 -

${__time(EEE\, d MMM yyyy)}
  • 变量引用为 -
${VARIABLE}

功能列表 (List of Functions)

下表列出了一组松散地分为类型的函数 -

功能类型 名称 评论
InformationthreadNum 获取线程编号。
InformationsamplerName 获取采样器名称(标签)。
InformationmachineIP 获取本地计算机的IP地址。
InformationmachineName 获取本地计算机名称。
Informationtime 以各种格式返回当前时间。
Informationlog 记录(或显示)消息(并返回值)。
Informationlogn 记录(或显示)消息(空返回值)。
InputStringFromFile 从文件中读取一行。
InputFileToString 阅读整个文件。
InputCSVRead 从CSV分隔文件中读取。
InputXPath 使用XPath表达式从文件中读取。
Calculationcounter 生成递增数字。
CalculationintSum 添加int数字。
CalculationlongSum 添加长号。
CalculationRandom 生成一个随机数。
CalculationRandomString 生成随机字符串。
CalculationUUID 生成随机类型4 UUID。
ScriptingBeanShell 运行BeanShell脚本。
ScriptingjavaScript 处理JavaScript(Mozilla Rhino)。
Scriptingjexl, jexl2 评估Commons Jexl表达式。
Propertiesproperty 阅读一处房产。
PropertiesP 阅读一个属性(速记方法)。
PropertiessetProperty 设置JMeter属性。
Variablessplit 将字符串拆分为变量。
VariablesV 评估变量名称。
Variableseval 评估变量表达式。
VariablesevalVar 评估存储在变量中的表达式。
StringregexFunction 使用正则表达式解析先前的响应。
StringescapeOroRegexpChars 引用ORO正则表达式使用的元字符。
Stringchar 从数字列表生成Unicode char值。
Stringunescape 包含Java转义的进程字符串(例如\ n&\ t)。
StringunescapeHtml 解码HTML编码的字符串。
StringescapeHtml 使用HTML编码对字符串进行编码。
StringTestPlanName 返回当前测试计划的名称。
  • 有两种功能 -

    • 用户定义的静态值(或变量)
    • 内置功能
  • 用户定义的静态值允许用户在编译并提交运行测试树时定义要用其静态值替换的变量。

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

  • __V(变量)函数(2.2之后的版本)可用于执行此操作 - $ {__ V(Var $ {N})}。

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

在哪里使用函数和变量

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

以下功能应该可以在测试计划中正常运行 -

  • intSum
  • longSum
  • machineName
  • BeanShell
  • javaScript
  • jexl
  • random
  • time
  • property functions
  • 日志功能

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

引用变量和函数 (Referencing Variables and Functions)

  • 通过将变量名称括在'$ {'和'}'中来引用测试元素中的变量。

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

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

${__BeanShell(vars.put("name"\,"value"))}
  • 或者,您可以将脚本定义为变量,例如在测试计划中 -

SCRIPT     vars.put("name","value")
  • 然后可以引用该脚本如下 -

${__BeanShell(${SCRIPT})}

功能助手对话框

函数助手对话框可从JMeter的Options卡中获得。

  • 使用Function Helper,您可以从下拉列表中选择一个函数,并为其参数赋值。 表中的左列提供了参数的简要描述,右列是您为该参数写入值的位置。 不同的功能有不同的论点。

  • 完成此操作后,单击“生成”按钮,将生成相应的字符串,您可以将其复制粘贴到测试计划中的任何位置。

Pre-defined Variables

一些变量由JMeter在内部定义。 他们是 -

  • COOKIE_cookiename - 包含cookie值。

  • JMeterThread.last_sample_ok - 最后一个样本是否正常 - 是/否。 注意 - 在运行PostProcessors和Assertions后更新。

  • START变量。

Pre-defined Properties

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

  • START.MS - JMeter开始时间(以毫秒为单位)。
  • START.YMD - JMeter的开始时间为yyyyMMdd。
  • START.HMS - JMeter开始时间为HHmmss。
  • TESTSTART.MS - 以毫秒为单位测试开始时间。

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

↑回到顶部↑
WIKI教程 @2018