ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Jmeter之函数助手

Jmeter之函数助手 函数助手通过里面函数的返回值作为参数一、__counter1.功能每次调用计数器函数都会产生一个新值从1开始每次加1。支持多线程多用户计数器既可以被配置成针对每个虚拟用户是独立的也可以被配置成所有虚拟用户公用的。2.参数说明二、__Random1.功能函数__Random会返回指定范围内最大值和最小值之间的随机数。2.参数说明三、__RandomString1.功能生成指定长度的字符串2.配置说明四、__chooseRandom()和__RandomFromMultipleVars()1.功能都是从给定的多个值中随机取值, 区别是__chooseRandom()入参为常量__RandomFromMultipleVars()入参为变量需要先将随机取的值定义为变量${__chooseRandom(1,2,3,4,number)}${__RandomFromMultipleVars(item1|item2|item3,)}备注在使用此方法时候如果随机值特别多那么可以先使用Excel或者CSV文件编辑好复制选择“配置元件”—用户自定义的变量使用“Add from Clipboard”即可批量添加变量2.参数说明五、__RandomDate1.功能生成指定范围内的日期2.参数说明六、__time函数1.功能函数__time可以通过多种格式返回当前时间。2.参数说明如果省略了格式字符串那么函数会以毫秒的形式返回当前时间。其他情况下当前时间会被转成简单日期格式。${__time(,t)}以毫秒的形式返回当前时间,即时间戳 年月日时分秒表示字符yyyyMMddHHmmss 格式符可根据需要去定义如下面的定义例子 - 当前年月日时分秒${__time(yyyy-MM-dd HH:mm:ss,t1)}如2020-05-0812: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(,,PT-3H,,)}以默认时间戳格式再减去三小时${__timeShift(,,PT4M,,)}以默认时间戳格式再加上四分钟${__timeShift(,,PT-4M,,)}以默认时间戳格式再减去四分钟${__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天即调整年份则以加减天数来调整八、__UUID1.功能获取UUID(唯一识别码)即获取唯一值2.参数说明九、__changeCase1.功能修改字符串大小写2.参数说明十、__split函数1.功能函数__split会通过分隔符来拆分传递给它的字符串并返回原始的字符串。如果分隔符紧挨在一起那么函数就会以变量值的形式返回?。拆分出来的字符串以变量${VAR_1}、{VAR_2}…以此类推的形式加以返回。JMeter 2.1.2及其以后版本拖尾的分隔符会被认为缺少一个变量会返回?。2.参数说明十一、__urlencode()和__urldecode()在 JMeter 函数助手中${__urlencode()}和${__urldecode()}是一对功能相反的函数主要用于解决 HTTP 请求中特殊字符如中文、空格、、?等的传输问题。${__urlencode()} URL编码作用将字符串中的非 URL 安全字符如中文、空格等编码为 % 开头的十六进制格式确保参数在网络传输中不被服务器误解。${__urldecode()}URL 解码作用将已编码的 % 格式字符串还原为原始文本十二、__XPath函数1.功能函数__XPath读取XML文件并在文件中寻找与指定XPath相匹配的地方。每调用函数一次就会返回一个匹配项。到达文件末尾后会从头开始。如果没有匹配的节点那么函数会返回空字符串另外还会向JMeter日志文件写一条警告信息整个节点列表都会被保存在内存之中。2.参数说明十三、__log1.功能将信息写入 jmeter.log 日志文件注意jmeter Console默认记录warn及以上级别的日志2.参数说明String to be logged (and returned)记录的日志信息Log level (default INFO) or OUT or ERR日志级别Throwable text (optional)抛出的异常信息十四、嵌套函数 __V()作用函数__V可以用于执行变量名表达式并返回执行结果。它可以被用于执行嵌套函数引用。例如一个变量${m_num}但是里面的num已经是个变量可能的取值为1,23如果直接写成${m_${num}},jmeter会报错 正确的做法是使用__V函数正确写法${__V(m_${num})}m也可以是个变量形如${__V(merchantProductCode_${counter})}__V()可以进行变量嵌套重要函数中输入的值可以为具体常量也可以为从其它位置获取的变量这样能适用动态变化的值十五、Jmeter调用python脚本函数__ExecutePythonScriptJmeter调用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参数2parameter1python脚本接收的第一个参数可不填参数3parameter2python脚本接收的第二个参数可不填参数4parameter3python脚本接收的第三个参数可不填十六、将字符串写入到指定文件中 __StringToFile十七、字符串替换函数 __strReplace功能 将字符串中的特定子串替换为另一个字符串。语法${__strReplace(原字符串, 要查找的子串, 替换的新字符串, 变量名)}十八、部分字符串替换函数 __substring功能从字符串中提取指定位置区间的子串支持索引[开始, 结束)。语法${__substring(原字符串, 开始索引, 结束索引, 变量名)}注意索引是从0开始
返回列表