jMeter - 功能
JMeter 函数和用户变量
JMeter 函数是特殊值,可以填充测试树中任何 Sampler 或其他元素的字段。
函数调用如下所示 -
${__functionName(var1,var2,var3)}
_functionName匹配函数的名称。例如${__threadNum}。
如果函数参数包含逗号,请确保使用“\”对其进行转义,如下所示 -
${__time(EEE\, d MMM yyyy)}
变量引用为 -
${VARIABLE}
功能一览
下表列出了一组松散地分为不同类型的函数 -
功能类型 | 姓名 | 评论 |
---|---|---|
信息 | 线程数 | 获取线程号。 |
信息 | 采样器名称 | 获取采样器名称(标签)。 |
信息 | 机器IP | 获取本机IP地址。 |
信息 | 机器名称 | 获取本地机器名称。 |
信息 | 时间 | 以各种格式返回当前时间。 |
信息 | 日志 | 记录(或显示)消息(并返回值)。 |
信息 | 登录 | 记录(或显示)一条消息(空返回值)。 |
输入 | 来自文件的字符串 | 从文件中读取一行。 |
输入 | 文件转字符串 | 读取整个文件。 |
输入 | CSV读取 | 从 CSV 分隔文件中读取。 |
输入 | X路径 | 使用 XPath 表达式从文件中读取。 |
计算 | 柜台 | 生成一个递增的数字。 |
计算 | 积分和 | 添加 int 数字。 |
计算 | 长和 | 添加长数字。 |
计算 | 随机的 | 生成一个随机数。 |
计算 | 随机字符串 | 生成一个随机字符串。 |
计算 | 通用唯一标识符 | 生成随机类型 4 UUID。 |
脚本编写 | 豆壳 | 运行 BeanShell 脚本。 |
脚本编写 | JavaScript | 处理 JavaScript (Mozilla Rhino)。 |
脚本编写 | 杰克斯尔、杰克斯尔2 | 评估 Commons Jexl 表达式。 |
特性 | 财产 | 阅读属性。 |
特性 | 磷 | 读取属性(速记方法)。 |
特性 | 设置属性 | 设置 JMeter 属性。 |
变量 | 分裂 | 将字符串拆分为变量。 |
变量 | V | 评估变量名称。 |
变量 | 评估 | 计算变量表达式。 |
变量 | 评估变量 | 计算存储在变量中的表达式。 |
细绳 | regex函数 | 使用正则表达式解析先前的响应。 |
细绳 | escapeOroRegexpChars | 引用 ORO 正则表达式使用的元字符。 |
细绳 | 字符 | 从数字列表生成 Unicode 字符值。 |
细绳 | 逃脱 | 处理包含 Java 转义符的字符串(例如 \n 和 \t)。 |
细绳 | unescapeHTML | 解码 HTML 编码的字符串。 |
细绳 | 转义HTML | 使用 HTML 编码对字符串进行编码。 |
细绳 | 测试计划名称 | 返回当前测试计划的名称。 |
有两种功能 -
用户定义的静态值(或变量)
内置功能
用户定义的静态值允许用户定义在编译测试树并提交运行时用其静态值替换的变量。
变量不能嵌套;即${Var${N}}不起作用。
__V(变量)函数(2.2 之后的版本)可用于执行此操作 - ${__V(Var${N})}。
这种类型的替换可以在没有功能的情况下进行,但不太方便且不太直观。
在哪里使用函数和变量
函数和变量可以写入任何测试组件的任何字段。
以下功能应该在测试计划中运行良好 -
- 积分和
- 长和
- 机器名称
- 豆壳
- JavaScript
- 杰克斯尔
- 随机的
- 时间
- 属性函数
- 日志函数
测试计划中使用的功能有一些限制。处理函数时,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 - 最后一个样本是否正常 - true/false。注意 - 这是在运行后处理器和断言后更新的。
启动变量。
预定义属性
一些内置属性是由 JMeter 定义的。下面列出了这些内容。为了方便起见,START 属性也被复制到同名的变量中。
START.MS - JMeter 启动时间(以毫秒为单位)。
START.YMD - JMeter 开始时间为 yyyyMMdd。
START.HMS - JMeter 开始时间为 HHmmss。
TESTSTART.MS - 测试开始时间(以毫秒为单位)。
请注意,START 变量/属性代表 JMeter 启动时间,而不是测试开始时间。它们主要用于文件名等。