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]