jmeter 中,有很多已经封装好的函数,使用这些函数,就能实现某些特定的功能,这对于没有代码基础,或代码基础薄弱的同学来说,是一个非常大的福音。
其实,在我们使用 jmeter 的时候,遇到一些稍微复杂一点的功能实现时,
-
我们大概有三种实现方式,
- 第 1 种,就是使用 jmeter 现有的元件或下载一些插件,使用元件来实现预期功能;
- 第 2 种,就是使用 jmeter 提供的函数,有使用过 jmeter 的同学,如果细心点,应该会发现,jmeter 的函数其实也包括两部分,一部分是自带的函数,一部分是通过安装插件引入函数,使用这些函数,有时候能实现一些意想不到的效果,采用函数实现,比采用元件实现,更简单,脚本也更简洁;
- 第 3 种,使用代码实现,注意,我说的代码实现,并不限于 Java 语言,也不限于 BeanShell 元件。可以是 jmeter 二次开发,可以是 groovy 语言或 jython 语言,可以是 JSR223 元件等。
是不是,从来没有人和你这样讲过,自己也没有认真总结过?
今天,给大家讲的就是,jmeter 函数中,有关 时间 的相关函数用法,相信这篇文章的内容,在其他的地方绝对学不到的。
先看两张图,看大家能不能看明白,看明白了,说明你就已经掌握了。
获取当前时间戳函数__time()
这个函数,相信大家都清楚,大家可能用的最多的就是通过这个函数,可以生成当前时间的时间戳,或者格式化当前时间。
常用于接口参数需要时间时的参数。
这个函数,有两个可填参数。
- 如果都不填,那么获得的是当前时间的时间戳;
- 如果填第一个参数,就是格式化当前时间,填写对应的时间格式,把当前时间用对应的格式返回;如果想要格式化时间精确到毫秒:
${__time(yyyy-MM-dd HH:mm:ss:SSS,)}
- 如果填第二个参数,就是把时间结果用一个变量接收
但是,不管怎么用,都只能获取当前时间。
时间位移__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()
这个函数,相信很多同学都没有用过,也极少看到有介绍这个函数的相关文章,但是,这个函数的作用却非常大。他的作用就是将时间戳转换为本地时间。
常用于对接口响应结果中的时间戳进行转换。
这个函数,有四个参数
- 第 1 个参数,被转换的时间,为空时,表示当前时间戳,精确到毫秒
- 第 2 个参数,被转换时间的时间格式,上面时间的格式
- 第 3 个参数,转换后的时间格式,
- 例:
${__dateTimeConvert(09102020011034,MMddyyyyHHmmss,yyyyMMddHHmmss,)}
原始时间格式为:月日年时分秒,转换后为:年月日时分秒 - 例 2:
${__dateTimeConvert(1599723255000,,yyyyMMdd HHmmss,)}
一个精确到毫秒的时间戳,转换为:年月日 时分秒 格式时间
- 例:
- 第 4 个参数,定义存储结果的变量名称
随机时间__RandomDate()
看到这个,相信你就知道,肯定是随机数,是的,但是它是随机日期函数。可以在一个随机日期之间,随机选一个日期返回。注意,这个函数操作的是 日期。
这个函数,有五个参数
- 第 1 个参数,日期格式,默认为 年-月-日
- 第 2 个参数,起始日期,随机日期区间起始值,包含起始值,空时,默认为当前日期
- 第 3 个参数,结束日期,随机日期区间结束值,不包含结束值
- 例:
${__RandomDate(yyyyMMdd,20200718,20200918,,)}
从一个日期格式为 yyyyMMdd 日期区间随机区一个日期
- 例:
- 第 4 个参数,区域语言设置
- 第 5 个参数,定义存储的变量名称
好了, 看完了这篇文章,你是否已经掌握用函数生成时间戳作为输入参数,也掌握了,从接口返回时间戳,把时间戳转换为比较方便查看的本地时间。
本文由柠檬班Allen老师原创,转载需注明出处!
想了解更多咨询的同学扫描下方二维码,可以加Q群领取学习资料:753665853 备注:CSDN