jmeter(十五)函数助手

jmeter作为一个开源的性能测试工具,作用还是蛮强大的,找到一篇对jmeter中函数助手解释蛮详细的一篇博客,感觉不错,转载过来,希望对大家有所帮助。

由于时间和版本问题,其中有些内容和排版我做了修改和重新整理,使其更符合最新的jmeter版本。

原文地址:http://blog.csdn.net/fanjeff/article/details/46873159

一、使用jmeter函数助手

启动jmeter后,可以在JMeter的选项菜单中找到函数助手对话框(快捷键:Ctrl+Shift+F1),如下图所示:

打开函数助手,可以从下拉列表中选择一个函数,并为其参数设定值,不同函数要求的参数也不同;表格的左边一列是函数参数的简要描述,右边一列是供用户填充参数的值。

二、常用JMeter函数

1、__regexFunction

正则表达式函数可以使用正则表达式(用户提供的)来解析前面的服务器响应(或者是某个变量值),函数会返回一个有模板的字符串,其中携带有可变的值。

__regexFunction还可以被用来保存值,以便供后续使用。

在函数的第6个参数中,可以指定一个引用名;在函数执行以后,可以使用用户定义值的语法来获取同样的值。例如,如果输入"refName"作为第6个参数,那么可以使用:

${refName}来引用第2个参数(Template for the replacement string)的计算结果,这依赖于函数的解析结果;

${refName_g0}来引用函数解析后发现的所有匹配结果;

${refName_g1}来引用函数解析后发现的第一个匹配组合;

${refName_g#}来引用函数解析后发现的第n个匹配组合;

${refName_matchNr}来引用函数总共发现的匹配组合数目;

参数如下表所示:

函数参数

描述

是否必需

第1个参数

第1个参数是用于解析服务器响应数据的正则表达式,它会找到所有匹配项;如果希望将表达式中的

部分应用在模板字符串中,一定记得为其加上圆括号。例如,<a href="(.*)">,这样就会将链

的值存放到第一个匹配组合中(这里只有一个匹配组合)。又如,<input type="hidden"

name="(.*)"value="(.*)">,在这个例子中,链接的name作为第一个匹配组合,链接的value会

作为第二个匹配组合,这些组合可以用在测试人员的模板字符串中。

第2个参数

这是一个模板字符串,函数会动态填写字符串的部分内容。要在字符串中引用正则表达式捕获的匹配组

合,请使用语法:[groupnumber][groupnumber]{table} where name='${name}',

那么通过${__eval(${SQL})},就能执行"select age from birthdays where name='Smith'"。这样一来,就可以与CSV数据集相互配合;

例如:将SQL语句和值都定义在数据文件中。

参数如下表所示:

函数参数

描述

是否必需

变量名

待执行变量

24、__char

函数__char会将一串数字翻译成Unicode字符,另外还请参考下面__unescape()函数。

参数如下表所示:

函数参数

描述

是否必需

Unicode字符编码(十进制数或者十六进制数)

待转换的Unicode字符编码,可以是十进制数或者十六进制数

Unicode字符编码(十进制数或者十六进制数) 待转换的Unicode字符编码,可以是十进制数或者十六进制数;

例如:

①${__char(0xC,0xA)} = CRLF  

${__char(165)} = ï¿½ (yen)  

25、__unescape

函数__unescape用于反转义Java-escaped字符串,另外还请参考上面的__char函数。

参数如下表所示:

函数参数

描述

是否必需

待反转义字符串

待反转义字符串

例如:

①${__unescape(\r\n)} = CRLF  

②${__unescape(1\t2)} = 1[tab]2

 

26、__unescapeHtml

函数__unescapeHtml用于反转义一个包含HTML实体的字符串,将其变为包含实际Unicode字符的字符串。支持HTML 4.0实体。

例如,字符串"&lt;Fran&ccedil;ais&gt;"变为"<Fran?ais>"。

如果函数不认识某个实体,就会将实体保留下来,并一字不差地插入结果字符串中。例如,">&zzzz;x"会变为">&zzzz;x"。

参数如下表所示:

函数参数

描述

是否必需

待反转义字符串

待反转义字符串

27、__escapeHtml

函数__escapeHtml用于转义字符串中的字符(使用HTML实体)。支持HTML 4.0实体。

例如,"bread" & "butter"变为&quot;bread&quot; &amp; &quot;butter&quot;。

参数如下表所示:

函数参数

描述

是否必需

待转义字符串

待转义字符串

28、__FileToString

函数__FileToString可以被用来读取整个文件。每次对该函数的调用,都会读取整个文件。

如果在打开或者读取文件时发生错误,那么函数就会返回字符串"**ERR**"。

参数如下表所示:

函数参数

描述

是否必需

文件名

包含路径的文件名(路径可以是相对于JMeter启动目录的相对路径)

文件编码方式(如果不采

用平台默认的编码方式)

读取文件需要用到的文件编码方式。如果没有指明就使用平台默认的编码方式

变量名

引用名(refName)用于重用函数创建的值

三、变量

1、预定义变量

大多数变量都是通过函数调用和测试元件(如用户定义变量)来设置的;在这种情况下用户拥有对变量名的完整控制权。但是有些变量是JMeter内置的。例如:

Cookiename:包含Cookie值。

JMeterThread.last_sample_ok:最近的采样是否可以(true/false)。

2、预定义变量属性

JMeter属性集是在JMeter启动时通过系统属性初始化的;其他补充JMeter属性来自于jmeter.properties、user.properties或者命令行。

JMeter还另外定义了一些内置属性。下面是具体列表。从方便的角度考虑,属性START的值会被复制到同名变量中去。

START.MS:以毫秒为单位的JMeter启动时间;

START.YMD:JMeter启动日期格式yyyyMMdd;

START.HMS:JMeter启动时间格式HHmmss;

TESTSTART.MS:以毫秒为单位的测试启动时间;

请注意:START变量/属性表征的是JMeter启动时间,而非测试的启动时间。它们主要用于文件名之中。

文章出处:《零成本实现性能测试-jmeter》
 
 
 
转载请注明出处,商用请征得作者本人同意,谢谢!!!
发布了48 篇原创文章 · 获赞 3 · 访问量 4228

猜你喜欢

转载自blog.csdn.net/NoamaNelson/article/details/103798822