Reputation: 859
I have one request, which triggers every 5 seconds and maximum for 5 minutes until it gets 200 in response code. So ideally that request executes 12 times in a minute and 60 requests total if it fails everytime.
My problem is how I define those maximum 60 requests.
Here is my configuration
I have taken one While Controller
${__javaScript(parseInt(vars.get("Response_code"))!=200)}
In that while controller this components are there,
(Response_code)
(Starting value: 1, Increment:1, Maximum Value:60)
(vars.put("Response_code",prev.getResponseCode());)
(Targer throughput: 12.0)
Where should I have to put condition like if my HTTP request gets success in 3rd attempt go ahead to next request else repeat that request again after 5 seconds till 5 minutes?
I am using jmeter Ver. 5.5
Upvotes: 0
Views: 561
Reputation: 168157
You can amend your While Controller's condition to look like:
${__javaScript((parseInt(vars.get("Response_code"))!=200 && ${counter} < 60),)}
this way it will loop until response code is 200 but not more than 60 times.
Instead of Constant Throughput Timer you can use Flow Control Action sampler to introduce static delay of 5000 ms.
There is no need to have a counter, While Controller exposes a special variable, in your case it will be ${__jm__While Controller For Thumbnail-1 QA1.pdf__idx}
More information: Using the While Controller in JMeter
Upvotes: 1