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 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