函数助手:通过里面函数的返回值作为参数
一、__counter
1.功能
每次调用计数器函数都会产生一个新值,从1开始每次加1。支持多线程(多用户):计数器既可以被配置成针对每个虚拟用户是独立的,也可以被配置成所有虚拟用户公用的。
2.参数说明
二、__Random
1.功能
函数__Random会返回指定范围内最大值和最小值之间的随机数。
2.参数说明
三、__RandomString
1.功能
生成指定长度的字符串
2.配置说明
四、__RandomFromMultipleVars
1.功能
从给定的多个值中随机取值, 注意:入参为Source Variable(s) ,为变量,那么需要先将随机取的值定义为变量,如下图,然后在函数中值栏输入变量名,那么即根据变量名对应的值随机取值
备注:在使用此方法时候,如果随机值特别多,那么可以先使用Excel或者CSV文件编辑好,复制,选择“配置元件”—用户自定义的变量,使用“Add from Clipboard”,即可批量添加变量
2.参数说明
五、__RandomDate
1.功能
生成指定范围内的日期
2.参数说明
六、__time函数
1.功能
函数__time可以通过多种格式返回当前时间。
2.参数说明
如果省略了格式字符串,那么函数会以毫秒的形式返回当前时间。其他情况下,当前时间会被转成简单日期格式。
${__time(,t)} 以毫秒的形式返回当前时间,即时间戳
年月日时分秒表示字符:yyyyMMddHHmmss 格式符可根据需要去定义,如下面的定义例子 -
当前年月日时分秒:${__time(yyyy-MM-dd HH:mm:ss,t1)} 如:2020-05-08 12:27:30
当前年月日: ${__time(yyyy-MM-dd,t2)} 如:2020-05-08
当前年月:${__time(yyyy-MM,t3)} 如:2020-05
当前月日:${__time(MM-dd,t4)} 如:05-08
当前时分秒:${__time(HH:mm:ss,t5)} 如:12:30:05
${__time(yyyy,nowYear)} 当前年份
${__intSum(${__time(yyyy,nowYear)},+1,nextYear)} 下一年
${__time(MM,nowMonth)} 当前月份
${__intSum(${__time(MM,nowMonth)},+1,nextMonth)} 下一月份
${__time(dd,nowDay)} 当前日
${__intSum(${__time(dd,nowDay)},+1,nextDay)} 下一日
${__time(HH:mm:ss,nowDate)} 时分秒
**日期相加减通过__intSum()函数实现,中间配置上格式符**,如:
${__time(yyyy-MM,nowDate)}-${__intSum(${__time(dd,nowDay)},-7,nextDay)} ${__time(HH:mm:ss,nowDate)}
七、__timeShift()
功能:__timeShift(格式,日期,移位,语言环境,变量):可对时间日期进行加减操作,默认时间戳格式,也可以自定义格式
格式 - 将显示创建日期的格式。如果该值未被传递,则以毫秒为单位创建日期。
日期 - 这是日期值。用于如果要通过添加或减去特定天数,小时或分钟来创建特定日期的情况。如果不填,则使用当前日期进行移位加减操作。非必填项
移位 -表示要从日期参数的值中添加或减去多少天,几小时或几分钟。加用符号+,减用符号-;如果该值未被传递,则不会将任何值减去或添加到日期参数的值中。如下所述:
区域设置 - 设置创建日期的显示语言。不是必填项
变量 - 创建日期的值将被分配给的变量的名称。不是必填项
举例说明:
指定格式(注意有5个参数,中间有4个英文逗号,非所有参数都必填):
${__timeShift(,,P1DT3H4M,,)}:以默认时间戳格式,再加上一天,三小时和四分钟
${__timeShift(,,P-1DT-3H-4M,,)} 以默认时间戳格式,再减去一天,减去三小时和减去四分钟
${__timeShift(,,P1D,,)}:以默认时间戳格式,再加上一天;减用符号-,如${__timeShift(,,P-1D,,)},减去一天
${__timeShift(,,PT3H4M,,)}:以默认时间戳格式,再加上三小时和四分钟
${__timeShift(,,PT3H,,)}:以默认时间戳格式,再加上三小时
${__timeShift(,,PT4M,,)}:以默认时间戳格式,再加上四分钟
${__timeShift(yyyy-MM-dd HH:mm:ss,,PT20.345S,,)}:以指定格式创建当前日期,再加上20.345S
${__timeShift(dd-MM-y-HH-mm-ss,,P1DT3H4M,,)}:以指定格式创建当前日期,再加上一天,三小时和四分钟
${__timeShift(yyyy-MM-dd,,P-1D,,)}:以指定格式创建当前日期,减去一天
${__timeShift(dd/MM/yyyy,,P365D,,)}:以指定格式创建当前日期,再加上365天,即调整年份,则以加减天数来调整
八、__UUID
1.功能
获取UUID(唯一识别码),即获取唯一值
2.参数说明
九、__changeCase
1.功能
修改字符串大小写
2.参数说明
十、__split函数
1.功能
函数__split会通过分隔符来拆分传递给它的字符串,并返回原始的字符串。如果分隔符紧挨在一起,那么函数就会以变量值的形式返回"?"。
拆分出来的字符串,以变量${VAR_1}、{VAR_2}…以此类推的形式加以返回。JMeter 2.1.2及其以后版本,拖尾的分隔符会被认为缺少一个变量,会返回"?"。
2.参数说明
十一、__V
1.功能
函数__V可以用于执行变量名表达式,并返回执行结果。
2.参数说明
十二、__XPath函数
1.功能
函数__XPath读取XML文件,并在文件中寻找与指定XPath相匹配的地方。每调用函数一次,就会返回下一个匹配项。到达文件末尾后,会从头开始。
如果没有匹配的节点,那么函数会返回空字符串,另外,还会向JMeter日志文件写一条警告信息;整个节点列表都会被保存在内存之中。
2.参数说明
十三、__log
1.功能
返回输入的字符串信息
2.参数说明
String to be logged (and returned):记录的日志信息
Log level (default INFO) or OUT or ERR:日志级别
Throwable text (optional):抛出的异常信息
十四、嵌套函数 __V()
作用:函数__V可以用于执行变量名表达式,并返回执行结果。它可以被用于执行嵌套函数引用。
例如:
一个变量${m_num},但是num是个变量,可能的取值为1,2,3,如果${m_${num}},jmeter会报错,
正确的做法是使用__V函数,正确写法:${__V(m_${num})}
重要:函数中输入的值可以为具体常量,也可以为从其它位置获取的变量,这样能适用动态变化的值
十五、Jmeter调用python脚本函数__ExecutePythonScript
Jmeter调用python脚本函数__ExecutePythonScript,当然也可以通过JSR223在Jmeter中写python脚本实现相同功能
使用说明:
1.下载jmeter-functions-execute-python-script-1.0.jar包放到目录%JMETER_HOME%\lib\ext下
2.启动Jmeter,进入【选项】-【函数助手对话框】找到函数【__ExecutePythonScript】如下图:
参数1:脚本所在路径,示例:G:\测试代码\cloudhua\interfaceTest\pythonScripts\fileBlockScript.py
参数2:parameter1,python脚本接收的第一个参数;(可不填)
参数3:parameter2,python脚本接收的第二个参数;(可不填)
参数4:parameter3,python脚本接收的第三个参数;(可不填)