JMeter函数是一种特殊值,可用于除测试计划外的任何组件。函数调用的格式如下所示:
${__functionName(var1,var2,var3)}
其中,__functionName为函数名,括号内是函数的参数,无参数时可以不用括号,如${__UUID}
Tips:
如果参数包含逗号,那么一定要使用“\”来转义,否则JMeter会把它当作一个参数分隔符
实际使用时,可通过函数助手对话框选择函数,设置参数后,点击生成按钮生成函数字符串。
下文讲述几个常用的JMeter函数。
__Random函数
返回指定最大值和最小值之间的一个随机数。
示例:
${__Random(1,10,)} 返回1到10之间的随机数
${__Random(0,10,MYVAR)} 返回0到10之间的随机数,并将其存储在MYVAR中。 ${MYVAR}将包含随机数
__RandomString函数
返回指定长度的随机字符串。
示例:
${__RandomString(5)} 返回一个5个字符的随机字符串
${__RandomString(10,abcdefg)} 返回从abcdefg集合中选取的10个字符的随机字符串,如cdbgdbeebd或adbfeggfad,...
__UUID函数
返回一个伪随机类型4通用唯一标识符(UUID)。
示例:
${__UUID}
${UUID()}
__time函数
返回当前时间。
示例:
${__time(,)} 当前时间(毫秒级时间戳)
${__time(/1000,)} 当前时间(秒级时间戳)
${__time(yyyy-MM-dd,)} 当前时间(指定格式的日期)
__counter函数
线程每次调用时会生成一个新的数字,从1开始,每次增加+1。
实例:
${__counter(TRUE,)} 每个用户(线程)有自己的计数器
${__counter(TRUE,)} 使用全局计数器
__StringFromFile函数
用于从文本文件读取字符串,支持读取多个文件。
示例:
${_StringFromFile(demo.txt,,,)} 读取demo.txt
${_StringFromFile(PIN#'.'DAT,,1,2)} 读取demo1.txt, demo2.txt
${_StringFromFile(PIN.DAT,,,2)} 读取demo.txt两次
__CSVRead函数
从csv文件读取字符
列号文件中的列号。 0 =第一列,1 =下一列 ,以此类推 ... next - 转到文件下一行
示例:
(假设如下4条按顺序调用)
${__CSVRead(random.txt,0)} 读取COL1a
${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)} 读取COL2a
${__CSVRead(random.txt,0)} 读取COL1b
${__CSVRead(random.txt,1)}${__CSVRead(random.txt,next)} 读取COL2b