如何在此插件"灵活文件编写器"中获取"断言失败消息"

时间:2015-11-20 04:42:06

标签: jmeter jmeter-plugins

我知道"结果保存配置示例",但我想在"文件编写器可修复"中获取它,我不知道如何获取它?

提前致谢!

@dmitri t我尝试修改beanshellAssertion并获得响应,但仍然不了解如何设置用户属性并获取Flexible File Writer中的参数。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我建议您执行以下操作:

  1. 使用Beanshell Listener将断言失败消息提取到JMeter变量中。示例代码如下所示:

    import org.apache.jmeter.assertions.AssertionResult;
    
    for (int i = 0; i < sampleResult.getAssertionResults().length; i++) {
        AssertionResult assertionResult = sampleResult.getAssertionResults()[i];
        vars.put("assertionResult_" + i, assertionResult.getFailureMessage());
    } 
    

    它会产生如下变量:

    assertionResult_0=Test failed: text expected to contain /foo/
    assertionResult_1=The operation lasted too long: It took 1,010 milliseconds, but should not have lasted longer than 500 milliseconds.
    etc.
    
  2. 使用sample_variables属性(顺便提一下,在FlexibleFileWriter documentation中提到)来配置JMeter以将生成的变量存储在结果文件中。将以下行添加到 user.properties 文件(位于JMeter安装的/ bin文件夹下)

    sample_variables=assertionResult0,assertionResult1,etc.
    

    在JMeter重新启动assertionResult0之后,其他变量值将添加到JMeter .jtl结果文件中。

  3. 有关在JMeter测试中使用Beanshell脚本帮助可以完成的其他工作的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南。