>or just that it's run after the While controller
yes in your case
See the section on scoping rules - 4.10
http://jmeter.apache.org/usermanual/test_plan.html



On Mon, Jul 28, 2014 at 10:20 PM, Nigel Donaldson <[email protected]>
wrote:

> Thanks for responding 'sebb'. For completeness: in my case, does that mean
> that the While controller completely prevents the PreProc. from being run,
> or just that it's run after the While controller and is therefore
> ineffectual for loop control? Cheers.
> ----- Original Message -----
>
> From: "sebb" <[email protected]>
> To: "JMeter Users List" <[email protected]>
> Sent: Tuesday, 29 July, 2014 2:35:29 PM
> Subject: Re: BeanShell PreProcessor doesn't seem to work as I expect
>
> A Pre-Processor is only run just before a sampler.
>
> On 29 July 2014 04:06, Nigel Donaldson <[email protected]> wrote:
> > I have the following arrangement in a Test Plan:
> >
> > Thread Group
> > - Module Controller
> >
> > where the module references/includes the following:
> >
> > Test Fragment
> > - Transaction Controller
> > -- BeanShell Sampler -or- BeanShell PreProcessor
> > -- While Controller
> > --- HTTP Request
> > --- BeanShell PostProcessor
> > ...
> >
> > The BeanShell Sampler (or PreProcessor) simply initialises a number of
> variables:
> >
> > vars.put("MaxNofAttempts", String.valueOf(bsh.args[0]));
> vars.put("AttemptCount", "0"); vars.put("RC", "0");
> >
> > The While test is:
> >
> > ${__javaScript("${RC}"!="200" && "${RC}"!="500" &&
> "${MaxNofAttempts}">"${AttemptCount}")}
> >
> > The PostProcessor checks the response-code of the HTTP request (which
> may be a meaningful 4xx, leading to an increment of the key variable):
> >
> > vars.put("RC", ctx.getPreviousResult().getResponseCode());
> > if (vars.get("RC").substring(0, 1).equals("4")) {
> vars.put("AttemptCount", String.valueOf(
> Integer.parseInt(vars.get("AttemptCount"))+1 )); }
> >
> >
> > If I use a BeanShell Sampler the arrangement works as expected (ie. up
> to a fixed number of retries upon 4xx response-codes, or flow-through upon
> 200 or 500).
> >
> > However, if I use a BeanShell PreProcessor instead, the While test fails
> (leading to an infinite loop) because the value of the 'AttemptCount'
> variable appears unchanged.
> >
> > I don't understand this. I'd appreciate an explanation and/or
> suggestions. (For what it's worth, I originally had JSR223 elements, with
> the same result).
> >
> > Cheers,
> > Nige
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
>

Reply via email to