'How to measure size of response data in JMeter

How to measure size of response data of multiple http samplers in JMeter. I need to find the overall size of all the responses not for individual responses. I am trying to fetch it through a Beanshell code but it displays the size of the last sample executed:-

import java.util.io.*;
import java.lang.io.*;
int totalsize;
test = prev.getResponseDataAsString().length();
log.info("size is = "+test);
totalsize = totalsize + test;
log.info("totalsize is = "+totalsize);

Thank you.



Solution 1:[1]

Use JSR223 code with props and set JMeter property totalsize with 0 at start

 props.put("totalsize", Integer.parseInt(prop.get("totalsize")) + test);

Solution 2:[2]

Following solution also worked for me on a beanshell post processor:-

import java.util.io.*;
import java.lang.io.*;
test = prev.getResponseDataAsString().length();
log.info("size is = "+test);
text = ctx.getCurrentSampler().getName();
log.info("Sampler name is " +text);
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"));

"test" captures the size of each of the sample requests and keeps adding it to the "totalsize". At the end of the execution I am initializing totalsize back to 0.

Solution 3:[3]

it's more appropriate to use prev.getBytesAsLong() to get each sampler response size. Take a look at JMeter API

To have combined size of multiple responses you could try grouping needed requests in transaction via Transaction Controller.

grouping of Samplers  via Transaction Controller

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 yash
Solution 3 3alster