${__functionName(var1,var2,var3)}
其中,__functionName为函数名,括号内是函数的参数,无参数时可以不用括号,如${__UUID}Tips:
如果参数包含逗号,那么一定要使用“”来转义,否则JMeter会把它当作一个参数分隔符实际使用时,可通过函数助手对话框选择函数,设置参数后,点击生成按钮生成函数字符串。
一、__BeanShell:beanshell函数
1、它有两个参数,第一个参数是要执行的语句,可以是beanshell语句或者是文件地址,是必选参数;第二个参数是保存结果的变量名称,非必选参数。
2、Example:
${__BeanShell(123*456)}:返回56088
${__BeanShell(source("function.bsh"))}:会执行外部脚本function.bsh,并返回结果
${__BeanShell(import java.util.*;Properties props = System.getProperties();String osName = props.getProperty("os.name");if(osName.contains("Windows"))return 443;return 8443;)}:判断端口
3、与beanshell元件比较:
该函数与beanshell元件(beanshell sampler、beanshell preprocess等)作用是一样的,只是beanshell函数更常用于一些简单的判断或计算等,可以把少量的脚本放在函数中直接赋值给一个变量,而不用总是添加beanshell元件。
二、__regexFunction:正则表达式函数
1、该函数使用用户提供的正则表达式来解析前面的服务器响应(或者是某个变量值)。函数会返回一个有模板的字符串,其中携带有可变的值。
2、__regexFunction还可以被用来保存值,以便供后续使用。在函数的第6个参数中,测试人员可以指定一个引用名。在函数执行以后,测试人员可以使用用户定义值的语法来获取同样的值。例如,如果测试人员输入"refName"作为第6个参数,那么测试人员可以使用:
${refName}来引用第2个参数(Template for the replacement string)的计算结果,这依赖于函数的解析结果。
${refName_g0}来引用函数解析后发现的所有匹配结果。
${refName_g1}来引用函数解析后发现的第一个匹配组合。
${refName_g#}来引用函数解析后发现的第n个匹配组合。
${refName_matchNr}来引用函数总共发现的匹配组合数目。
具体参数描述如下:
其实这个函数的作用跟正则表达式提取器的作用是类似的。
三、__counter:计数器函数