dvanhook
dvanhook

Reputation: 253

Jmeter - pause when response assertion triggers?

I've got a Jmeter test up and running on an API I'm building.
The API returns this if it gets overloaded:

{"status":{"type":"failure","cause":"internal","http":500}}

What I'd like to do is have JMeter also PAUSE if it gets that result.

I already have set up a Response Assertion that captures these errors. It seems like this should be a simple thing to set up, but I'm not seeing it. I see that I can add an If Controller, but that only works with Javascript vars.

Do I need to add a Regular Expression Extractor, grab that 'failure' as 'type' variable, and then add that to the If Controller?
Seems a little over-complicated?
Am I missing something?

Upvotes: 0

Views: 1097

Answers (1)

Aliaksandr Belik
Aliaksandr Belik

Reputation: 12873

Try to use BeanShell Timer to handle this situation.

It

  • allows scripting so you can program timer behavior how you need;
  • has access to jmeter context - via ctx variable - so you can handle ResponseCode condition.

Here you can find good article with example how to use.
And here - how to access beanshell variables and handle response code.

Your condition will be something like this one:

if (prev.getResponseCode().equals("500") == true) { 
    . . .
}

PLEASE NOTE: script used in BeanShell Timer should return value is used as the number of milliseconds to wait.

Another question is what the reason to do this.
If you have load/stress-test scenario then these results are something you should get during your tests and analyze then.
If you have kind of "functional" test-scenario so you have to handle this situation in more general way, adding any kind of properly configured timer to each sampler - to avoid overload or simulate "real-life" scenario.
Am I missing something?

Upvotes: 2

Related Questions