You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2009/09/07 22:26:56 UTC

svn commit: r812266 - in /jakarta/jmeter/trunk: bin/jmeter.properties src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java src/core/org/apache/jmeter/samplers/SampleSenderFactory.java xdocs/changes.xml xdocs/usermanual/remote-test.xml

Author: sebb
Date: Mon Sep  7 20:26:55 2009
New Revision: 812266

URL: http://svn.apache.org/viewvc?rev=812266&view=rev
Log:
Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" modes.
[code copied from branches/java1.5_prototype-was_trunk]

Added:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java   (with props)
Modified:
    jakarta/jmeter/trunk/bin/jmeter.properties
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java
    jakarta/jmeter/trunk/xdocs/changes.xml
    jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml

Modified: jakarta/jmeter/trunk/bin/jmeter.properties
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/bin/jmeter.properties?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/bin/jmeter.properties (original)
+++ jakarta/jmeter/trunk/bin/jmeter.properties Mon Sep  7 20:26:55 2009
@@ -474,6 +474,8 @@
 #mode=Batch
 #mode=Hold
 #mode=Statistical
+#mode=Stripped
+#mode=StrippedBatch
 #mode=org.example.load.MySampleSender
 #hold_samples=true
 #num_sample_threshold=100

Added: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java?rev=812266&view=auto
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java (added)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java Mon Sep  7 20:26:55 2009
@@ -0,0 +1,62 @@
+package org.apache.jmeter.samplers;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+
+import org.apache.jorphan.logging.LoggingManager;
+import org.apache.log.Logger;
+
+/**
+ * The standard remote sample reporting should be more friendly to the main purpose of
+ * remote testing - which is scalability.  To increase scalability, this class strips out the 
+ * response data before sending.
+ * 
+ *
+ */
+public class DataStrippingSampleSender implements SampleSender, Serializable {
+	private static final long serialVersionUID = 1;
+	private static final Logger log = LoggingManager.getLoggerForClass();
+	
+	private final RemoteSampleListener listener;
+	private final SampleSender decoratedSender;
+
+	DataStrippingSampleSender(RemoteSampleListener listener) {
+		this.listener = listener;
+		decoratedSender = null;
+	}
+	
+	DataStrippingSampleSender(SampleSender decorate)
+	{
+		this.decoratedSender = decorate;
+        this.listener = null;
+	}
+
+	public void testEnded() {
+		if(decoratedSender != null) decoratedSender.testEnded();
+	}
+
+	public void testEnded(String host) {
+		if(decoratedSender != null) decoratedSender.testEnded(host);
+	}
+
+	public void sampleOccurred(SampleEvent event) {
+		//Strip the response data before writing, but only for a successful request.
+	    SampleResult result = event.getResult();
+		if(result.isSuccessful()) {
+		    result.setResponseData(new byte[0]);
+		}
+		if(decoratedSender == null)
+		{
+			try {
+				listener.sampleOccurred(event);
+			} catch (RemoteException e) {
+				log.error("Error sending sample result over network ",e);
+			}
+		}
+		else
+		{
+			decoratedSender.sampleOccurred(event);
+		}
+	}
+
+}

Propchange: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/DataStrippingSampleSender.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleSenderFactory.java Mon Sep  7 20:26:55 2009
@@ -36,6 +36,10 @@
 
     private static final String MODE_STATISTICAL = "Statistical"; // $NON-NLS-1$
 
+    private static final String MODE_STRIPPED = "Stripped"; // $NON-NLS-1$
+
+    private static final String MODE_STRIPPED_BATCH = "StrippedBatch"; // $NON-NLS-1$
+
     // Support original property name
     private static final boolean holdSamples = JMeterUtils.getPropDefault("hold_samples", false); // $NON-NLS-1$
 
@@ -62,6 +66,10 @@
         } else if (type.equalsIgnoreCase(MODE_STANDARD)) {
             StandardSampleSender s = new StandardSampleSender(listener);
             return s;
+        }  else if(type.equalsIgnoreCase(MODE_STRIPPED_BATCH)) {
+            return new DataStrippingSampleSender(new BatchSampleSender(listener));
+        } else if(type.equalsIgnoreCase(MODE_STRIPPED)){
+            return new DataStrippingSampleSender(listener);
         } else {
             // should be a user provided class name
             SampleSender s = null;

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Mon Sep  7 20:26:55 2009
@@ -123,6 +123,7 @@
 <h3>Listeners</h3>
 <ul>
 <li>Bug 47398 - SampleEvents are sent twice over RMI in distributed testing and non gui mode</li>
+<li>Added DataStrippingSample sender - supports "Stripped" and "StrippedBatch" modes.</li>
 </ul>
 
 <h3>Assertions, Config, Pre- &amp; Post-Processors</h3>

Modified: jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml?rev=812266&r1=812265&r2=812266&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml (original)
+++ jakarta/jmeter/trunk/xdocs/usermanual/remote-test.xml Mon Sep  7 20:26:55 2009
@@ -216,7 +216,11 @@
     </ul>
     Other fields that vary between samples are lost. 
     </li>
-    <li>Custom implementation : set the mode parameter to your custom sample sender class name
+    <li>Stripped - remove responseData from succesful samples</li>
+    <li>StrippedBatch - remove responseData from succesful samples, and send as batches</li>
+    <li>Custom implementation : set the mode parameter to your custom sample sender class name.
+    This must implement the interface SampleSender and have a constructor which takes a single
+    parameter of type RemoteSampleListener. 
     </li>
     </ul>
 </ul>



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org