【问题标题】:Beanshell Assertion returns inconsistent results if the loop count is more than 1如果循环计数大于 1,Beanshell 断言返回不一致的结果
【发布时间】:2018-08-22 06:14:00
【问题描述】:

我在 HTTP 请求中添加了一个 beanshell 断言,如果我运行循环计数值为 1 的脚本,通过在 CSV 文件中添加 1 个值,断言返回正确的结果,但如果我将循环计数更改为大于 1例如:4 并运行脚本,通过在 CSV 文件中添加 4 个值(第一个循环通过从 csv 文件中选择第一个值来运行测试,第二个循环选择第二个值等等)我看到与断言不一致的结果。

例如:如果断言将值正确显示为“未检查”,则使用 1 个循环,如果我通过将第一个值移动到第 4 行向 csv 文件添加 3 个值来运行测试,则断言显示第 4 行与第 3 行的值相同(尽管第 4 行的值应该与第 3 行的值不同)。

这是我正在使用的 Beanshell 断言:

String Response1 = prev.getResponseDataAsString();    
String Response2 = prev.getResponseDataAsString();    
String Response3 = prev.getResponseDataAsString();    
if(Response1.contains("${accInst}") && Response2.contains("${otherInst}") && Response3.contains("${accInstAvailableNotChecked}")){    
Failure=false;    
log.info("In Case ID: ${id}, Account Instructions Available is Not Checked");    
}    
else if(!Response1.contains("${accInst}") || !Response2.contains("${otherInst}") && Response3.contains("${accInstAvailableChecked}")){    
Failure=false;    
log.info("In Case ID: ${id}, Account Instructions Available is Checked");    
}    
else{    
Failure=true;    
FailureMessage="Account Instructions Available is not set correctly in the case.";    
log.error("Bean Shell Assertion is FAIL");    
}    

【问题讨论】:

    标签: jmeter beanshell


    【解决方案1】:
    1. 在相同的输入数据下,相同的代码将返回相同的结果。如果你得到不同的结果——很可能你提供了不同的数据。使用 Debug SamplerView Results Tree 侦听器组合仔细检查所有 4 个 JMeter 变量值,很可能断言代码工作正常,您只是向它提供了错误的输入数据
    2. 检查您的断言scope,由于Test Plan 树中的位置错误,断言被调用的次数可能比您预期的多 2 倍
    3. 考虑使用vars简写访问断言代码中的JMeter变量,即使用vars.get("accInst")而不是"${accInst}"
    4. Since JMeter 3.1 it is recommended to use JSR223 Test Elements and Groovy language 用于任何形式的脚本,因此请考虑尽快迁移到 JSR223 Assertion

    【讨论】:

      【解决方案2】:

      谢谢,迪米特里。实际上,我可以通过在正则表达式提取器中将“默认值”添加为“未找到”来解决该问题。我还看到了不同 beanshell 断言的相同问题,并且能够通过在 Reg 表达式提取器的“默认值”字段中添加“未找到”来解决它。

      有人可以解释在 reg 表达式提取器的“默认值”字段中添加“未找到”的用途吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-27
        • 2018-09-24
        • 2011-08-18
        • 2016-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多