jmeter 内置函数整理

今天在做加密的时候,发现jmeter 的MD5 函数在某些场景下居然不能用,然后发现还有其他函数可代替,萌生了要整理一下jmeter内置的函数,就有了这篇文章,当为自己开拓下思路吧!!! 慢慢来这是一偏持续更新的文章
函数函数说明参数说明使用场景案例是否原生函数
${__base64Decode(,)}base64解码1、base64加密参数
2、需要保存的变量
解密场景${__base64Decode(MTIzMjE0MTI0,)}
${__base64Encode(,)}base64编码1、明文参数
2、保存的变量
加密场景${__base64Encode(string,)}
${__BeanShell(,)}beanshell sampler 的临时代替方案1、beanshell 内容,特殊符号需要转意
2、保存的变量
变量较小时候的代替${__BeanShell(vars.put("yytest"\,"${__Random(1000,5555)}"),)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__caseFormat(,,)}后面的版本删除了这个函数,看源码也没找到

这个函数,后来才发现,这个是扩展插件的函数,jmeter源码里边怪不得找不到,等后面有空在翻翻扩展插件的源码吧
jmeter-plugins-functions-2.2.jar

函数函数说明参数说明使用场景案例是否原生函数
${__changeCase(abcd,,)}修改字符串大小写1、待修改的内容
2、UPPER(默认大写),LOWER(小写),CAPITALIZE(首字母大写)
3、存储变量
需要大小写的字母${__changeCase(abcd,,)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__char()}unicode字符串转换1、unicode编码需要这种转码的情况吧,不多见${__char(97)}
${__chooseRandom(,,,)}从指定的范围里面取值1、指定字符串用“,”分开
2、作为key,存上下文中
可以作为一个枚举类型来选择,并且顺带的存在了context里边,就是自动生成的还带个斜杠,要手动删了${__chooseRandom(abcd,dcba,cccc,hh)}

image.png
image.png

函数函数说明参数说明使用场景案例是否原生函数
${__counter(,)}就是个计数器,和配置元件里的计数器一模一样1、 TRUE,每个用户有自己的计数器
FALSE,使用全局计数器
2、存储结果变量的
计数器的函数版本,用的地方还挺多${__counter(TRUE,)}
${__CSVRead(,)}按照指定的列读取文件1、文件名称\或者文件别名(需要先有一个csvRead函数,才可以用)
2、第几列\next(下一列)\文件别名
不咋多用,感觉不是很方便1、${__CSVRead(C:\Users\bao\Desktop\案例\jmeter\data\read.csv,1)} // 获取第二行的列<br />2、 ${__CSVRead(C:\Users\bao\Desktop\案例\jmeter\data\read.csv,read)}${__CSVRead(*read,0)} -> ${__CSVRead(read,1)}

image.png
image.png
image.png

第二个参数如果使用“next”,好像没啥效果,也不晓得是不是我用的不对,我看大家都是这么用的,不过这个函数用的场景也不多,如果文件比较大还是用“csv Data Set config”,csvRead 只能用来读小文件

函数函数说明参数说明使用场景案例
${__dateTimeConvert(,,,)}格式化时间字符串1、原时间串
2、原时间格式(不填也行)
3、新格式
4、待存储变量
转换时间格式的,感觉也用的不多${__dateTimeConvert(${TESTSTART.MS},,yyyy-MM-dd HH:mm:ss,)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__digest(,,,,)}算法加密1、加密算法(MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512)
2、加密的字符串
3、加盐(就是在第一个参数后面追加参数)
4、大小写(true为大写,false为小写)
5、待存储变量
这些加密的算法场景使用吧,都是非对称加密算法,不支持解密${__digest(MD5,111,,true,)}

image.png
关于第三个参数(加盐),在给函数入参之前就可以手动加上,第三个参数可有可无

函数函数说明参数说明使用场景案例是否原生函数
${__doubleSum(,,)}double类型相加1、一个小数
2、另一个小数
3、待存储变量
就是正常的小数相加${__doubleSum(1.2,3.4,)}
${__env(,,)}设置变量到context中1、没看懂;
2、key
3、value
就是正常的保存变量${__env(,key,value)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__escapeHtml()}字符串转义1、待转义的字符串某些不能直接用明文的场合用吧,也用的不多${__escapeHtml(<"heihei">)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__escapeOroRegexpChars(,)}对特殊字符转义,就是对特殊字符加个“\”1、待转义字符
2、待保存的变量名
就是做个转义,没啥大作用,在某些时候如果自己懒得转义有点用${__escapeOroRegexpChars(${111},)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__escapeXml()}转义xml,看源码其实只是调用了这个方法
StringEscapeUtils.escapeXml10<br
1、待转字符串感觉类似__escapeHtml函数${__escapeXml( <Event RegId="1" Type="TRX_Sale" Time="20230308161915">)}

image.png

函数函数说明参数说明使用场景案例是否原生函数
${__eval()}去执行函数内的方法待执行函数或方法调试的时候比较方便,可以拿context中的值,执行某些方法直接看返回,不需要跑脚本${__eval(${__UUID})}

废了
1 声望1 粉丝

引用和评论

0 条评论