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 2005/11/13 03:05:34 UTC

svn commit: r332874 - /jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/samplers/SampleResult.java

Author: sebb
Date: Sat Nov 12 18:05:30 2005
New Revision: 332874

URL: http://svn.apache.org/viewcvs?rev=332874&view=rev
Log:
Add getResponseDataAsString() convenience method

Modified:
    jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/samplers/SampleResult.java

Modified: jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/samplers/SampleResult.java
URL: http://svn.apache.org/viewcvs/jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/samplers/SampleResult.java?rev=332874&r1=332873&r2=332874&view=diff
==============================================================================
--- jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/samplers/SampleResult.java (original)
+++ jakarta/jmeter/branches/rel-2-1/src/core/org/apache/jmeter/samplers/SampleResult.java Sat Nov 12 18:05:30 2005
@@ -1,5 +1,5 @@
 /*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2005 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
 
 import java.io.Serializable;
 import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -43,12 +44,16 @@
  * 
  */
 public class SampleResult implements Serializable {
+
+    private static final Logger log = LoggingManager.getLoggerForClass();
+
 	// Bug 33196 - encoding ISO-8859-1 is only suitable for Western countries
 	// However the suggested System.getProperty("file.encoding") is Cp1252 on
 	// Windows
 	// So use a new property with the original value as default
-	private static final String DEFAULT_ENCODING = JMeterUtils.getPropDefault("sampleresult.default.encoding",
-			"ISO-8859-1");
+	private static final String DEFAULT_ENCODING 
+            = JMeterUtils.getPropDefault("sampleresult.default.encoding", // $NON-NLS-1$
+			"ISO-8859-1"); // $NON-NLS-1$
 
 	/**
 	 * Data type value indicating that the response data is text.
@@ -56,7 +61,7 @@
 	 * @see #getDataType
 	 * @see #setDataType(java.lang.String)
 	 */
-	public final static String TEXT = "text";
+	public final static String TEXT = "text"; // $NON-NLS-1$
 
 	/**
 	 * Data type value indicating that the response data is binary.
@@ -64,7 +69,7 @@
 	 * @see #getDataType
 	 * @see #setDataType(java.lang.String)
 	 */
-	public final static String BINARY = "bin";
+	public final static String BINARY = "bin"; // $NON-NLS-1$
 
 	/* empty arrays which can be returned instead of null */
 	private static final byte[] EMPTY_BA = new byte[0];
@@ -148,11 +153,10 @@
 	// TODO do contentType and/or dataEncoding belong in HTTPSampleResult
 	// instead?
 
-	private final static String TOTAL_TIME = "totalTime";
+	private final static String TOTAL_TIME = "totalTime"; // $NON-NLS-1$
 
-	transient private static Logger log = LoggingManager.getLoggerForClass();
-
-	private static final boolean startTimeStamp = JMeterUtils.getPropDefault("sampleresult.timestamp.start", false);
+	private static final boolean startTimeStamp 
+        = JMeterUtils.getPropDefault("sampleresult.timestamp.start", false);  // $NON-NLS-1$
 
 	static {
 		if (startTimeStamp) {
@@ -404,6 +408,20 @@
 		return responseData;
 	}
 
+    /**
+     * Gets the responseData attribute of the SampleResult object.
+     * 
+     * @return the responseData value as a String, converted according to the encoding
+     */
+    public String getResponseDataAsString() {
+        try {
+            return new String(responseData,getDataEncoding());
+        } catch (UnsupportedEncodingException e) {
+            log.warn("Using "+dataEncoding+" caused "+e);
+            return new String(responseData);
+        }
+    }
+
 	/**
 	 * Convenience method to get responseData as a non-null byte array
 	 * 
@@ -411,7 +429,7 @@
 	 *         array is returned rather than null.
 	 * 
 	 */
-	public byte[] responseDataAsBA() {
+	public byte[] getResponseDataAsBA() {
 		return responseData == null ? EMPTY_BA : responseData;
 	}
 
@@ -713,67 +731,6 @@
 		return bytes;
 	}
 
-	// //////////////////////////// Start of Test Code
-	// ///////////////////////////
-
-	// TODO need more tests - particularly for the new functions
-
-	public static class Test extends TestCase {
-		public Test(String name) {
-			super(name);
-		}
-
-		public void testElapsed() throws Exception {
-			SampleResult res = new SampleResult();
-
-			// Check sample increments OK
-			res.sampleStart();
-			Thread.sleep(100);
-			res.sampleEnd();
-			assertTrue(res.getTime() >= 100);
-		}
-
-		public void testPause() throws Exception {
-			SampleResult res = new SampleResult();
-			// Check sample increments OK
-			res.sampleStart();
-			Thread.sleep(100);
-			res.samplePause();
-
-			Thread.sleep(200);
-
-			// Re-increment
-			res.sampleResume();
-			Thread.sleep(100);
-			res.sampleEnd();
-			long sampleTime = res.getTime();
-			if ((sampleTime < 200) || (sampleTime > 290)) {
-				fail("Accumulated time (" + sampleTime + ") was not between 200 and 290 ms");
-			}
-		}
-
-		private static Formatter fmt = new RawFormatter();
-
-		private StringWriter wr = null;
-
-		public void divertLog() {
-			wr = new StringWriter(1000);
-			LogTarget[] lt = { new WriterTarget(wr, fmt) };
-			log.setLogTargets(lt);
-		}
-
-		public void testPause2() throws Exception {
-			divertLog();
-			SampleResult res = new SampleResult();
-			res.sampleStart();
-			res.samplePause();
-			assertTrue(wr.toString().length() == 0);
-			res.samplePause();
-			assertFalse(wr.toString().length() == 0);
-		}
-		// TODO some more invalid sequence tests needed
-	}
-
 	/**
 	 * @return Returns the latency.
 	 */
@@ -825,4 +782,61 @@
 	public void setParent(SampleResult parent) {
 		this.parent = parent;
 	}
+    // TODO need more tests - particularly for the new functions
+
+    public static class Test extends TestCase {
+        public Test(String name) {
+            super(name);
+        }
+
+        public void testElapsed() throws Exception {
+            SampleResult res = new SampleResult();
+
+            // Check sample increments OK
+            res.sampleStart();
+            Thread.sleep(100);
+            res.sampleEnd();
+            assertTrue(res.getTime() >= 100);
+        }
+
+        public void testPause() throws Exception {
+            SampleResult res = new SampleResult();
+            // Check sample increments OK
+            res.sampleStart();
+            Thread.sleep(100);
+            res.samplePause();
+
+            Thread.sleep(200);
+
+            // Re-increment
+            res.sampleResume();
+            Thread.sleep(100);
+            res.sampleEnd();
+            long sampleTime = res.getTime();
+            if ((sampleTime < 200) || (sampleTime > 290)) {
+                fail("Accumulated time (" + sampleTime + ") was not between 200 and 290 ms");
+            }
+        }
+
+        private static Formatter fmt = new RawFormatter();
+
+        private StringWriter wr = null;
+
+        private void divertLog() {// N.B. This needs to divert the log for SampleResult
+            wr = new StringWriter(1000);
+            LogTarget[] lt = { new WriterTarget(wr, fmt) };
+            log.setLogTargets(lt);
+        }
+
+        public void testPause2() throws Exception {
+            divertLog();
+            SampleResult res = new SampleResult();
+            res.sampleStart();
+            res.samplePause();
+            assertTrue(wr.toString().length() == 0);
+            res.samplePause();
+            assertFalse(wr.toString().length() == 0);
+        }
+        // TODO some more invalid sequence tests needed
+    }
 }



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