Bootstrap

Jmeter之函数助手

函数助手:通过里面函数的返回值作为参数

一、__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脚本接收的第三个参数;(可不填)

;