Jmeter BeanShell断言没有使测试失败

时间:2016-06-22 11:47:19

标签: jmeter automated-tests beanshell

我正在学习Jmeter。

我有一个BeanShell断言,它应该使测试失败(失败被硬编码到断言中)。但所有的测试都通过了。我做错了什么?

我的理解是,如果BSA设置

Faliure = true;

断言失败。 但就我而言,它并没有失败。

请参阅:

Assertion

Result

您可以在屏幕截图上看到已禁用的XPath Assertion,如果我启用了那个,那么我确实没有完成测试。

更新:现在我明白为什么它没有通过测试失败:失败有一个错字...然后问题:为什么它甚至运行?这不是java吗?这不是一个未声明的变量吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

你有两个错别字,正确的陈述是:

Failure = true;
FailureMessage = "Here goes the failure message";

断言是成功的,因为从Beanshell角度来看代码很好,在Beanshell中你不需要显式定义对象类。只要它是有效的代码 - 您的断言是成功的。

以下是一些故障排除技巧:

  1. 添加debug();作为Beanshell脚本的第一行将触发调试输出到stdout
  2. 将您的代码包含在try/catch block中,如:

    try {
        //your code here
    }
    catch (Throwable ex) {
        log.error("Failure", ex);
        throw ex;
    }
    

    您将相关的堆栈跟踪打印到 jmeter.log 文件

  3. 有关在JMeter中使用Beanshell测试元素的全面信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章