如何更改Jmeter结果的状态

时间:2015-04-03 06:59:04

标签: jmeter

我用jmeter创建了一个脚本,很少有正面案例,很少有负面案例。 对于积极案例 - 响应代码将为200 对于否定案例 - 响应代码将为412。

根据Jmeter,如果响应代码4xx或5xx将被视为失败,但在我的情况下,我预计在负面情况下结果为412,我想将其视为通过。

我尝试使用BeanShell Assertion,但我没有得到预期的结果。

代码如下:

String ErrorValue = "${ExpectedError}";

if((ErrorValue.equals("ERROR")) && (ResponseCode.equals("412")))
{
    Failure = false;
}
else if(ErrorValue.equals("NO ERROR") && ResponseCode.equals("200"))
{
     Failure = false;
}
else
{
    Failure=true;
}

关于代码我可以检查预期的错误和响应是相同的但如果相同如何更改状态通过我没有得到。

请有人帮助我。

由于 Sarada

2 个答案:

答案 0 :(得分:2)

您的Failure = false位仅设置Beanshell断言成功。据我了解,您需要更改父采样器的状态。为此,您需要调用SampleResult.setSuccessful()方法并将其设置为" true"如下:

SampleResult.setSuccessful(true);

完整代码:

String ErrorValue = "${ExpectedError}";

if((ErrorValue.equals("ERROR")) && (ResponseCode.equals("412")))
{
Failure = false;
SampleResult.setSuccessful(true);
}
else if(ErrorValue.equals("NO ERROR") && ResponseCode.equals("200"))
{
Failure = false;
SampleResult.setSuccessful(true);
}
else
{
Failure=true;
}

参考文献:

答案 1 :(得分:1)

如果您期望HTTP响应代码"失败"在JMeter中,但希望将样本标记为成功,这可以通过响应断言完成:

例如: 验证DELETE调用有效时,我们可能需要重新尝试GET并按预期验证404。通常JMeter会认为这是失败的,但在我们的测试中它不是。

  • 在删除后的GET调用中添加响应断言。
    • 申请:主要样本
    • 要测试的响应字段:响应代码
    • 选中"忽略状态"
    • 模式匹配规则:等于
    • 待测模式:404

始终忽略失败或未失败的状态。但是,只有404匹配的断言才会成功。

例如,如果呼叫返回500 jmeter仍然会忽略"失败"状态,但将样品标记为失败,因为500!= 404。

-Addled