很多同学,都问我:“老师,我的 jmeter 里面,怎么没有 MD5 函数,base64 函数也没有,我是不是用了假的 jmeter?” |
前言
哈哈哈,不是的。jmeter 的函数,有自带函数和扩展函数两大块,自带函数,就是 jmeter 官方自带的,只要下载 jmeter,就自带了这些函数,而扩展函数,则需要安装“Custom Jmeter Functions”插件。
安装了这个插件之后,在 jmeter 的函数助手中,你就可以找到如下这些函数啦,快去试试吧!
chooseRandom 随机选择函数
随机从多个值(用英文逗号分隔)中取 1 个,最后一个为接收的变量名
如:${__chooseRandom(red,green,blue,orange,randomcolor)},从前面的值中随机取一个值
doubleSum 浮点和多值求和
对 1、2 两个参数中的多个值(用英文逗号分开,可为整数)进行求和,传递给第三个变量名
如:${__doubleSum(3.9,35.022,33,89.3,45.2,43.78,dbsum)}
env 获取环境变量
获取第 1 个参数填写的环境变量值,传递给第 2 个参数变量名,如果没有这个环境变量,则返回第 3 个参数的默认值
如:${__env(JAVA_HOME,javahome,null_javahome)}
isDefined 判断是否定义
填写的变量名,如果已定义可用,返回 true,未定义或不可用,则返回 false
如:{__isVarDefined(dbsum)} {__isVarDefined(javahome)}
MD5 加密函数
对参数内容或变量值进行 MD5 加密,传递给第 2 个参数
如:定义一个变量 pwd,值为 123456, 直接加密和引用变量加密,都相同,说明第 1 个参数可以引用变量。
base64Encode 使用 base64 编码函数
对第 1 个参数中内存或变量值进行 base64 加密,传递给第 2 个变量名
如:定义一个变量 vchar,值为 jmeterfunction, 直接加密和引用变量加密,结果相同,说明第 1 个参数可以引用变量
base64Decode 使用 base64 解码函数
对第 1 个参数内容或变量值进行 base64 解码,传递给第 2 个参数
如,定义变量 dvar 值为 am1ldGVyZnVuY3Rpb24=, 直接对其解码和引用变量解码,结果相同,说明第 1 个参数,可以引用变量
strLen 字符串或变量值长度
对第 1 个参数的内容或引用变量的值,进行长度测算,结果传递给第 2 个参数
直接对一个字符串获取长度,和引用变量获取变量值的长度,都可以。
substring 切片函数
对第 1 个参数的内容或变量的值,进行从第 2 个参数值的索引数字开始,到第 3 个参数的索引数字值(不包含)结束的切片,把结果传递给第 4 个参数
如:${__substring(am1ldGVyZnVuY3Rpb24=,3,10,)} 直接截取或引用变量进行截取,都可以
strReplace 替换函数
对第 1 个参数的内容或引用变量的值,搜索第 2 个参数的内容,有,则用第 3 个参数的值替换,把替换后的结果给第 4 个参数变量名
如:${__strReplace(jmeterfunction,j,J,)} ${__strReplace(${vchar},f,F,)} 直接对字符串或引用变量值,进行替换,都可以
uppercase 转换为大写
lowercase 转换为小写
iterationNum 迭代次数函数
迭代次数和循环次数还是有区别的
if 二元条件函数
第 1 个参数内容或变量值,与第 2 个参数内容或变量值,相等,则返回第 3 个参数的值,不相等,则返回第 4 个参数的值,最后把结果传递给第 5 个参数变量名