JMeter49 个函数总结,由公众号的文章汇总到这里
参数含义 | 是否必填 |
---|---|
要执行的 beanshell 语句(不可以是文件地址) | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__BeanShell(123*456)}
返回:56088
${__BeanShell(source("function.bsh"))}
执行外部脚本 function.bsh,并返回结果
参数含义 | 是否必填 |
---|---|
待变更的字符串 | 必填 |
UPPER(默认)大写,LOWER 小写,CAPITALIZE 首字母大写其余小写 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__changeCase(Avaro omnia desunt\, inopi pauca\, sapienti nihil,UPPER,)}
返回:AVARO OMNIA DESUNT, INOPI PAUCA, SAPIENTI NIHIL
${__changeCase(LABOR OMNIA VINCIT IMPROBUS,LOWER,)}
返回:labor omnia vincit improbus
${__changeCase(omnibus viis romam pervenitur,CAPITALIZE,)}
返回:Omnibus viis romam pervenitur
参数含义 | 是否必填 |
---|---|
十进制或十六进制 Unicode 字符编号 | 必填 |
举例:
${__char(041)}
返回:!
${__char(0x21)}
返回:!
${__char(165)}
返回:¥
参数含义 | 是否必填 |
---|---|
TRUE 多线程用户分别计数,FALSE 多线程用户合并计数 | 必填 |
用于引用此函数的变量名称 | 非必填 |
参数含义 | 是否必填 |
---|---|
要读取的文件名,或为文件别名 | 必填 |
若为单线程,0 表示第一行的第一列的取值,1 表示第一行的第二列的取值,或为文件别名 | 必填 |
举例:random.txt 文件,内容为 a,1
${__CSVRead(random.txt,0)}
返回:a
${__CSVRead(random.txt,*file)}
${__CSVRead(*file,1)}
返回:1
参数含义 | 是否必填 |
---|---|
转换前的时间字符串 | 必填 |
转换前的日期格式,为空则转换前的时间字符串必须为 unix 时间戳格式 | 非必填 |
转换后的日期格式 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
$ {__ dateTimeConvert(01212018,MMDDYYYY,DD / MM / YYYY,)}
返回:21/01/2018
$ {__ dateTimeConvert(1526574881000,,dd / MM / yyyy HH:mm,)}
返回:17/05/2018 16:34
参数含义 | 是否必填 |
---|---|
加密算法:MD2,MD5,SHA-1,SHA-224,SHA-256,SHA-384,SHA-512 | 必填 |
加密前的字符串 | 必填 |
Salt 表示在加密前字符串后加的字符串 | 非必填 |
默认为小写,TRUE 则为大写 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
$ {__ digest(MD5,Errare humanum est ,,,)}
返回:c49f00b92667a35c63708933384dad52
$ {__ digest(SHA-256,Felix qui potuit rerum cognoscere causas,mysalt ,,)}
返回:a3bc6900fe2b2fc5fa8a601a4a84e27a079bf2c581d485009bc5c00516729ac7
参数含义 | 是否必填 |
---|---|
要转义的字符串 | 必填 |
举例:
${__escapeHtml("bread" & "butter")}
返回:
"bread" & "butter"
参数含义 | 是否必填 |
---|---|
要转义的字符串 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__escapeOroRegexpChars(["].+?,)}
返回:
\[\^\"\]\.\+\?
参数含义 | 是否必填 |
---|---|
要转义的字符串 | 必填 |
举例:
${__escapeXml("bread" & 'butter')}
返回:
"bread" & 'butter'
参数含义 | 是否必填 |
---|---|
要返回的表达式 | 必填 |
举例:
name=Smith
column=age
table=birthdays
SQL=select ${column} from ${table} where name='${name}'
${__eval(${SQL})}
="select age from birthdays where name='Smith' "
参数含义 | 是否必填 |
---|---|
要返回的表达式 | 必填 |
举例:
变量 query 包含 select ${column} from ${table}
column 包含 name
table 包含 customers
${__eval(${query})}
="select name from customers"
参数含义 | 是否必填 |
---|---|
要转成字符串的文件名的路径 | 必填 |
文件编码格式,未指定则默认平台默认值 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
存在文件内容
${__FileToString(D:\example.txt,,)}
返回文件内容
不存在文件
${__FileToString(D:\example.txt,,)}
返回字符串"ERR"
参数含义 | 是否必填 |
---|---|
要执行的 groovy 语句(不可以是文件地址) | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__groovy(123*456,)}
返回:56088
变量 myVar 值为 Selenim
${__groovy(vars.get("myVar").substring(0\,2),)}
返回:Se
参数含义 | 是否必填 |
---|---|
int 型第一个数 | 必填 |
int 型第二个数 | 必填 |
int 型第 N 个数 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__intSum(2,5,)}
返回:7
${__intSum(2,5,7,)}
返回:14
参数含义 | 是否必填 |
---|---|
属性名称 | 必填 |
举例:
${__isPropDefined(START.HMS)}
返回:ture
${__isPropDefined(START.HM)}
返回:false
参数含义 | 是否必填 |
---|---|
变量名称 | 必填 |
举例:
变量 myVar 值为 Selenim
${__isVarDefined(myVar)}
返回:true
不存在变量 myVar
${__isVarDefined(myVar)}
返回:false
参数含义 | 是否必填 |
---|---|
要执行的 javaScript 表达式 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__javaScript(new Date())}
返回:当前时间和日期
${__javaScript(Math.random(),)}
返回:大于等于 0.0 且小于 1.0 的伪随机 double 值
变量 maxRandom 为最大随机数 10
${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),)}
返回:0 到 maxRandom 之间的随机浮点数,1 位小数且为 0,如 5.0
变量 maxRandom 为最大随机数 10
变量 minRandom 为最大随机数 1
${__javaScript(${minRandom}+Math.floor(Math.random()*(${maxRandom}-${minRandom}+1)),)}
返回:minRandom 到 maxRandom 之间的随机浮点数,1 位小数且为 0,如 5.0
变量 var 值为 abcd
${__javaScript("${var}"=="abcd",)}
返回:ture
参数含义 | 是否必填 |
---|---|
要执行的 JEXL 表达式 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__jexl2(123*456,)}
返回:56088
参数含义 | 是否必填 |
---|---|
要执行的 JEXL 表达式 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__jexl3(123*456,)}
返回:56088
参数含义 | 是否必填 |
---|---|
要记录的 log 日志字符串 | 必填 |
日志级别:OUT,ERR,DEBUG,INFO(默认),WARN 或 ERROR | 非必填 |
默认异常信息 | 非必填 |
用来识别输出的内容 | 非必填 |
举例:
${__log(Message,,,)}
写入 info 日志文件,返回:Message
${__log(Message,OUT,,)}
输出到 System.out,返回:Message
${__log(Message,ERR,,)}
输出到 System.err,返回:Message
${__log(Message,ERROR,,ERROR=)}
写入 error 日志文件,返回:ERROR= Message
参数含义 | 是否必填 |
---|---|
要记录的 log 日志字符串 | 必填 |
日志级别:OUT,ERR,DEBUG,INFO(默认),WARN 或 ERROR | 非必填 |
默认异常信息 | 非必填 |
举例:
${__log(Message,,)}
写入 info 日志文件,返回:空
${__log(Message,OUT,)}
输出到 System.out,返回:空
${__log(Message,ERR,)}
输出到 System.err,返回:空
${__log(Message,ERROR,1234)}
写入 error 日志文件,抛出异常信息 Throwable:1234,返回:空
参数含义 | 是否必填 |
---|---|
long 型第一个数 | 必填 |
long 型第二个数 | 必填 |
long 型第 N 个数 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__longSum(2,5,)}
返回:7
${__longSum(2,5,7,)}
返回:14
参数含义 | 是否必填 |
---|---|
用于引用此函数的变量名称 | 非必填 |
举例:
${__machineIP()}
返回:本机 IP 地址
${__machineIP}
返回:本机 IP 地址
参数含义 | 是否必填 |
---|---|
用于引用此函数的变量名称 | 非必填 |
举例:
${__machineName()}
返回:本机的主机名
${__machineName}
返回:本机的主机名
参数含义 | 是否必填 |
---|---|
属性名称 | 必填 |
属性未定义,则显示的默认值 | 非必填 |
举例:
jmeter.properties 有属性 remote_hosts,且值为 127.0.0.1
${__P(remote_hosts,2)}
返回:127.0.0.1
jmeter.properties 没有属性 remote_hosts
${__P(remote_hosts,2)}
返回:2
参数含义 | 是否必填 |
---|---|
属性名称 | 必填 |
属性未定义,则显示的默认值 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
jmeter.properties 有属性 remote_hosts,且值为 127.0.0.1
${__property(remote_hosts,,2)}
返回:127.0.0.1
jmeter.properties 没有属性 remote_hosts
${__property(remote_hosts,,2)}
返回:2
参数含义 | 是否必填 |
---|---|
较小的整数 | 必填 |
较大的整数 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__Random(0,10)}
返回:0~10 之间的任一整数
参数含义 | 是否必填 |
---|---|
时间格式,默认为 yyyy-MM-dd | 非必填 |
开始的时间,默认为现在 | 非必填 |
结束的时间 | 必填 |
时区 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__RandomDate(,,2019-09-10,,)}
返回:今天到 2019-09-10 之间的任一日期,如 2019-06-08
${__RandomDate(,2010-09-10,2010-12-25,,)}
返回:2010-09-10 到 2010-12-25 之间的任一日期,如 2019-06-08
${__RandomDate(yyyyMMdd,,20190910,,)}
返回:今天到 20190910 之间的任一日期,如 20190608
${__RandomDate(,,2019-09-10,zh_CN,)}
返回:今天到 20190910 之间的中国时区任一日期,如 2019-06-08
参数含义 | 是否必填 |
---|---|
待取值的变量,不同的变量之间用符号 “|” 分割 | 必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
变量 var1 值为 1
${__RandomFromMultipleVars(var1,)}
返回:1
变量 var1 值为 1,变量 var2 值为 2
${__RandomFromMultipleVars(var1|var2,)}
返回:1 或 2
变量 var1 值为 ${Random(1,10,)},变量 var2 值为 ${Random(11,100,)}
${__RandomFromMultipleVars(var1|var2,)}
返回:1 到 100 之间的随机数
参数含义 | 是否必填 |
---|---|
指定字符串的长度 | 必填 |
生成字符串的取值范围 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__RandomString(5,,)}
返回:一个包含任意 5 字符的字符串
${__RandomString(5,1234567890,)}
返回:一个包含 5 个数字的字符串,如 21346
${__RandomString(5,qwertyuiopasdfghjklzxcvbnm,)}
返回:一个 5 为小写英文字符的字符串,如 ewffk
参数含义 | 是否必填 |
---|---|
正则表达式 | 必填 |
模版 | 必填 |
匹配项,默认匹配第一个值:一个数字,匹配第几个值;RAND,随机匹配一个值;ALL,所有匹配项的值;一个浮点数 | 非必填 |
匹配项填写 ALL,此项必填 | 非必填 |
缺省值 | 非必填 |
匹配项的属性值 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
响应数据包括:<!--STATUS OK-->
${__regexFunction(<!--STATUS(.*?)-->,$1$,,,,,)}
返回:OK
参数含义 | 是否必填 |
---|---|
用于引用此函数的变量名称 | 非必填 |
举例:
${__samplerName()}
返回:采样器名称
参数含义 | 是否必填 |
---|---|
属性名称 | 必填 |
属性值 | 必填 |
是否返回上一次的属性值,填 True 或 False | 非必填 |
举例:
${setProperty(hostname,2,)}
返回:${P(hostname,1)}值为 2
${__setProperty(hostname,2,True)}
返回:2
第一次 ${setProperty(hostname,2,)}
${setProperty(hostname,3,True)}
返回:2
参数含义 | 是否必填 |
---|---|
待切割的字符串 | 必填 |
用于引用此函数的变量名称 | 必填 |
切割符,默认为, | 非必填 |
举例:
${__split(qwe*asd*zxc,var,*)}
返回:var_1 值为 qwe,var_2 值为 asd,var_3 值为 zxc
${__split(qwe\,asd\,zxc,var,)}
返回:var_1 值为 qwe,var_2 值为 asd,var_3 值为 zxc
参数含义 | 是否必填 |
---|---|
文件名,在 JMeter 启动目录中可以只填名称,否则需要填路径 + 名称 | 必填 |
用于引用此函数的变量名称 | 非必填 |
文件开始的序列号 | 非必填 |
文件结束的序列号 | 非必填 |
举例:
bin 配置 text 文件值为 qwe
${__StringFromFile(text.text,,,)}
返回:qwe
bin 配置 text 文件值为
qwe
asd
zxc
线程数为 3
${__StringFromFile(text.text,,,)}
返回:第一个线程返回 qwe,第二个线程返回 asd,第三个线程返回 zxc
bin 配置 text1 文件值为 qwe,text2 文件值为 asd
线程数为 2
${__StringFromFile(text.text,,1,2)}
返回:第一个线程返回 qwe,第二个线程返回 asd
参数含义 | 是否必填 |
---|---|
文件名的路径(需要填写文件的绝对路径) | 必填 |
准备写入的字符串(使用\n 当作换行符) | 必填 |
对文件进行覆盖还是追加(true 表示追加,false 表示覆盖,默认为追加) | 非必填 |
文件编码,默认为 utf-8 | 非必填 |
举例:
新建 example.txt
${__StringToFile(D:\example.txt,selenium 测试,,)}
返回:true
example.txt 文件显示:selenium 测试
${__StringToFile(D:\example.txt,jmter5.2,true,)}
返回:true
example.txt 文件显示:selenium 测试 jmeter5.2
${__StringToFile(D:\example.txt,selenium 测试\njmeter5.2,false,)}
返回:true
example.txt 文件显示:selenium 测试
jmeter5.2
参数含义 | 是否必填 |
---|---|
无 |
举例:
${__TestPlanName}
返回:当前打开的文件名
参数含义 | 是否必填 |
---|---|
无 |
举例:
${__threadGroupName}
返回:当前正在执行的线程组名称
参数含义 | 是否必填 |
---|---|
无 |
举例:
线程数为 2
${__threadNum}
返回:当前正在执行的线程组序号,第一个线程组显示 1,第二个线程组显示 2
参数含义 | 是否必填 |
---|---|
待显示的时间格式 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__time(,)}
返回:当前时间的时间戳
${time(YMD,)}=${time(yyyyMMdd,)}
返回:当前日期 20190609
${time(YMDHMS,)}=${time(yyyyMMdd-HHmmss,)}
返回:当前日期和时间 20190609-123000
参数含义 | 是否必填 |
---|---|
待显示的时间格式 | 非必填 |
待显示的时间,默认为当前 | 非必填 |
与指定时间相差的一段时间 | 非必填 |
时区 | 非必填 |
用于引用此函数的变量名称 | 非必填 |
举例:
${__timeShift(,,,,)}
返回:当前时间的时间戳
${timeShift(YMD,)}=${timeShift(yyyyMMdd,)}
返回:当前日期 20190609
${timeShift(YMDHMS,,,,)}=${timeShift(yyyyMMdd-HHmmss,)}
返回:当前日期和时间 20190609-123000
${__timeShift(yyyyMMdd,20190910,,,)}
返回:指定日期 20190910
${__timeShift(yyyyMMdd,,P1D,,)}
返回:明天的日期 20190610
${__RandomDate(yyyyMMdd-HHmmss,,,zh_CN,)}
返回:当前时间一小时之前的中国时区的时间,
参数含义 | 是否必填 |
---|---|
待解码的字符串 | 必填 |
举例:
${__unescape(1\t2)}
返回:1 2(中间是 tab 符)
参数含义 | 是否必填 |
---|---|
待解码的字符串 | 必填 |
举例:
${__unescapeHtml("bread" & "butter" )}
返回:"bread" & "butter"
参数含义 | 是否必填 |
---|---|
待解码的字符串 | 必填 |
举例:
${__urldecode(selenium%E6%B5%8B%E8%AF%95)}
返回:selenium 测试
参数含义 | 是否必填 |
---|---|
待转码的字符串 | 必填 |
举例:
${__urlencode(selenium 测试)}
返回:selenium%E6%B5%8B%E8%AF%95
参数含义 | 是否必填 |
---|---|
无 |
举例:
${__UUID}
返回:32 位 uuid 值
参数含义 | 是否必填 |
---|---|
待执行的变量 | 必填 |
变量不存在,或者变量值为空,显示默认值 | 非必填 |
举例:
变量 var 不存在
${__V(var,1)}
返回:1
变量 var 的值为 1
${__V(var,)}
返回:1
变量 var1 的值为 1,变量 N 的值为 1
${__V(var${N},)}
返回:1
参数含义 | 是否必填 |
---|---|
待读取的 xml 文件 | 必填 |
xpath 路径 | 必填 |
举例:
xm 文件内容Selenium 测试,xml 文件目录/path/123.xml
${__XPath(/path/123.xml,//a[@name='name'])}
返回:Selenium 测试