jmeter 如何在负载测试期间测量单个采样器的响应大小数据

ffx8fchx  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(150)

如何在JMeter中测量多个http采样器的响应数据的大小。我需要在加载过程中找到所有http采样器的单独大小,而不是整体大小。我使用Beanshell采样器,但它给出的是整体大小,而不是每个采样器的单独大小。

import java.util.io.*;
import java.lang.io.*;
test = prev.getResponseDataAsString().length();
text = ctx.getCurrentSampler().getName();
log.info("Sampler Name: " +text+ ": Size: " +test);
if(text.equalsIgnoreCase("Test Sampler"))
{
 props.put("totalsize",Integer.parseInt("0"));
}
else
{
  props.put("totalsize", (props.get("totalsize")!=null?props.get("totalsize"):0) + test);
}
log.info("totalsize is = "+props.get("totalsize"));

I am using Beanshell sampler but it is giving overall size not individual for each sampler.
I need total individual response size for each sampler during my load test.
szqfcxe2

szqfcxe21#

1.首先,我不完全理解你的代码在做什么。你使用props的缩写来存储数据,并且属性对于整个JVM来说是global,所以如果你使用〉1个用户运行你的测试,下一个线程将覆盖前一个线程设置的值。也许你应该使用vars来代替,这是针对JMeterVariables的,而thread-local是针对thread-local的?
1.我相信JMeter默认情况下会将其保存到.jtl results file中,请查看bytes列,其中包含每个采样器的响应大小。

1.还要注意,从JMeter 3.1开始,建议使用JSR223测试元素和Groovy语言编写脚本,主要是出于性能原因,因此请考虑迁移。Beanshell vs. JSR223 vs. Java For JMeter: Complete Showdown

相关问题