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 2007/04/22 15:33:12 UTC

svn commit: r531175 - in /jakarta/jmeter/branches/rel-2-2: src/components/org/apache/jmeter/visualizers/ src/core/org/apache/jmeter/samplers/ test/src/org/apache/jmeter/samplers/ xdocs/

Author: sebb
Date: Sun Apr 22 06:33:11 2007
New Revision: 531175

URL: http://svn.apache.org/viewvc?view=rev&rev=531175
Log:
Bug 42184 - Number of bytes for subsamples not added to sample when sub samples are added

Modified:
    jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
    jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java
    jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java
    jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml

Modified: jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?view=diff&rev=531175&r1=531174&r2=531175
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Sun Apr 22 06:33:11 2007
@@ -324,10 +324,11 @@
 							sampleDataField.setText(sd);
 						}
 
-						statsDoc.insertString(statsDoc.getLength(), "Thread Name: " + res.getThreadName() + "\n", null);
+						statsDoc.insertString(statsDoc.getLength(), "Thread Name: " + res.getThreadName() + "\n", null); // $NON-NLS-2$
 						String startTime = new Date(res.getStartTime()).toString();
-						statsDoc.insertString(statsDoc.getLength(), "Sample Start: " + startTime + "\n", null);
-						statsDoc.insertString(statsDoc.getLength(), "Load time: " + res.getTime() + "\n", null);
+						statsDoc.insertString(statsDoc.getLength(), "Sample Start: " + startTime + "\n", null); // $NON-NLS-2$
+						statsDoc.insertString(statsDoc.getLength(), "Load time: " + res.getTime() + "\n", null); // $NON-NLS-2$
+						statsDoc.insertString(statsDoc.getLength(), "Size in bytes: " + res.getBytes() + "\n", null); // $NON-NLS-2$
 
 						String responseCode = res.getResponseCode();
 						log.debug("valueChanged1 : response code - " + responseCode);

Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java?view=diff&rev=531175&r1=531174&r2=531175
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/samplers/SampleResult.java Sun Apr 22 06:33:11 2007
@@ -412,7 +412,10 @@
 			subResults = new ArrayList();
 		}
 		subResults.add(subResult);
-		setEndTime(subResult.getEndTime());// Extend the time to the end of the added sample
+		// Extend the time to the end of the added sample
+		setEndTime(subResult.getEndTime());
+		// Include the byte count for the added sample
+		setBytes(getBytes() + subResult.getBytes());
 		subResult.setParent(this);
 	}
 

Modified: jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java?view=diff&rev=531175&r1=531174&r2=531175
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java (original)
+++ jakarta/jmeter/branches/rel-2-2/test/src/org/apache/jmeter/samplers/TestSampleResult.java Sun Apr 22 06:33:11 2007
@@ -22,6 +22,7 @@
 
 import junit.framework.TestCase;
 
+import org.apache.jmeter.util.Calculator;
 import org.apache.log.LogTarget;
 import org.apache.log.format.Formatter;
 import org.apache.log.format.RawFormatter;
@@ -85,6 +86,88 @@
             res.samplePause();
             assertFalse(wr.toString().length() == 0);
         }
