jmeter中用while循环实现wait until

时间:2024-05-19 10:27:39

  最近刚入职一家公司,要实现一个恢复出厂->check->升级->check->循环   的自动化测试小脚本。开始时用jmeter调通相关接口的,就想直接用jmeter实现。在处理等待恢复出厂和升级成功这两个步骤结果的时候,很怀念selenium2里的waituntil 功能。研究了下jmeter的while循环,最终用while循环和实现了一个类似waituntil的功能。

  主要分三个模块 初始化,循环体,超时判断。循环中判断

1 初始化

jmeter中用while循环实现wait until

本例中 初始化三个参数。开机时间defalt,开机时间restore,whilecount。

开机时间defalt和开机时间restore均初始化为接口当前获取到的开机时间,循环中开机时间defalt不变,每次循环均刷新开机时间restore,如果两个时间不一样则退出循环。

whilecount 初始化为0,循环中自加1,超过最大循环次数,则退出循环。

whilecount参数初始化用beanshell实现:

jmeter中用while循环实现wait until

2 循环体。包括判断条件,刷新开机时间restore,sleep,whilecount++

jmeter中用while循环实现wait until

判断条件:(注意这里的值一定要初始化)

jmeter中用while循环实现wait until

sleep调整每个循环的延迟,通过sleep×最大循环次数,可以控制这个waituntil模块的超时时间

sleep用Constant Timer实现:

jmeter中用while循环实现wait until

while++用beanshell实现:

jmeter中用while循环实现wait until

3.超时判断

由于while有两个条件,

${__javaScript(${while_count}<${max_while_count} && "${opentimestamprestore}"=="${opentimestampdefault}")}

所以结束时得要判断一下是不是超时退出的。即判断${while_count}==${max_while_count} ?

这个用beanshell实现,return whilecount++的值,在加响应断言即可

jmeter中用while循环实现wait until

jmeter中用while循环实现wait until

主要实现就是这样。记录下防止忘记,同时为需要的网友提供思路。