diff --git a/bin/jmeter.properties b/bin/jmeter.properties index bac04e85bc9..af472a172e5 100644 --- a/bin/jmeter.properties +++ b/bin/jmeter.properties @@ -759,6 +759,8 @@ wmlParser.types=text/vnd.wap.wml # set this property to false #sample_sender_strip_also_on_error=true +sample_sender_strip_if_success=false + # Remote batching support # Since JMeter 2.9, default is MODE_STRIPPED_BATCH, which returns samples in # batch mode (every 100 samples or every minute by default) diff --git a/src/core/src/main/java/org/apache/jmeter/samplers/DataStrippingSampleSender.java b/src/core/src/main/java/org/apache/jmeter/samplers/DataStrippingSampleSender.java index 8df3fd7b83c..1957d07bf1a 100644 --- a/src/core/src/main/java/org/apache/jmeter/samplers/DataStrippingSampleSender.java +++ b/src/core/src/main/java/org/apache/jmeter/samplers/DataStrippingSampleSender.java @@ -53,6 +53,7 @@ public class DataStrippingSampleSender extends AbstractSampleSender implements S private final SampleSender decoratedSender; // Configuration items, set up by readResolve private transient volatile boolean stripAlsoOnError; + private static boolean stripIfSuccess = JMeterUtils.getPropDefault("sample_sender_strip_if_success", false); /** @@ -126,6 +127,24 @@ private static void stripContent(SampleResult result, int level) { private static void stripResponse(SampleResult result) { result.setBytes(result.getBytesAsLong()); result.setResponseData(EMPTY_BA); + + if (stripIfSuccess && result.isSuccessful()) { + result.setSentBytes(result.getSentBytes()); + result.setSamplerData(null); + result.setRequestHeaders(null); + + result.setBodySize(result.getBodySizeAsLong()); + //result.setDataType(null); + //result.setDataEncoding(null); + + result.setHeadersSize(result.getHeadersSize()); + result.setResponseHeaders(null); + + //result.setURL(null); + + //result.setResponseMessage(null); + //result.setResponseCode(null); + } } /** @@ -138,10 +157,12 @@ private static void stripResponse(SampleResult result) { protected Object readResolve() throws ObjectStreamException{ if (isClientConfigured()) { stripAlsoOnError = clientConfiguredStripAlsoOnError; + stripIfSuccess = JMeterUtils.getPropDefault("sample_sender_strip_if_success", false); } else { stripAlsoOnError = SERVER_CONFIGURED_STRIP_ALSO_ON_ERROR; } log.info("Using DataStrippingSampleSender for this run with stripAlsoOnError: {}", stripAlsoOnError); + log.info("Using DataStrippingSampleSender for this run with stripIfSuccess: {}", stripIfSuccess); return this; } }