目录
- __BeanShell
- __CSVRead
- __Random
- __RandomDate
- __RandomString
- __time
- __javaScript
- __substring
- __split
- __chooseRandom
- __if
Jmeter常用函数
Jmeter提供了很多函数,但我们一般只会用到部分的常用函数,所以重点讲解常用的函数及其使用方法
Jmeter查询可使用的函数
打开Jmeter,点击Tools——>函数助手对话框,打开函数助手对话框
函数介绍及其使用
__BeanShell
- 作用:执行BeanShell语法的程序语句或者Bean Shell脚本文件,比如得到一个算数运算的结果,拼接两个字符串。
- 参数:
Expression to evaluate:必填,BeanShell语法的程序语句或者Bean Shell脚本文件
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 示例:
${__BeanShell(156/13,)}:得到156除以13的结果为12
${__BeanShell(“adf”+”8998”,)}:得到两个字符串拼接后的结果为adf8998
${__BeanShell(“${msg01}”+”${msg02}”,msgvar)}:得到${msg01}与${msg02}拼接的字符串${msg01}${msg02},并将其保存至变量msgvar中,使用${msgvar}即可调用
__CSVRead
- 作用:从csv或者txt文件读取指定列的值,从第0列开始,如果有多个线程,按顺序从第一行开始读取,如果线程数超过数据行数,则重新从第一行开始循环获取。
- 参数:
CSV file to get values from | *alias:必填,文件绝对路径
Column number of CSV file | next | *alias:必填,读取第几列的数据,从0开始 - 示例:
${__CSVRead(F:\PPM\JmeterScripts\TSN.csv,0):获取TSN.csv文件中第一列的数据
${__CSVRead(F:\PPM\JmeterScripts\TSN.csv,1):获取TSN.csv文件中第二列的数据
__Random
- 作用:生成指定范围内的随机数
- 参数:
The minimum value allowed for a range of values:必填,开始值,包括开始值
The maximum value allowed for a range of values:必填,结束值,包括结束值
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 实例:
${__Random(1,100,num)}:随机生成1~100之间的整数,并赋值给变量num
__RandomDate
- 作用:生成指定范围内的日期
- 参数:
Format string for DateTimeFormatter (optional) (default yyyy-MM-dd):非必填,日期格式,默认yyyy-MM-dd
Start date (optional) (default: now):非必填,开始日期
End date:必填,结束日期
String format of a locale (ex: fr_FR , en_EN) (optional):非必填,语言
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 示例:
${__RandomDate(yyyyMMdd,20210101,20220329,,):以yyyyMMdd格式随机生成20210101到20220329的随机日期
__RandomString
- 作用:生成指定长度的字符串
- 参数:
Random string length:必填,字符串长度
Chars to use for random string generation:必填,可选字符串
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 实例:
${__RandomString(10,qwertyuiopasdfghjklzxcvbnm1234567890,name)}:在字符串qwertyuiopasdfghjklzxcvbnm中随机获取6位随机字符串
__time
- 作用:返回当前时间,可指定返回格式。
年:yyyy
月:MM
日:dd
时:hh
分:mm
秒:ss
- 参数:
Format string for SimpleDateFormat (optional):非必填,返回格式
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 实例:
${__time(,)}:获取13位时间戳,比如1648524937215
${__time(yyyy-MM-dd hh:mm:ss,)}:获取当前时间并生成指定格式yyyy-MM-dd hh:mm:ss
__javaScript
- 作用:返回JavaScript脚本执行结果,还可以直接调用jmeter的内置函数。
- 参数:
JavaScript expression to evaluate:必填,js表达式
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 示例:
${__javaScript(“sdjfsjfk89898”.substring(8,13),):截取字符串中索引位8~13位的值,逗号前要加转义符‘\’。
__substring
- 作用:从字符串中获取指定范围的子串
- 参数:
String to get part of:必填,需要获取子串的字符串
Begin index (first is 0):必填,开始索引,从0开始
End index:必填,结束索引,不包括
Name of variable in which to store the result (optional):非必填,储存结果的变量名 - 示例:
${__substring(afsdkjfs78564654,3,9,):截afsdkjfs78564654的第4个到第9个之间的字符串
__split
- 作用:根据分隔符分割字符串
- 参数:
String to split:必填,需要分隔的字符串
variable Name:非必填,储存结果的变量名
String to split on. Default is , (comma).:非必填,分隔符,默认为英文逗号 - 示例:
${__split(asd4|556654,var,|)}:以|分隔asd4|556654字符串,并保存至变量var
__chooseRandom
- 作用:从指定的范围里面取值
- 参数:
Any number of values to choose from:必填,指定多个字符串,字符串数量必须>=2,多个字符串之间用英文逗号分隔
Last value must be variable name where choice will be stored:必填,储存结果的变量名 - 示例:
${__chooseRandom(true,false,var)}:随机生成true或false,并赋值给var
__if
- 作用:判断给定条件是否成立
- 参数:
Actual value:非必填,实际值
Expected value:非必填,期望值
Result if actual == expected:非必填,如果相等则返回的值
Result if actual != expected:非必填,如果不相等则返回的值
Name of variable in which to store the result (optional):非必填,引用变量名 - 示例:
${__if(0,1,success,fail,msg)}