On 27 January 2011 17:19, sebb <seb...@gmail.com> wrote:
> On 27 January 2011 16:49, Adam Ploverall <adam.plover...@googlemail.com> 
> 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.

Just realised that this is because the variable is only set once all
the Assertions have been run, as it depends on the Assertions.

So the variable is not accurate whilst assertions are being processed,
nor PostProcessors since they run before Assertions.

You could use a Listener instead and the variable will be OK then.

> [Also the response code should probably be numeric]

Also not true...

>> 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

Not a bug - see above.

> 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: jmeter-user-unsubscr...@jakarta.apache.org
For additional commands, e-mail: jmeter-user-h...@jakarta.apache.org

Reply via email to