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)}"),)} | 否 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__caseFormat(,,)} | 后面的版本删除了这个函数,看源码也没找到 | 否 |
这个函数,后来才发现,这个是扩展插件的函数,jmeter源码里边怪不得找不到,等后面有空在翻翻扩展插件的源码吧
jmeter-plugins-functions-2.2.jar
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__changeCase(abcd,,)} | 修改字符串大小写 | 1、待修改的内容 2、UPPER(默认大写),LOWER(小写),CAPITALIZE(首字母大写) 3、存储变量 | 需要大小写的字母 | ${__changeCase(abcd,,)} | 是 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__char()} | unicode字符串转换 | 1、unicode编码 | 需要这种转码的情况吧,不多见 | ${__char(97)} | 是 |
${__chooseRandom(,,,)} | 从指定的范围里面取值 | 1、指定字符串用“,”分开 2、作为key,存上下文中 | 可以作为一个枚举类型来选择,并且顺带的存在了context里边,就是自动生成的还带个斜杠,要手动删了 | ${__chooseRandom(abcd,dcba,cccc,hh)} | 否 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__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)} | 是 |
第二个参数如果使用“next”,好像没啥效果,也不晓得是不是我用的不对,我看大家都是这么用的,不过这个函数用的场景也不多,如果文件比较大还是用“csv Data Set config”,csvRead 只能用来读小文件
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | |
---|---|---|---|---|---|
${__dateTimeConvert(,,,)} | 格式化时间字符串 | 1、原时间串 2、原时间格式(不填也行) 3、新格式 4、待存储变量 | 转换时间格式的,感觉也用的不多 | ${__dateTimeConvert(${TESTSTART.MS},,yyyy-MM-dd HH:mm:ss,)} | 是 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__digest(,,,,)} | 算法加密 | 1、加密算法(MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512) 2、加密的字符串 3、加盐(就是在第一个参数后面追加参数) 4、大小写(true为大写,false为小写) 5、待存储变量 | 这些加密的算法场景使用吧,都是非对称加密算法,不支持解密 | ${__digest(MD5,111,,true,)} | 是 |
关于第三个参数(加盐),在给函数入参之前就可以手动加上,第三个参数可有可无
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__doubleSum(,,)} | double类型相加 | 1、一个小数 2、另一个小数 3、待存储变量 | 就是正常的小数相加 | ${__doubleSum(1.2,3.4,)} | 是 |
${__env(,,)} | 设置变量到context中 | 1、没看懂; 2、key 3、value | 就是正常的保存变量 | ${__env(,key,value)} | 是 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__escapeHtml()} | 字符串转义 | 1、待转义的字符串 | 某些不能直接用明文的场合用吧,也用的不多 | ${__escapeHtml(<"heihei">)} | 是 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__escapeOroRegexpChars(,)} | 对特殊字符转义,就是对特殊字符加个“\” | 1、待转义字符 2、待保存的变量名 | 就是做个转义,没啥大作用,在某些时候如果自己懒得转义有点用 | ${__escapeOroRegexpChars(${111},)} | 是 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__escapeXml()} | 转义xml,看源码其实只是调用了这个方法 StringEscapeUtils.escapeXml10<br | 1、待转字符串 | 感觉类似__escapeHtml函数 | ${__escapeXml( <Event RegId="1" Type="TRX_Sale" Time="20230308161915">)} | 是 |
函数 | 函数说明 | 参数说明 | 使用场景 | 案例 | 是否原生函数 |
---|---|---|---|---|---|
${__eval()} | 去执行函数内的方法 | 待执行函数或方法 | 调试的时候比较方便,可以拿context中的值,执行某些方法直接看返回,不需要跑脚本 | ${__eval(${__UUID})} | 是 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。