【问题标题】:JMeter BeanShell Assertion Custom Output MessagesJMeter BeanShell 断言自定义输出消息
【发布时间】:2016-02-17 16:35:38
【问题描述】:

我被要求增强我的断言,以便在我的 JMeter 测试计划中提供更好的日志消息传递,该测试计划使用基本的 CRUD 方法测试 API。测试计划正在检查到 Jenkins 并自动运行。当出现问题时,支持团队的消息传递级别不够。

在第一个线程组中,我有一个 HTTP 请求,用于根据传入的有效负载在数据库中创建一条新记录。在这个请求下,我有一个 BeanShell 断言,如下所示:

if (ResponseCode.equals("200") == true) 
{ 
    SampleResult.setResponseOK();  
}

我现在正在尝试增强它以解决 409 和 500 响应。

我已经尝试过了,但它似乎不起作用:

if (ResponseCode.equals("200") == true) 
{ 
    SampleResult.setResponseOK();  
}

else if (ResponseCode.equals("409") == true) 
{ 
    FailureMessage = "Creation of a new CAE record failed: Attempting to create a duplicate record.";
}

else (ResponseCode.equals("500") == true) 
{ 
   FailureMessage = "Creation of a new CAE record failed: Unable to connect to server";
}

另外,如果ResponseCode不是200,则需要退出整个线程组,进入下一个线程组。

我已经阅读了这个网站上的几个问题,以及 How to Use BeanShell: JMeter's Favorite Built-in ComponentHow to Use JMeter Assertions in Three Easy Steps,但我仍然感到困惑。不是开发人员并且对 JMeter 还是新手,我需要指导。

非常感谢任何和所有帮助。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    在线程组中选择“停止线程”将帮助您在出现任何错误时停止线程组 - 假设您有其他线程组要连续执行。否则,测试将停止。

    在 beanshell 资产中包含

    else if (ResponseCode.equals("409") == true) 
    { 
       Failure = true;
        FailureMessage = "Creation of a new CAE record failed: Attempting to create a duplicate record.";
    }
    

    【讨论】:

    • 感谢您的回复。您是否建议我在 BeanShell 断言中执行此操作? if (ResponseCode.equals("200") == true) { SampleResult.setResponseOK(); } else if (Failure == true) { FailureMessage = "创建新的 CAE 记录失败:" + SampleResult.setResponseOK() + " 收到代码。" + "\n"; }
    • @David,检查更新的答案。只需添加“失败=真;”以及在失败消息之前。
    • 感谢您的澄清。那行得通。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多