我正在使用while控制器进行一些测试。 在我的测试中,它每3秒检查一次正确的响应文本,如果不满足条件,则重复。 我想跟踪控制器运行的时间,重复自己直到条件正确。 有没有办法做到这一点?
答案 0 :(得分:2)
您可以通过JMeter Functions执行此操作,即:
类似的东西:
在While Controller启动之前,在脚本的某处放置以下表达式:
${__time(,before)}
它会将当前时间戳存储到${before}
JMeter变量
在While Controller结束后,在脚本的某处放置以下表达式:
${__longSum(${__time(,)},-${before},)}
它将获取新的当前时间戳并通过从中减去${before}
变量值来计算增量
演示:
有关使用JMeter功能的更多信息,请参阅How to Use JMeter Functions帖子系列。
答案 1 :(得分:0)
您可以使用Counter和Bean Shell Post Processor。
将计数器配置元素保留在While控制器内。 Count的值将在每次迭代中递增。
因此,在if条件下,您可以将BeanShell后处理器添加到If控制器内的采样器中,并使用以下公式计算总时间:
count value * 3 = total seconds waited to reach If Condition.
以下是在TestPlan中放置元素:
While Controller
...Counter
...If Controller
......HTTP Sampler
.........Bean Shell Post Processor
Bean Shell Post Processor代码:
int count = Integer.parseInt(vars.get("count"));
int totalTime = count*3;
log.info("total time waited : " + totalTime);
vars.put("totalTime", totalTime);
注意:该值保存在totalTime
变量中,因此您可以使用${totalTime}