JMeter自定义双参数函数调用失败问题求助
解决JMeter中BeanShell双参数自定义函数无输出的问题
嘿,我一眼就瞅出问题所在了!你写的printStr2函数里,System.out.println(str1, str2);这行代码是错的——Java(BeanShell基于Java语法)里的System.out.println()根本没有接受两个字符串参数的重载版本,这会导致BeanShell执行时悄悄抛出异常,只是JMeter默认没把这个异常展示出来,所以你看不到任何输出。
修正方法
把双参数函数里的输出语句改成支持单个参数的形式就行,比如把两个字符串拼接起来:
修改BeanShellFunction.bshrc里的printStr2函数:
printStr2(String str1, String str2) { // 用+拼接两个字符串,作为单个参数传给println System.out.println(str1 + " " + str2); }
或者用更灵活的String.format方式:
printStr2(String str1, String str2) { System.out.println(String.format("%s %s", str1, str2)); }
额外排查小技巧
以后再遇到BeanShell函数没执行的情况,别慌:
- 打开JMeter的日志文件
jmeter.log,里面会记录BeanShell的执行异常 - 在BeanShell断言的设置里,勾选Display Errors in Console选项,控制台会直接输出错误信息,帮你快速定位问题
修改完函数后,记得重启JMeter(因为BeanShellFunction.bshrc的修改需要重启才会生效),再调用${__BeanShell(printStr2("hello", "howAreYou"))},就能看到正常的输出啦!
内容的提问来源于stack exchange,提问作者Ghost
相关产品推荐
相关产品推荐

