如何改变Jmeter结果的状态

How to change the status of Jmeter Result

我在 jmeter 中创建了一个脚本,很少有正面案例,也很少有负面案例。 对于正面案例 - 响应代码将为 200 对于负面案例 - 响应代码将显示为 412。

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

我尝试使用 BeanShell 断言,但没有达到预期效果。

代码如下:

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

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

请任何人帮助我。

谢谢 萨拉达

您的 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;
}

参考文献:

如果您希望在 JMeter 中获得 HTTP 响应代码 "failure",但希望将示例标记为成功,这可以通过响应断言来完成:

例如: 当验证 DELETE 调用有效时,我们可能希望重试 GET 并按预期验证 404。通常 JMeter 会认为这是一个失败,但在我们的测试上下文中它不是。

  • 向删除后的 GET 调用添加响应断言。
    • 适用于:主要样本
    • 要测试的响应字段:响应代码
    • 勾选"Ignore Status"
    • 模式匹配规则:等于
    • 要测试的模式:404

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

例如,如果调用返回 500 jmeter 仍将忽略 "failed" 状态,但将样本标记为失败,因为 500 != 404.

-糊涂了