我正在学习Jmeter。
我有一个BeanShell断言,它应该使测试失败(失败被硬编码到断言中)。但所有的测试都通过了。我做错了什么?
我的理解是,如果BSA设置
Faliure = true;
断言失败。 但就我而言,它并没有失败。
请参阅:
您可以在屏幕截图上看到已禁用的XPath Assertion,如果我启用了那个,那么我确实没有完成测试。
更新:现在我明白为什么它没有通过测试失败:失败有一个错字...然后问题:为什么它甚至运行?这不是java吗?这不是一个未声明的变量吗?
谢谢!
答案 0 :(得分:3)
你有两个错别字,正确的陈述是:
Failure = true;
FailureMessage = "Here goes the failure message";
断言是成功的,因为从Beanshell角度来看代码很好,在Beanshell中你不需要显式定义对象类。只要它是有效的代码 - 您的断言是成功的。
以下是一些故障排除技巧:
debug();
作为Beanshell脚本的第一行将触发调试输出到stdout 将您的代码包含在try/catch block中,如:
try {
//your code here
}
catch (Throwable ex) {
log.error("Failure", ex);
throw ex;
}
您将相关的堆栈跟踪打印到 jmeter.log 文件
有关在JMeter中使用Beanshell测试元素的全面信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章