我正在对生成报告进行负载测试,要求报告应在10分钟内生成。
它包括一个用于生成报告的HTTP post请求,然后有一个状态检查调用,该调用不断检查第一个请求的状态。一旦第一个请求的状态更改为完成,则报告生成成功。
基本上,我希望在第一个请求开始时启动计时器,并在状态完成后停止计时器,如果时间小于10分钟,则需要添加Assert,否则测试通过。
我尝试了多种方法,比如使用Transaction控制器,并将所有请求添加到该控制器下,但这并没有给予总和,而是给出了该控制器下所有请求的平均响应时间。
此外,我还尝试了beanshell侦听器,提取每个请求的响应时间,并将它们全部添加进去...
var responseTime;
props.put("responseTime", sampleResult.getTime());
log.info(" responseTime :::" + props.get("responseTime"));
log.info("time: "+ sampleResult.getTime());
props.put("responseTime", (sampleResult.getTime()+props.get("responseTime")));
log.info("new responseTime :::" + props.get("responseTime"));
但是,我对添加这些请求的响应时间不感兴趣,相反,我只需要知道从触发报告到报告显示完成状态所经过的时间。
所有的jmeter计时器都在增加延迟,我不想增加延迟,而不是我需要它作为一个计时器。
任何帮助都是非常感谢的。
谢谢你
1条答案
按热度按时间pexxcrt21#
从JMeter 3.1开始,建议使用JSR223测试元素和Groovy语言编写脚本,主要是due to performance reasons,因此我将在Grovy中提供一种可能的解决方案
1.将JSR223 PostProcessor添加为启动报告生成的HTTP请求的子项,并在其中放置以下代码:
1.在检查状态后添加JSR223采样器,并在其中放置以下代码:
设置示例: