当前位置: 首页 > 教程 > JMeter >

JMeter函数

精华
小牛编辑
136浏览
2023-03-14

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

${__functionName(var1,var2,var3)} ,

这里__ functionName匹配函数的名称,圆括号围绕发送给函数的参数。

如果函数参数包含逗号,那么请务必使用“\”对其进行转义,否则JMeter会将其视为参数分隔符。
例如:

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

函数列表

函数类型 名称 注解
信息 threadNum 获取线程号
信息 samplerName 获取采样器名称(标签)。
信息 log 记录(或显示)消息(并返回值)。
信息 machineName 获取本地计算机名称。
输入 StringFromFile 从文件中读取一行。
输入 FileToString 读取整个文件。
输入 CSVRead 从CSV分隔文件中读取。
输入 XPath 使用XPath表达式从文件中读取。
计算 Counter 生成递增数字。
计算 intSum 相加int数字。
计算 longSum 相加long数字。
计算 Random 生成一个随机数。
计算 RandomString 生成随机字符串。
脚本 BeanShell 运行BeanShell脚本。
脚本 javaScript 运行javaScript脚本。
脚本 jexl, jexl2 评估Commons Jexl表达式。
属性 Property 读取property文件。
属性 P 读取一个属性(速记方法)。
变量 Split 将字符串拆分为变量。
变量 eval 评估变量表达式。
字符串 regexFunction 使用正则表达式解析先前的响应。
字符串 escapeOroRegexpChars 引用ORO正则表达式使用的元字符。
字符串 Char 从数字列表生成Unicode char值。
字符串 Unescape 包含Java转义的进程字符串(例如\n&\t)。
字符串 unescapeHtml 解码HTML编码的字符串。
字符串 escapeHtml 使用HTML编码对字符串进行编码。
字符串 TestPlanName 返回当前测试计划的名称。

注意:JMeter函数和变量始终区分大小写。

让我们考虑一个Log Function的例子来理解JMeter中函数的使用。

JMeter日志函数的语法:

${__log("message")}

首先,我们将使用HTTP请求采样器创建一个简单的测试计划。

创建JMeter测试计划

  • 进入到JMeter/bin文件夹并双击jmeter.bat文件以启动JMeter界面。
  • 选择测试计划节点,然后右键单击所选项目。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择“Threads (Users)” > “Thread Grou”
  • 将此线程组重命名为Thread Group 1

添加采样器

我们必须在线程组中添加一个HTTP请求采样器。

  • 选择“Thread Group”,然后右键单击所选项。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Sampler > HTTP请求选项。
  • 它将添加一个空的HTTP请求采样器。

将HTTP Request Sampler的字段配置为 -

  • Name - HTTP请求采样器1。
  • Server名称或IP - 在示例中,Web服务器名称将为 - www.yiibai.com 。
  • Protocol - 此字段保持不变。
  • Path - 我们将其写为“/”(斜杠)。 它表示我们想要服务器的根页面。

现在,复制整个线程组1 并将其粘贴在测试计划中三次。

  • 将其他线程组分别重命名为线程组2线程组3
  • 将其他采样器分别重命名为HTTP Request 2HTTP Request 3

下图显示了测试计划的目录结构。

添加监听器

  • 选择“Test Plan”节点,然后右键单击所选项目。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择 Listener -> Summary Report

保存并执行测试计划

  • 单击文件 -> 将测试计划另存为。
  • 将整个测试计划保存为Function_test.jmx
  • 单击“Run” -> “Start” 以执行测试计划。

验证输出

因此,已经成功执行了测试计划。 现在,我们将使用log函数作为第一个HTTP Request Sampler的名称。

您可以看到日志功能已打印“Hello World”而不是完整的采样器名称。 让我们来看看一个时间函数的例子,将再次使用它作为第二个HTTP采样器的名称。

时间函数的语法:

${__time(dd MM YYYY HH mm ss)}

单击Run > Start 以执行测试计划。

可以看到时间函数已打印确切的时间和日期,而不是完整的采样器名称。
要获得有关JMeter函数及其用法的更多信息,请参阅以下链接提供的Apache JMeter文档:
http://jmeter.apache.org/usermanual/functions.html