如何在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.
1条答案
按热度按时间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