+        
+        public void testByteCount() throws Exception {
+            SampleResult res = new SampleResult();
+            
+            res.sampleStart();
+            res.setBytes(100);
+            res.setSampleLabel("sample of size 100 bytes");
+            res.sampleEnd();
+            assertEquals(100, res.getBytes());
+            assertEquals("sample of size 100 bytes", res.getSampleLabel());
+        }
+
+        public void testSubResults() throws Exception {
+        	// This test tries to emulate a http sample, with two
+        	// subsamples, representing images that are downloaded for the
+        	// page representing the first sample.
+        	
+            // Sample that will get two sub results, simulates a web page load 
+            SampleResult resWithSubResults = new SampleResult();            
+            resWithSubResults.sampleStart();
+            Thread.sleep(100);
+            resWithSubResults.setBytes(300);
+            resWithSubResults.setSampleLabel("sample with two subresults");
+            resWithSubResults.setSuccessful(true);
+            resWithSubResults.sampleEnd();
+            long sampleWithSubResultsTime = resWithSubResults.getTime();
+        	
+            // Sample with no sub results, simulates an image download
+            SampleResult resNoSubResults1 = new SampleResult();            
+            resNoSubResults1.sampleStart();
+            Thread.sleep(100);
+            resNoSubResults1.setBytes(100);
+            resNoSubResults1.setSampleLabel("sample with no subresults");
+            resNoSubResults1.setSuccessful(true);
+            resNoSubResults1.sampleEnd();
+            long sample1Time = resNoSubResults1.getTime();
+
+            assertTrue(resNoSubResults1.isSuccessful());
+            assertEquals(100, resNoSubResults1.getBytes());
+            assertEquals("sample with no subresults", resNoSubResults1.getSampleLabel());
+            assertEquals(1, resNoSubResults1.getSampleCount());
+            assertEquals(0, resNoSubResults1.getSubResults().length);
+            
+            // Sample with no sub results, simulates an image download 
+            SampleResult resNoSubResults2 = new SampleResult();            
+            resNoSubResults2.sampleStart();
+            Thread.sleep(100);
+            resNoSubResults2.setBytes(200);
+            resNoSubResults2.setSampleLabel("sample with no subresults");
+            resNoSubResults2.setSuccessful(true);
+            resNoSubResults2.sampleEnd();
+            long sample2Time = resNoSubResults2.getTime();
+
+            assertTrue(resNoSubResults2.isSuccessful());
+            assertEquals(200, resNoSubResults2.getBytes());
+            assertEquals("sample with no subresults", resNoSubResults2.getSampleLabel());
+            assertEquals(1, resNoSubResults2.getSampleCount());
+            assertEquals(0, resNoSubResults2.getSubResults().length);
+            
+            // Now add the subsamples to the sample
+            resWithSubResults.addSubResult(resNoSubResults1);
+            resWithSubResults.addSubResult(resNoSubResults2);
+            assertTrue(resWithSubResults.isSuccessful());
+            assertEquals(600, resWithSubResults.getBytes());
+            assertEquals("sample with two subresults", resWithSubResults.getSampleLabel());
+            assertEquals(1, resWithSubResults.getSampleCount());
+            assertEquals(2, resWithSubResults.getSubResults().length);
+            long totalTime = resWithSubResults.getTime();
+            
+            // Check the sample times
+            assertEquals(sampleWithSubResultsTime + sample1Time + sample2Time, totalTime);
+            
+            // Check that calculator gets the correct statistics from the sample
+            Calculator calculator = new Calculator();
+            calculator.addSample(resWithSubResults);
+            assertEquals(600, calculator.getTotalBytes());
+            assertEquals(1, calculator.getCount());
+            assertEquals(1d / (totalTime / 1000d), calculator.getRate(),0d);
+            // Check that the throughput uses the time elapsed for the sub results
+            assertFalse(1d / (sampleWithSubResultsTime / 1000d) <= calculator.getRate());
+        }
+
         // TODO some more invalid sequence tests needed
 }
 

Modified: jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml?view=diff&rev=531175&r1=531174&r2=531175
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml (original)
+++ jakarta/jmeter/branches/rel-2-2/xdocs/changes.xml Sun Apr 22 06:33:11 2007
@@ -210,6 +210,7 @@
 <li>Bug 42057 - connection can be null if method is null</li>
 <li>Bug 41518 - JMeter changes the HTTP header Content Type for POST request</li>
 <li>Bug 42156 - HTTPRequest HTTPClient incorrectly urlencodes parameter value in POST</li>
+<li>Bug 42184 - Number of bytes for subsamples not added to sample when sub samples are added</li>
 </ul>
 
 <h3>Version 2.2</h3>



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