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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to