Jmeter内置函数的使用

Jmeter有很丰富的内置函数,这些函数可以很方便的为我们生成需要的数据,这篇文章,我们将对Jmeter的常用内置函数进行介绍,因函数量较多,将会逐步进行更新
一、_time和_timeShift时间函数
首先说下这两个函数的区别
_time函数:将当前系统的时间转换成需要的格式,包括时间戳、年月日时分秒等格式
_timeShift函数:可以对当前系统时间进行加减操作

1、_time函数
(1)、函数的参数值不填写,此时生成的表达式(${__time(,)})是直接将当前系统时间转换成时间戳

image.png

(2)、如果不需要毫秒级别的时间戳,可以直接写成这样:${__time(/1000,)}
(3)、如果需要生成yyyy-MM-dd HH:mm:ss或者yyyy/MM/dd HH:mm:ss这样的格式,可以在函数参数值后面填写正确的格式即可

image.png

2、_timeShift函数
image.png

对上图中输出的时间格式参数值就不多讲了,主要讲下对时间加减操作的表达式
(1)、对时间进行加减操作,需要使用首字母P
(2)、要进行"天"的操作,需要使用字母D
(3)、要进行"时分秒"的操作,需要使用字母T
那么这样就很好理解了,上面的表达式"P-2DT-10H+17M-10S"表示的意思就是:在当前时间下,天数减2天(-2D),小时减10小时(-10H),分钟加17分钟(+17M),秒数减10秒(-10S);比如,当前时间是2021-3-24 16:33:20 那么用了这个表达式后就变成了2021-3-22 06:50:10

二、随机函数
Jmeter内置了4种随机函数,可以解决很多类型的随机取值问题,比如指定范围的数值随机取值、指定范围的字符串随机取值、指定时间格式范围内的随机取值、指定字符串里面进行取值等
1、__Random函数
在指定的数字范围内,随机生成一个值,如下所示

image.png

2、__RandomDate函数
在指定的时间格斯范围内,随机生成一个时间,如下所示
image.png

3、__RandomFromMultipleVars函数
在指定的几个参数值中,随机选取一个值(这个函数在项目中用得比较多,比如某个项目,新建商品的时候,商品的类型可以分为"家电"、“医用"、”零食“,这时候,做接口测试时,就可以随机的从这几种商品类型中选择一个)
image.png

这里要注意的就是,"源变量"之间一定要用"|"符号进行分割,但是在实际使用中,我们有个地方需要注意:”源变量“需要添加到用户变量里边,在__RandomFromMultipleVars函数中引用他的变量名,具体操作步骤如下
(1)、将"源变量"添加到用户变量

image.png

(2)、在具体的接口中引用自定义变量
image.png

4、__RandomString函数
在给定的"源字符串"中,随机选取指定长度的字符串,选取的每个字符可以相同
image.png

三、__jexl3函数
这个函数通常和if逻辑控制器一起使用,用来判断表达式是否达到预期再决定是否执行if控制器里面的逻辑
image.png

举个例子:
1、接口A执行完成后,会返回一个value参数,该参数可能返回PLC、PLD、PLE中的其中一个
2、接口B的执行方式依赖接口A返回的value值
(1)、如果接口A返回的参数value==PLC,则执行HTTP1请求
(2)、如果接口A返回的参数value==PLD,则执行HTTP2请求
(3)、如果接口A返回的参数value==PLE,则执行HTTP3请求
那么这个场景,我们怎么去写脚本,当然__jexl3函数就派上了大用场,首先添加一个if控制器,if控制器中的表达式就直接使用__jexl3函数生成即可:
image.png

然后在对应的if控制器下添加http取样器即可
image.png

依次类推,就可以实现根据不同的返回值,可以执行不同的请求的功能

你可能感兴趣的:(Jmeter内置函数的使用)