Author: pmouawad
Date: Tue Jul 3 20:16:38 2018
New Revision: 1835022
URL: http://svn.apache.org/viewvc?rev=1835022&view=rev
Log:
Bug 62238 - Add ability to Switch to next iteration of Current Loop
Fix issue in nightly
Bugzilla Id: 62238
Modified:
jmeter/trunk/src/components/org/apache/jmeter/control/
ForeachController.java
jmeter/trunk/src/core/org/apache/jmeter/control/
IteratingController.java
jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java
jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java
Modified: jmeter/trunk/src/components/org/apache/jmeter/control/
ForeachController.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/
org/apache/jmeter/control/ForeachController.java?rev=
1835022&r1=1835021&r2=1835022&view=diff
============================================================
==================
---
jmeter/trunk/src/components/org/apache/jmeter/control/ForeachController.java
(original)
+++
jmeter/trunk/src/components/org/apache/jmeter/control/ForeachController.java
Tue Jul 3 20:16:38 2018
@@ -20,6 +20,7 @@ package org.apache.jmeter.control;
import java.io.Serializable;
+import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.gui.GUIMenuSortOrder;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.property.BooleanProperty;
@@ -318,4 +319,10 @@ public class ForeachController extends G
resetLoopCount();
recoverRunningVersion();
}
+
+ @Override
+ public void iterationStart(LoopIterationEvent iterEvent) {
+ reInitialize();
+ resetLoopCount();
+ }
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/control/
IteratingController.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/
apache/jmeter/control/IteratingController.java?rev=
1835022&r1=1835021&r2=1835022&view=diff
============================================================
==================
---
jmeter/trunk/src/core/org/apache/jmeter/control/IteratingController.java
(original)
+++
jmeter/trunk/src/core/org/apache/jmeter/control/IteratingController.java
Tue Jul 3 20:16:38 2018
@@ -18,6 +18,7 @@
package org.apache.jmeter.control;
+import org.apache.jmeter.engine.event.LoopIterationListener;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;
import org.apache.jmeter.util.JMeterUtils;
@@ -26,7 +27,7 @@ import org.apache.jmeter.util.JMeterUtil
* Identify controller that does iterations
* @since 4.1
*/
-public interface IteratingController {
+public interface IteratingController extends LoopIterationListener {
/**
* Start next iteration ("continue" keyword equivalent in loops)
Modified: jmeter/trunk/src/core/org/apache/jmeter/control/
LoopController.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/
apache/jmeter/control/LoopController.java?rev=
1835022&r1=1835021&r2=1835022&view=diff
============================================================
==================
---
jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java
(original)
+++
jmeter/trunk/src/core/org/apache/jmeter/control/LoopController.java
Tue Jul 3 20:16:38 2018
@@ -20,23 +20,27 @@ package org.apache.jmeter.control;
import java.io.Serializable;
+import org.apache.jmeter.engine.event.LoopIterationEvent;
+import org.apache.jmeter.engine.event.LoopIterationListener;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.IntegerProperty;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.testelement.property.StringProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Class that implements the Loop Controller, ie iterate infinitely
or a
configured number of times
*/
-public class LoopController extends GenericController implements
Serializable, IteratingController {
+public class LoopController extends GenericController implements
Serializable, IteratingController, LoopIterationListener {
public static final int INFINITE_LOOP_COUNT = -1; // $NON-NLS-1$
public static final String LOOPS = "LoopController.loops"; //
$NON-NLS-1$
private static final long serialVersionUID =
7833960784370272300L;
-
+ private static final Logger LOGGER = LoggerFactory.getLogger(
LoopController.class);
/**
* In spite of the name, this is actually used to determine if
the
loop controller is repeatable.
*
@@ -221,4 +225,13 @@ public class LoopController extends Gene
resetLoopCount();
recoverRunningVersion();
}
+
+ @Override
+ public void iterationStart(LoopIterationEvent iterEvent) {
+ if(LOGGER.isInfoEnabled()) {
+ LOGGER.info("iterationStart called on {} with source {}
and
iteration {}", getName(), iterEvent.getSource(),
iterEvent.getIteration());
+ }
+ reInitialize();
+ resetLoopCount();
+ }
}
Modified: jmeter/trunk/src/core/org/apache/jmeter/control/
WhileController.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/
apache/jmeter/control/WhileController.java?rev=
1835022&r1=1835021&r2=1835022&view=diff
============================================================
==================
---
jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java
(original)
+++
jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java
Tue Jul 3 20:16:38 2018
@@ -20,6 +20,7 @@ package org.apache.jmeter.control;
import java.io.Serializable;
+import org.apache.jmeter.engine.event.LoopIterationEvent;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.testelement.property.StringProperty;
@@ -160,4 +161,11 @@ public class WhileController extends Gen
resetLoopCount();
recoverRunningVersion();
}
+
+ @Override
+ public void iterationStart(LoopIterationEvent iterEvent) {
+ reInitialize();
+ endOfLoop(true);