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.xuhuhu.com 。
- Protocol - 此字段保持不变。
- Path - 我们将其写为“/”(斜杠)。 它表示我们想要服务器的根页面。
现在,复制整个线程组1 并将其粘贴在测试计划中三次。
- 将其他线程组分别重命名为线程组2和线程组3。
- 将其他采样器分别重命名为HTTP Request 2 和HTTP 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
						上一篇:
								JMeter后处理器元素
												下一篇:
								JMeter数据库测试计划
												
						
						
					
					
					