Jmeter BeanShell 断言未通过测试
Jmeter BeanShell Assertion not failing the tests
我正在学习 Jmeter。
我有一个应该使测试失败的 BeanShell 断言(失败被硬编码到断言中)。但是所有的测试都通过了。我做错了什么?
我的理解是,如果 BSA 设置
Faliure = true;
断言失败。
但就我而言,它并没有失败。
请看:
您可以在屏幕截图上看到未实现的禁用的 XPath 断言,如果我启用它,它确实如我所料未通过测试。
更新:现在我明白了为什么它没有通过测试:失败有一个错字...然后问题:为什么它甚至 运行?这不是java吗?这不是一个未声明的变量吗?
谢谢!
你有 2 个错别字,正确的说法是:
Failure = true;
FailureMessage = "Here goes the failure message";
断言成功,因为从 Beanshell 的角度来看代码很好,在 Beanshell 中你不需要显式定义对象 class。只要它是有效代码——您的断言就是成功的。
这里有一些故障排除技巧:
- 将
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 文章
我正在学习 Jmeter。
我有一个应该使测试失败的 BeanShell 断言(失败被硬编码到断言中)。但是所有的测试都通过了。我做错了什么?
我的理解是,如果 BSA 设置
Faliure = true;
断言失败。 但就我而言,它并没有失败。
请看:
您可以在屏幕截图上看到未实现的禁用的 XPath 断言,如果我启用它,它确实如我所料未通过测试。
更新:现在我明白了为什么它没有通过测试:失败有一个错字...然后问题:为什么它甚至 运行?这不是java吗?这不是一个未声明的变量吗?
谢谢!
你有 2 个错别字,正确的说法是:
Failure = true;
FailureMessage = "Here goes the failure message";
断言成功,因为从 Beanshell 的角度来看代码很好,在 Beanshell 中你不需要显式定义对象 class。只要它是有效代码——您的断言就是成功的。
这里有一些故障排除技巧:
- 将
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 文章