当前位置: 首页 > 知识库问答 >
问题:

JSR223采样器中的断言失败

邹英发
2023-03-14
SampleResult.setIgnore();
import org.apache.jmeter.threads.JMeterContext.TestLogicalAction;
import org.apache.jmeter.assertions.AssertionResult;

//Final Response Assertion
String s1 = "N";
String s2 = "N";

if( ${__isVarDefined(s_check)} == true )
{
s1 = vars.get("s_check");
}
if( ${__isVarDefined(s_check_1)} == true )
{
s2 = vars.get("s_check_1");
}

if( (s1 == "false" && s2 == "false") || (s1 == "false" && s2 == "N") || (s1 == "N" && s2 == "false") )
{
AssertionResult.setFailure(true); //NOT WORKING
AssertionResult.setFailureMessage("accountID page is not loaded"); //NOT WORKING
ctx.setTestLogicalAction(TestLogicalAction.START_NEXT_ITERATION_OF_THREAD); //WORKING
}

共有1个答案

欧阳嘉年
2023-03-14

>

  • 在JSR223采样器中没有AsserionResult速记,请将代码移动到JSR223断言并将第一行更改为prev.setignore(true),或者更改以下行:

    AssertionResult.setFailure(true)
    AssertionResult.setFailureMessage("accountID page is not loaded")
    

    对这些人来说:

    SampleResult.setSuccessful(false)
    SampleResult.setResponseMessage("accountID page is not loaded")
    

    建议不要在Groovy脚本中内联JMeter函数或变量,您还应该更改以下行:

    String s1 = "N";
    if( ${__isVarDefined(s_check)} == true )
    {
    s1 = vars.get("s_check");
    }
    

    s1 = vars.get('s_check') ?: 'N'
    

    更多信息:

      null

  •  类似资料:
    • 我有下面的JSR223采样器,它读取图像,稍微修改它,并发送一个POST multipart/form-data请求。与HTTP采样器相比,我发现它广泛使用了CPU,但我不能使用HTTP采样器,因为它不支持在不保存到文件系统的情况下更改映像。 如果任何人有任何输入来优化JSR223采样器中的脚本,这样它就不会占用大量的CPU,我将很感激。

    • 根据答案,应该将velocity添加到JMeter类路径中,以便发现可用的脚本引擎。 如何在JMeter中添加velocity作为脚本引擎?

    • 我是Jmeter的新手,正在积极学习。 我想知道JSR223采样器和JSR223预处理器有什么不同,采样器可以和预处理器一样使用吗?

    • 我已经在中获得了记录数,我只需要知道如何才能获得的数据 提前感谢!

    • 我在JSR223采样器中有以下代码,我得到SSL证书错误。有什么办法可以做到禁用吗? JSR223脚本中的问题JSR223采样器,消息:javax.script.scriptException:javax.net.ssl.sslhandShakeException:sun.security.validator.validatoreXception:PKIX路径构建失败

    • 当前Jmeter版本-5.2.1 我甚至尝试在jmeter.properties文件中设置如下所示的类路径- user.classpath=/usr/local/cellar/groovy/3.0.4/libexec/lib 好心的帮助