jmeter常见函数
/*
__counter:统计函数,加1计算器,只能实现 + 1
如果想要自定义递增的步长
*/
__counter加1函数
-
__counter
-
统计函数,加1计算器,只能实现 + 1
-
计数器
可以实现:自定义递增步长
-
计数器(元件)
-
最大值: 当运行获取的最大值,超过我们设置的最大值时候,又会从起始值开始
-
四则运算函数
-
可以使用函数:
${\_\_jexl3(,)} ${\_\_javaScript(,)} ${\_\_groovy(,)}
时间相关函数
-
${__time(,)} 获取当前时间戳
-
${__timeShift(yyyy-MM-dd,,p4d,,)} 时间偏移函数
-
${__dateTimeConvert(,,,)} 时间格式转换
-
${__RandomDate(,,,,)} 随机一个日期
加密函数
-
${__digest(md5,123456,,,)} 加密函数。 就对123456进行md5加密
__groovy函数
__jexl3
两者使用是一样的
JEXL expression to evaluate
:填写要计算的表达式
/*
==是否等于,如${__jexl3(${VAR}==1,)},判断${VAR}变量是否等于1。
!=不等于,如${__jexl3(${VAR}!=1,)},判断${VAR}变量是否不等于1。
!非,如${__jexl3(!(${VAR}!=1),)},对${VAR}!=1的结果取反。
&&且和||或,如${__jexl3(${VAR}==1 && "${name}" != "张三",)}。
>大于或者>=大于等于,如${__jexl3(${count}>=10,)}。
*/
属性函数
跨线程组传递参数使用
-
${__setProperty(,,)} 设置动态属性函数
-
${__P(,)} ${__property(,,)} 获取属性
_V拼接函数
Jmeter 本身是不支持嵌套函数的,所以想要嵌套就得用这个函数!
/*
前置条件,user也是变量
user_1、 user_2、user_3
${user_${__counter(,)}} 错的 这种写法不行,
${__V(${user}_${__counter(,)},)}
因为,变量引用时,变量名称中再使用函数时,没有被运行
应用场景:
+ 在后置处理器提取多个值,进行关联的时候,会要使用
+ 在jdbc从数据库返回多值时,也会使用
坑:
使用函数助手时,会默认加个"," 要把这个默认逗号去除掉,不然会导致拼接不成功
所以函数助手会一直返回空
案例:
${__V(${user}_${__counter(,)},)} 错误的
${__V(${user}_${__counter(,)})} 正确的
*/
threadNum函数
# threadNum函数的值只与线程组中设置的线程数有关,设置了几个线程数,则threadNum的最大值就为几,跟执行运行多久没有任何关系
# 不同线程组之间的线程编号是独立的,互不影响