7-Jmeter函数

7-Jmeter函数

用户参数

每次迭代更新一次

每次迭代更新一次:勾选的话,在当前线程组中,所有取样器执行完一轮请求,才会更新一次,没有执行完不会更新值

每次跌打更新一次

应用场景

做性能测试时,先注册随机账号,然后再用账号登录,不需要提前准备测试数据

如果使用用户定义变量的话,生成的手机号,一直不发生改变,只有第一次注册成功,之后都是注册失败。但是登录可以一直成功。

变量的引用与定义

变量的命名规则

字母、数字、下划线

函数助手

写法:双下划线开头+函数名称(区分大小写)+小括号+括号中以逗号分隔的参数

统计函数

1
${__counter(,)} 

函数例子

新建一个「调试取样器」,并将名称修改为${__counter(,)}

调试取样器

修改「线程组」循环次数为5次

线程组

运行后查看「查看结果树」

查看结果树

统计函数类似元件-计数器

新建一个「计数器」

  • 设置它的引用名称为${d}
  • 开始值为1
  • 递增值为2

计数器

新建一个「调试取样器」,并将名称修改为${d}

运行后查看「查看结果树」

查看结果树

时间函数

时间

  • ${__time(,)}:获取当前时间戳

  • ${__timeShift(,,,,)}:时间位移

  • ${__dateTimeConvert(,,,)}:时间戳转为本地时间

  • ${__RandomDate(,,,,)}:随机时间

获取当前时间戳函数${__time(,)}

time

可能用的最多的就是通过这个函数,可以生成当前时间的时间戳,或者格式化当前时间

常用于接口参数需要时间时的参数。

这个函数,有两个可填参数。

  • 如果都不填,那么获得的是当前时间的时间戳;
  • 如果填第一个参数,就是格式化当前时间,填写对应的时间格式,把当前时间用对应的格式返回;如果想要格式化时间精确到毫秒:${__time(yyyy-MM-dd HH:mm:ss:SSS,)}
  • 如果填第二个参数,就是把时间结果用一个变量接收

但是,不管怎么用,都只能获取当前时间

时间位移${__timeShift(,,,,)}

timeShift

这个函数,是离获取当前时间的 time 函数最近的一个函数,也是大家最容易与 time 函数混淆的函数。是时间位移函数。

常见于脚本中需要做时间偏移计算时用。

这个函数,它有五个可选参数:

如果所有的都不填,哪也是获取当前的时间戳;

第 1 个参数,是格式化时间,如果不填,时间戳精确到毫秒,如果填了,就格式化输出时间;

第 2 个参数,日期,上一个参数的格式返回这个日期,如:${__timeShift(yyyy-MM-dd,20200915,,,)} 如果未填,则为当前日期;

第 3 个参数,时间位移,以可选的正号‘+’ 和负号‘-’开头,负号‘-’开头,表示整个时间相减;再以大小写 p 为前缀,后面跟具体位移数和单位,单位’D’为天,’H’为小时,’M’为分钟, ‘S’为秒,而’T’必须在任意一个 H\M\S 出现之前,数字可以是正数或负数;天\时\分,前的数字为整数,秒,可以是小数。如在当前日期上增加 2 天 4 小数 6 分 10.234 秒:${__timeShift(yyyy-MM-dd HH:mm:ss:SSS,,p2dt4h6m10.234s,,)}

第 4 个参数,区域语言设置

第 5 个参数,定义存储结果的变量名

时间戳转为本地时间${__dateTimeConvert(,,,)}

dateTimeConvert

将时间戳转换为本地时间

常用于对接口响应结果中的时间戳进行转换。

这个函数,有四个参数

第 1 个参数,被转换的时间,为空时,表示当前时间戳,精确到毫秒

第 2 个参数,被转换时间的时间格式,上面时间的格式

第 3 个参数,转换后的时间格式

  • 例:${__dateTimeConvert(09102020011034,MMddyyyyHHmmss,yyyyMMddHHmmss,)} 原始时间格式为:月日年时分秒,转换后为:年月日时分秒
  • 例 2:${__dateTimeConvert(1599723255000,,yyyyMMdd HHmmss,)} 一个精确到毫秒的时间戳,转换为:年月日 时分秒 格式时间

第 4 个参数,定义存储结果的变量名称

随机时间${__RandomDate(,,,,)}

RandomDate

它是随机日期函数。可以在一个随机日期之间,随机选一个日期返回。注意,这个函数操作的是 日期

这个函数,有五个参数

第 1 个参数,日期格式,默认为 年-月-日

第 2 个参数,起始日期,随机日期区间起始值,包含起始值,空时,默认为当前日期

第 3 个参数,结束日期,随机日期区间结束值,不包含结束值

  • 例:${__RandomDate(yyyyMMdd,20200718,20200918,,)} 从一个日期格式为 yyyyMMdd 日期区间随机区一个日期

第 4 个参数,区域语言设置

第 5 个参数,定义存储的变量名称

简单加密

简单加密

${__digest(,,,,)}

加密

整数java运算

${__intSum(1,2,)}

运算

执行脚本

__jexl3:支持jython、groovy、javascript

打印日志

__log

打印日志

获取当前IP

${__machineIP()}

当前IP

 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
您的支持将鼓励我继续创作!