性能测试过程中为了真实模拟用户请求,我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化。
jmeter配置元件和前置处理器都能帮我们参数化,但是有局限性。
函数助手不仅是做参数化,还可以帮助我们进行运算、字符编码格式转化、获取运行时参数等功能。
函数调用都是以${__function()}这种形式开始的,__:两个英文半角下划线;function:函数名
1、__BeanShell脚本语言
支持BeanShell脚本语言。
例如:在Java请求中设置Label为${__BeanShell("shanghai"+"road")},Sampler中以这样的方式去调用此函数,把这两个字符串连接在一起了。
2、__char
把一组数字转化成Unicode字符。例如输入65、66两个数字,转成Unicode码就是A、B字母
3、__counter
作为一个计数器使用,支持多线程。
4、__CSVRead
从文件中读取指定列的值,功能:a、读取固定值:从testvalue.txt读取第0列;b、读取动态值:${__CSVRead(D:\testvalue.text,next())} c、可以使用文件别名:使用testfile作为D:\testvalue.txt文件的别名,在Java请求中可以使用${__CSVRead(*testfile,1)}来读取文件中的值
5、__escapeHtml
把字符转换成HTML格式的字符。比如引号转成HTML就是 &quto 空格就是 
6、__escapeOroRegexChars
把正则表达式转换成Java正则能够识别的表达式
7、__eval
返回一个表达式的值,可以用此函数表达式来嵌套引用表达式
8、__evalVar
用来返回表达式的结果,并把结果存入一个变量,供Sampler引用
9、__FileToString
用来读取文件,可以一次性读取文件内容,然后保存到变量;此变量之后可以由其他Sampler引用
10、__intSum
对整数求和,支持多个整数累加,多个数之间用逗号分隔
11、__longSum
把整数变成了长整型
12、__javaScript
返回JavaScript脚本的执行结果,也可以调用JavaScript中的库函数
13、__jexl
提供对Jakarta Commons Jexl表达式的支持
${__jexl2(vars.get("START.YMD"),test)}
14、__log
日志方法,返回输入的字符串信息。
也可以写日志
15、__logn
与_log相似,不过只记录一条日志,不返回值而已
16、__machineIP
该函数引用返回本机IP
17、__machineName
返回本机的机器名。
18、__P
获取属性的函数。可以获取命令行中定义的属性,默认值为1。
19、__property
用来获取jmeter的属性。
例:在jmeter.properites中设置的日志级别是INFO,所以${__property(log_level,jmeter,logLevel)}获取的也是INFO
20、__Random
随机数函数,可以生成一个一定范围内的随机数并保存到指定变量,此变量可以被其他的Sampler引用。
21、__RandomString
随机字符串函数,支持中文。可以生成指定长度的随机字符串并保存到指定变量。
22、__regexFunction
正则表达式提取函数,此函数用来正则匹配上一个Sampler的返回值。
例:用road(.*) china来匹配111
函数选用:${__regexFunction(road(.*) china,$1$,1,,,,)} 结果:Label是111
23、__samplerName
获取当前sampler的名称
24、__setProperty
动态设置jmeter属性
25、__split
拆分字符串。
26、__StringFromFile
该函数从文件中读取内容,一行一行的读取,类似与CSV Data Set Config元件;当读完后悔重头开始。每调用此函数一次将打开一次文件。
27、__TestPlanName
返回测试计划的名称,即当前脚本的文件名
28、__threadNum
返回当前线程号
29、__time
返回当前时间,可以指定返回格式。
yyyy-MM-dd HH:mm:ss
30、__unescape
反转escape字符,如:\r\n转成CRLF
31、__unescapeHtml
反转URL链接中的Unicode编码字符,如: 转成空格
32、__urldecode
反转URL链接中的Unicode字符
例:Word +%22school%22-->Word "school"
33、__urlencode
把URL链接中的escap字符转化成Unicode编码
例:Word "school"-->Word+%22school%22
34、__UUID
生成的字符串是唯一存在的
35、__V
该函数用来执行变量表达式并返回结果。
36、__XPath
该函数可以从XML格式的文件中匹配内容,每次调用返回一个匹配值,到达尾部从头开始。匹配不到返回空。_XPath使用XPath表达式来匹配XML文件中的内容。
例:/company/name/address/text()
text()用来取address节点对应的文本内容,于是:${__XPath(D:\leg.xml,/company/name/address/text())}可以取得beijing这串字符