Author: sebb
Date: Wed Sep 21 01:03:09 2011
New Revision: 1173449
URL: http://svn.apache.org/viewvc?rev=1173449&view=rev
Log:
Add optional pause between child samples
Modified:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java
Modified:
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java?rev=1173449&r1=1173448&r2=1173449&view=diff
==============================================================================
---
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java
(original)
+++
jakarta/jmeter/trunk/test/src/org/apache/jmeter/samplers/TestSampleResult.java
Wed Sep 21 01:03:09 2011
@@ -141,14 +141,30 @@ public class TestSampleResult extends Te
}
public void testSubResultsTrue() throws Exception {
- testSubResults(true);
+ testSubResults(true, 0);
}
public void testSubResultsFalse() throws Exception {
- testSubResults(false);
+ testSubResults(false, 0);
}
- private void testSubResults(boolean nanoTime) throws Exception {
+ public void testSubResultsTruePause() throws Exception {
+ testSubResults(true, 100);
+ }
+
+ public void testSubResultsFalsePause() throws Exception {
+ testSubResults(false, 100);
+ }
+
+ // temp test case for exploring settings
+ public void xtestUntilFail() throws Exception {
+ while(true) {
+ testSubResultsTruePause();
+ testSubResultsFalsePause();
+ }
+ }
+
+ private void testSubResults(boolean nanoTime, long pause) 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.
@@ -181,7 +197,14 @@ public class TestSampleResult extends Te
assertEquals("Child1 Sample", child1.getSampleLabel());
assertEquals(1, child1.getSampleCount());
assertEquals(0, child1.getSubResults().length);
-
+
+ long actualPause = 0;
+ if (pause > 0) {
+ long t1 = parent.currentTimeInMillis();
+ Thread.sleep(pause);
+ actualPause = parent.currentTimeInMillis() - t1;
+ }
+
// Sample with no sub results, simulates an image download
SampleResult child2 = new SampleResult(nanoTime);
child2.sampleStart();
@@ -210,7 +233,7 @@ public class TestSampleResult extends Te
long overallTime = parent.currentTimeInMillis() - beginTest;
- long sumSamplesTimes = parentElapsed + child1Elapsed +
child2Elapsed;
+ long sumSamplesTimes = parentElapsed + child1Elapsed + actualPause
+ child2Elapsed;
/*
* Parent elapsed total should be no smaller than the sum of the
individual samples.
@@ -218,7 +241,7 @@ public class TestSampleResult extends Te
*/
long diff = parentElapsedTotal - sumSamplesTimes;
- long maxDiff = nanoTime ? 1 : 16; // TimeMillis has granularity of
10-20
+ long maxDiff = nanoTime ? 2 : 16; // TimeMillis has granularity of
10-20
if (diff < 0 || diff > maxDiff) {
fail("ParentElapsed: " + parentElapsedTotal + " - " + "
sum(samples): " + sumSamplesTimes
+ " = " + diff + " not in [0," + maxDiff + "];
nanotime=" + nanoTime);
@@ -243,7 +266,6 @@ public class TestSampleResult extends Te
assertEquals(1d / (parentElapsedTotal / 1000d),
calculator.getRate(),0.0001d); // Allow for some margin of error
// Check that the throughput uses the time elapsed for the sub
results
assertFalse(1d / (parentElapsed / 1000d) <= calculator.getRate());
- System.out.print(nanoTime? 'T' : 'F');
}
// TODO some more invalid sequence tests needed
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]