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 js...@apache.org on 2003/12/18 03:27:08 UTC
cvs commit: jakarta-jmeter/src/components/org/apache/jmeter/control ThroughputController.java
jsalvata 2003/12/17 18:27:08
Modified: src/components/org/apache/jmeter/control
ThroughputController.java
Log:
Added 5 new test cases *3 of which fail*. Will fix or roll back
soon. My apologies for the inconveniencies: it's not new
bugs, only new tests.
Revision Changes Path
1.12 +254 -1 jakarta-jmeter/src/components/org/apache/jmeter/control/ThroughputController.java
Index: ThroughputController.java
===================================================================
RCS file: /home/cvs/jakarta-jmeter/src/components/org/apache/jmeter/control/ThroughputController.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ThroughputController.java 5 Oct 2003 01:18:34 -0000 1.11
+++ ThroughputController.java 18 Dec 2003 02:27:08 -0000 1.12
@@ -59,7 +59,10 @@
import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.engine.event.LoopIterationListener;
+import org.apache.jmeter.junit.JMeterTestCase;
+import org.apache.jmeter.junit.stubs.TestSampler;
import org.apache.jmeter.samplers.Sampler;
+import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestListener;
import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.FloatProperty;
@@ -456,6 +459,256 @@
public Integer getInteger()
{
return i;
+ }
+ }
+ /////////////////////////// Start of Test Code ///////////////////////////
+
+ public static class Test extends JMeterTestCase
+ {
+ public Test(String name)
+ {
+ super(name);
+ }
+
+ public void testByNumber() throws Exception
+ {
+ ThroughputController sub_1 = new ThroughputController();
+ sub_1.setStyle(BYNUMBER);
+ sub_1.setMaxThroughput(2);
+ sub_1.addTestElement(new TestSampler("one"));
+ sub_1.addTestElement(new TestSampler("two"));
+
+ LoopController controller = new LoopController();
+ controller.setLoops(5);
+ controller.addTestElement(new TestSampler("zero"));
+ controller.addTestElement(sub_1);
+ controller.addIterationListener(sub_1);
+ controller.addTestElement(new TestSampler("three"));
+
+ String[] order =
+ new String[] {
+ "zero",
+ "one",
+ "two",
+ "three",
+ "zero",
+ "one",
+ "two",
+ "three",
+ "zero",
+ "three",
+ "zero",
+ "three",
+ "zero",
+ "three",
+ };
+ int counter= 0;
+ sub_1.testStarted();
+ controller.initialize();
+ for (int i=0; i<3; i++)
+ {
+ TestElement sampler = null;
+ while ((sampler = controller.next()) != null)
+ {
+ assertEquals("Counter: "+counter+", i: "+i
+ +", executions: "+sub_1.getExecutions()
+ +", iteration: "+sub_1.getIteration(),
+ order[counter],
+ sampler.getPropertyAsString(TestElement.NAME)
+ );
+ counter++;
+ }
+ assertEquals(counter, order.length);
+ counter= 0;
+ }
+ sub_1.testEnded();
+ }
+
+ public void testByNumberZero() throws Exception
+ {
+ ThroughputController sub_1 = new ThroughputController();
+ sub_1.setStyle(BYNUMBER);
+ sub_1.setMaxThroughput(0);
+ sub_1.addTestElement(new TestSampler("one"));
+ sub_1.addTestElement(new TestSampler("two"));
+
+ LoopController controller = new LoopController();
+ controller.setLoops(5);
+ controller.addTestElement(new TestSampler("zero"));
+ controller.addTestElement(sub_1);
+ controller.addIterationListener(sub_1);
+ controller.addTestElement(new TestSampler("three"));
+
+ String[] order =
+ new String[] {
+ "zero",
+ "three",
+ "zero",
+ "three",
+ "zero",
+ "three",
+ "zero",
+ "three",
+ "zero",
+ "three",
+ };
+ int counter= 0;
+ sub_1.testStarted();
+ controller.initialize();
+ for (int i=0; i<3; i++)
+ {
+ TestElement sampler = null;
+ while ((sampler = controller.next()) != null)
+ {
+ assertEquals("Counter: "+counter+", i: "+i,
+ order[counter],
+ sampler.getPropertyAsString(TestElement.NAME)
+ );
+ counter++;
+ }
+ assertEquals(counter, order.length);
+ counter= 0;
+ }
+ sub_1.testEnded();
+ }
+
+ public void testByPercent33() throws Exception
+ {
+ ThroughputController sub_1 = new ThroughputController();
+ sub_1.setStyle(BYPERCENT);
+ sub_1.setPercentThroughput(33.33f);
+ sub_1.addTestElement(new TestSampler("one"));
+ sub_1.addTestElement(new TestSampler("two"));
+
+ LoopController controller = new LoopController();
+ controller.setLoops(7);
+ controller.addTestElement(new TestSampler("zero"));
+ controller.addTestElement(sub_1);
+ controller.addIterationListener(sub_1);
+ controller.addTestElement(new TestSampler("three"));
+ // Expected results established using the DDA
+ // algorithm (see http://www.siggraph.org/education/materials/HyperGraph/scanline/outprims/drawline.htm):
+ String[] order =
+ new String[] {
+ "zero", // 0/1 vs. 1/1 -> 0 is closer to 33.33
+ "three",
+ "zero", // 0/2 vs. 1/2 -> 50.0 is closer to 33.33
+ "one",
+ "two",
+ "three",
+ "zero", // 1/3 vs. 2/3 -> 33.33 is closer to 33.33
+ "three",
+ "zero", // 1/4 vs. 2/4 -> 25.0 is closer to 33.33
+ "three",
+ "zero", // 1/5 vs. 2/5 -> 40.0 is closer to 33.33
+ "one",
+ "two",
+ "three",
+ "zero", // 2/6 vs. 3/6 -> 33.33 is closer to 33.33
+ "three",
+ "zero", // 2/7 vs. 3/7 --> 28.57 is closer to 33.33
+ "three",
+ };
+ int counter= 0;
+ sub_1.testStarted();
+ controller.initialize();
+ for (int i=0; i<3; i++)
+ {
+ TestElement sampler = null;
+ while ((sampler = controller.next()) != null)
+ {
+ assertEquals("Counter: "+counter+", i: "+i,
+ order[counter],
+ sampler.getPropertyAsString(TestElement.NAME)
+ );
+ counter++;
+ }
+ assertEquals(counter, order.length);
+ counter= 0;
+ }
+ sub_1.testEnded();
+ }
+
+ public void testByPercentZero() throws Exception
+ {
+ ThroughputController sub_1 = new ThroughputController();
+ sub_1.setStyle(BYPERCENT);
+ sub_1.setPercentThroughput(0.0f);
+ sub_1.addTestElement(new TestSampler("one"));
+ sub_1.addTestElement(new TestSampler("two"));
+
+ LoopController controller = new LoopController();
+ controller.setLoops(150);
+ controller.addTestElement(new TestSampler("zero"));
+ controller.addTestElement(sub_1);
+ controller.addIterationListener(sub_1);
+ controller.addTestElement(new TestSampler("three"));
+
+ String[] order =
+ new String[] {
+ "zero",
+ "three",
+ };
+ int counter= 0;
+ sub_1.testStarted();
+ controller.initialize();
+ for (int i=0; i<3; i++)
+ {
+ TestElement sampler = null;
+ while ((sampler = controller.next()) != null)
+ {
+ assertEquals("Counter: "+counter+", i: "+i,
+ order[counter%order.length],
+ sampler.getPropertyAsString(TestElement.NAME)
+ );
+ counter++;
+ }
+ assertEquals(counter, 150*order.length);
+ counter= 0;
+ }
+ sub_1.testEnded();
+ }
+
+ public void testByPercent100() throws Exception
+ {
+ ThroughputController sub_1 = new ThroughputController();
+ sub_1.setStyle(BYPERCENT);
+ sub_1.setPercentThroughput(100.0f);
+ sub_1.addTestElement(new TestSampler("one"));
+ sub_1.addTestElement(new TestSampler("two"));
+
+ LoopController controller = new LoopController();
+ controller.setLoops(150);
+ controller.addTestElement(new TestSampler("zero"));
+ controller.addTestElement(sub_1);
+ controller.addIterationListener(sub_1);
+ controller.addTestElement(new TestSampler("three"));
+
+ String[] order =
+ new String[] {
+ "zero",
+ "one",
+ "two",
+ "three",
+ };
+ int counter= 0;
+ sub_1.testStarted();
+ controller.initialize();
+ for (int i=0; i<3; i++)
+ {
+ TestElement sampler = null;
+ while ((sampler = controller.next()) != null)
+ {
+ assertEquals("Counter: "+counter+", i: "+i,
+ order[counter%order.length],
+ sampler.getPropertyAsString(TestElement.NAME)
+ );
+ counter++;
+ }
+ assertEquals(counter, 150*order.length);
+ counter= 0;
+ }
+ sub_1.testEnded();
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org