You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter自定义函数传递两个变量失败问题求助

解决JMeter自定义BeanShell函数传递多个参数的问题

嘿,我来帮你搞定这个问题!你遇到的核心问题是在__BeanShell函数里引用JMeter变量的方式不对,而且其实在BeanShell断言里完全不用绕这个弯子,直接调用函数更简单。

我给你拆解几个可行的解决方案:

方案1:修正__BeanShell函数的调用语法

如果你一定要用__BeanShell函数来调用自定义方法,不能直接写变量名,得用JMeter内置的vars对象来获取变量值。把你的调用代码改成这样:

${__BeanShell(printStr2(vars.get("Username"), vars.get("Password")))}

这里的vars是JMeter提供的线程变量容器,vars.get("变量名")能正确拿到你在BeanShell断言里定义的Username和Password的值,传递给自定义函数。

方案2:直接在BeanShell断言里调用函数(更推荐)

既然你已经在BeanShell断言里写代码了,完全没必要用__BeanShell函数包裹。因为BeanShell断言本身就是运行BeanShell代码的环境,你在BeanShellFunction.bshrc里定义的函数已经被自动加载进来了,直接调用就行:

String Username = "ABC"; 
String Password ="XXX";
printStr2(Username, Password); // 直接调用自定义函数,一步到位

这种写法更直观,也不容易出现语法解析错误。

额外检查项

  • 确保你的BeanShellFunction.bshrc文件放在JMeter的bin目录下,JMeter启动时会自动加载这个文件里的自定义函数。
  • 自定义函数的定义可以补个返回值类型(虽然你这里是打印操作,不影响,但更规范):
    void printStr2(String str1, String str2) { 
        System.out.println(str1); 
        System.out.println(str2); 
    }
    

试试上面的方法,应该就能正常传递两个参数并执行函数了!

内容的提问来源于stack exchange,提问作者Ghost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:38:15