jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philippe Mouawad <philippe.moua...@gmail.com>
Subject Re: svn commit: r1835022 - in /jmeter/trunk/src: components/org/apache/jmeter/control/ core/org/apache/jmeter/control/
Date Wed, 04 Jul 2018 12:03:06 GMT
Hello Felix,

There is User Parameters which declares counter under Flow Control Action
It's a real issue related to last commit I did.

Regards

On Wed, Jul 4, 2018 at 1:59 PM, Felix Schumacher <
felix.schumacher@internetallee.de> wrote:

> Am 03.07.2018 23:15, schrieb Philippe Mouawad:
>
>> This commit breaks build.
>>
>
> For comments see below (very far down).
>
>
>
>> Regards
>>
>> On Tuesday, July 3, 2018, <pmouawad@apache.org> wrote:
>>
>> 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/Foreac
>>> hController.java
>>> (original)
>>> +++ jmeter/trunk/src/components/org/apache/jmeter/control/Foreac
>>> hController.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/IteratingCon
>>> troller.java
>>> (original)
>>> +++ jmeter/trunk/src/core/org/apache/jmeter/control/IteratingCon
>>> troller.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);
>>>
>>
> The exception happens here. I believe it is because the Counter is not
> initialized yet and the jexl expression is testet on
> "${counter} != 10", but there is no variable named counter and therefor it
> doesn't get replaced.
>
> I am not sure, whether we should just ignore any exceptions (log them and
> use an empty string as alternative) in endOfLoop(true), or if we should
> require, that one has to
> define the variable upfront.
>
> Regards,
>  Felix
>
> +        resetLoopCount();
>>> +    }
>>>  }
>>>
>>>
>>>
>>>


-- 
Cordialement.
Philippe Mouawad.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message