背景:在使用jmeter的过程中,大多数使用了元件,而有时不满足需求时,需要自己java开发代码,其实函数助手已经封装好了很多实用的函数,如随机函数random\加密函数md5\计数函数counter等,甚至有csv简化的参数元件函数,以下说明都是Jmeter提供的函数使用方法:
1、_BeanShell() bs脚本函数
Expression to evaluate:表达式,可以是beanshell语句或者是文件地址;
Name of variable in which to store the result(optional):储存值的变量,可以直接参数引用;
点击Generate生成函数表达式:${__BeanShell("shanghai"+"road",test)}
解释:引用会把shanghai和road拼接起来,如shanghairoad ${test}储存的是:shanghairoad
2、_CSVRead() csv参数文件读取
CSV file to get values from | *alias: 填函数csvread读取的绝对路径,格式可以是txt、csv,也可以是别名*alias,只不过要先生成别名代替绝对路径下的文件;如下图:
然后在函数_CSVRead第一行输入上一个步骤生成的别名*file,并且需要在脚本中使用;
Column number of csv file | next | *alias:读取文件的列、下一行、别名;如下图(即使用别名又使用next读取文件行列):
上一步骤先是有别名代替文件绝对路径:*file >> D:\data.txt,函数再生成读取文件的下一行;
${__CSVRead(D:\data.txt,*file)} :解释:*file = D:\data.txt
${__CSVRead(*file,0)} || ${__CSVRead(*file,1)} || ${__CSVRead(*file,next)} 解释:读文件第一列、第二列(文件是从0开始读起),文件的下一行
如图所示(添加上面的java request,不使用next和next的对比):
admin1,192.168.1.1
admin2,192.168.1.2
admin3,192.168.1.3
3、_javaScript() java脚本函数
JavaScript expression to evaluate: 支持javascript脚本的表达式,如9+8,9*7...如Date()...
Name of variable in which to store the result(optional):储存值的变量,可直接引用,如${now}
点击Generate生成${__javaScript(Date(),now)},结果就是获取当前系统时间;
4、_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):储存一个随机生成常量的变量,可以被引用;
点击Generate生成函数${__Random(1,999,Num)},解释:随意生成一个1-999之间的数值被Num变量储存;
5、_RandomString() 随机字符串
Random string length:随机字符的长度,2代表两个字符
Chars to use for random string generation:字符类型,可以是纯数字,纯字符,字符字母数字组合
Name of variable in which to store the result (optional):随机生成的字符被变量保存
${__RandomString(2,abcdefghijklmn,name)},解释:随机生成一个2位长度的字符串被name保存;
6、_time() 时间(可以是时间格式、时间戳)
Format string for SimpleDateFormat (optional):时间格式,支持,年yyyy,月MM,日dd,时hh,分mm,秒ss,毫秒sss,之间任意符号连接,/1000就是10位时间戳(精确到秒),不填就是精确到毫秒13位时间戳;
Name of variable in which to store the result (optional):保存任意时间格式的标量,可被引用;
${__time(/1000,time)} 解释:精确到秒的10位时间戳;
${__time(,)} : 默认该公式精确到毫秒级别, 13位数时间戳
7、其他作用的函数:_counter()计数器函数、_machineIP()、_machineName()带不带参数都是会返回本机ip地址及机器名;