On 27 January 2011 16:49, Adam Ploverall <[email protected]> wrote:
> Sebb
>
> Thank you for your perceptive answer. Yes, I was wrong to say the
> BEAN SHELL ASSERTION script was being skipped.
>
> I have:
>
> Thread Group (1/0/1)
> + HTTP Cache Manager (clear cache)
> + HTTP Cookie Manager (clear cookies)
> + Simple Controller
> ++ HTTP Request
> +++HTTP Header Manager (host, accept, useragent, etc)
> ++Bean Shell Assertion
> ++ Assertion Results
> + View Results Tree
> + Mailer Visualizer
>
> The BEAN SHELL ASSERTION now contains only:
>
> print("Start of script 27b");
> print(vars.get("JMeterThread.last_sample_ok"));
> print( ResponseCode);
>
> With a valid tested server port:
>
> Start of script 27b
> true
> 200
OK
> and we have success.
>
> When changing the HTTP request to an invalid port (just to fake the test):
>
> Start of script 27b
> true
> Non HTTP response code: java.net.SocketTimeoutException
That may be a bug - not sure why last_sample_ok is true here.
[Also the response code should probably be numeric]
> and the Mailer Visualizer sees an error (failure). The sampler result is:
That's because SampleResult.isSuccessful() is false
>
> Thread Name: *************
> Sample Start: 2012-04-08 03:40:54 BST
> Load time: 5005
> Latency: 0
> Size in bytes: 1577
> Sample Count: 1
> Error Count: 1
> Response code: Non HTTP response code: java.net.SocketTimeoutException
> Response message: Non HTTP response message: connect timed out
>
> Response headers:
>
> HTTPSampleResult fields:
> ContentType:
> DataEncoding: null
>
> So, I suppose my simpler question is, how would I conditionally branch
> on the HTTP Request sampler error, and only do other assertion tests
> and email if a non null status code is returned? I'm happy to do this
> in the Bean Shell script, if it isn't possible with the standard
> Jmeter components.
This boils down to how to distinguish the different HTTP sample results.
SInce last_sample_ok is not being set (I think that's a bug), just
check SampleResult.isSuccessful() instead.
For example,
vars.put("OK",String.valueOf(SampleResult.isSuccessful()));
...
If Condition = ${OK}, Interpret Condition as Variable Expression? = true
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]