【发布时间】:2023-03-17 10:20:01
【问题描述】:
在我的公司,我们使用 JMeter 作为发布管道的一部分来运行各种测试(烟雾、负载等)。现在我正在创建更复杂的测试场景,我使用了很多 BeanShell,我担心 JMeter 似乎完全可以处理失败的 BeanShell 脚本,我想找到一种失败的方法在 BeanShell 失败时进行测试。
如果存在语法错误,脚本将失败,报告到日志文件,但它不会阻止整个测试套件成功,只要缺少的 BeanShell 执行不会触发其他任何失败。示例(点击查看大图):
如上所示,我有一个带有 BeanShell 后处理器的采样器,其中包含语法错误。执行时记录错误并增加顶部的错误计数器,但仅此而已。如果用户没有注意到这一点,错误将溜到我们的发布过程中,使我们的测试不太可靠。如果我用命令行运行 JMeter,结果如下:
Writing log file to: /home/user/jmeter/jmeter.log
Creating summariser <summary>
Created the tree successfully using Bad BeanShell Test.jmx
Starting the test @ Fri Feb 24 12:23:11 CET 2017 (1487935391815)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary = 2 in 00:00:01 = 1.9/s Avg: 382 Min: 29 Max: 736 Err: 0 (0.00%)
Tidying up ... @ Fri Feb 24 12:23:13 CET 2017 (1487935393168)
... end of run
再一次,好像没事,只有日志文件才发现有问题。而且添加一个测试后脚本来查找文件上的错误并不是一个好的独立测试用例。
我尝试了一个 BeanShell 监听器,但它似乎没有暴露脚本编译/执行的结果(SampleEvent 不包含有用的信息),即使经过大量搜索,我也没有办法做完全没有。
它可以是侦听器、断言、插件上的自定义 Java 代码、命令行配置,只要我可以在我的测试套件中添加一次,并且至少触发一个错误或中止套件以确保会调查的。
【问题讨论】:
标签: java jmeter jmeter-plugins beanshell