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