You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by minerva001 <mi...@hispeed.ch> on 2017/11/15 08:15:38 UTC

Update Once Per Iteration reverses execution sequence of Preprocessors

Didn't got a reply on the user list, hoping to get some help from the devs.

I noticed when having in a simple controller with several User Parameters
(Preprocessors) with the "Update Once Per Iteration" flag marked, that the
Preprocessors are run in reverse order.

 Simple Controller
  User Parameter
    P     XX
    Q    ${Q}q1
  User Parameter
    P1  ${P}
    Q   ${Q}q2
  Debug Sampler


In case "Update Once Per Iteration" is marked, P1=${P}, Q=${Q}q2q1
When not marked, P1=XX, Q=${Q}q1q2

Why does "Update Once Per Iteration" reverses the execution sequence of
Preprocessors?
Is this behavior intended and somewhere documented?


RE: Update Once Per Iteration reverses execution sequence of Preprocessors

Posted by minerva001 <mi...@hispeed.ch>.
In case "Update Once Per Iteration" is marked my outcome is not the same as your result with your explanation.

I can only explain the outcome, that the Preprocessors are executed in reverse order. When true it could be pointed at in the code.

When not, what is really going on; which steps are taken.

> -----Original Message-----
> From: jmeter tea [mailto:jmetertea@gmail.com]
> Sent: Wednesday, 15. November 2017 10:06
> To: dev@jmeter.apache.org
> Subject: Re: Update Once Per Iteration reverses execution sequence of
> Preprocessors
> 
> User parameters are strictly hierarchical
> But when checking Update Once Per Iteration it saves before iteration the
> variables beforehand
> So that second User Parameter will have P as not exists variable and Q as
> defined in its own declaration
> and therefore:
> P1  is saved as ${P} , Q is saved as ${Q}q2
> Now User Parameter 1 will update Q  =  ${Q}q1
> and  User Parameter 2 will update Q =  ${Q}q1q2 where ${Q}q1 is the stored
> variable
> 
> It sounds like a bug, but this is the flow.
> 
> On Wed, Nov 15, 2017 at 10:15 AM, minerva001 <mi...@hispeed.ch>
> wrote:
> 
> > Didn't got a reply on the user list, hoping to get some help from the devs.
> >
> > I noticed when having in a simple controller with several User Parameters
> > (Preprocessors) with the "Update Once Per Iteration" flag marked, that the
> > Preprocessors are run in reverse order.
> >
> >  Simple Controller
> >   User Parameter
> >     P     XX
> >     Q    ${Q}q1
> >   User Parameter
> >     P1  ${P}
> >     Q   ${Q}q2
> >   Debug Sampler
> >
> >
> > In case "Update Once Per Iteration" is marked, P1=${P}, Q=${Q}q2q1
> > When not marked, P1=XX, Q=${Q}q1q2
> >
> > Why does "Update Once Per Iteration" reverses the execution sequence
> of
> > Preprocessors?
> > Is this behavior intended and somewhere documented?
> >
> >


Re: Update Once Per Iteration reverses execution sequence of Preprocessors

Posted by jmeter tea <jm...@gmail.com>.
User parameters are strictly hierarchical
But when checking Update Once Per Iteration it saves before iteration the
variables beforehand
So that second User Parameter will have P as not exists variable and Q as
defined in its own declaration
and therefore:
P1  is saved as ${P} , Q is saved as ${Q}q2
Now User Parameter 1 will update Q  =  ${Q}q1
and  User Parameter 2 will update Q =  ${Q}q1q2 where ${Q}q1 is the stored
variable

It sounds like a bug, but this is the flow.

On Wed, Nov 15, 2017 at 10:15 AM, minerva001 <mi...@hispeed.ch> wrote:

> Didn't got a reply on the user list, hoping to get some help from the devs.
>
> I noticed when having in a simple controller with several User Parameters
> (Preprocessors) with the "Update Once Per Iteration" flag marked, that the
> Preprocessors are run in reverse order.
>
>  Simple Controller
>   User Parameter
>     P     XX
>     Q    ${Q}q1
>   User Parameter
>     P1  ${P}
>     Q   ${Q}q2
>   Debug Sampler
>
>
> In case "Update Once Per Iteration" is marked, P1=${P}, Q=${Q}q2q1
> When not marked, P1=XX, Q=${Q}q1q2
>
> Why does "Update Once Per Iteration" reverses the execution sequence of
> Preprocessors?
> Is this behavior intended and somewhere documented?
>
>