性能测试工具 [求助] JMeter BeanShell 断言报错:Error invoking bsh method

露重烟轻 · 2017年03月24日 · 最后由 OneTest 回复于 2019年09月04日 · 4160 次阅读

最近在学习 JMeter,原本写好的用例也运行成功过,可是今天突然报错了,而且错误信息很奇怪,希望请教一下这里的朋友们,谢谢!

环境:
操作系统:macOS Sierra 版本:10.12.3
JDK 版本:1.8.0_111
JMeter 版本:3.1

用例:使用 BeanShell 断言判断用例成功与否

目录结构如下:

BeanShell 断言的脚本如下:

log.info(SampleResult.getResponseDataAsString());

boolean result = false;

String uid = vars.get("uid");
String token = vars.get("token");

if (SampleResult.getResponseCode().equals("200") && token.contains(uid)) {
    result = true;
} else {
    result = false;
}
SampleResult.setSuccessful(result);

用例执行报错信息如下:

2017/03/24 17:23:27 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: source /Users/g***y/Library/apache-jmeter-3.1/  (No such file or directory) 

其中/Users/g***y/Library/apache-jmeter-3.1/是我的 JMeter 目录,JMeter 的启动方式是在终端下执行:

cd Library/apache-jmeter-3.1/
./bin/jmeter

有遇到相同情况的吗?

共收到 10 条回复 时间 点赞

看 beanshell 脚本没啥问题。
是 cd 到 bin 目录 启动 JMeter 么?或者是环境变量的问题。。 不确定。。

检查下目录是是哪里用到的,原本成功的,也是在相同环境下跑的?

Mr_Peace 回复

我是 cd 到 JMeter 主目录下执行./bin/jmeter 的,也试过直接在 bin 下执行,都会报错,也觉得可能是环境问题

北溟 回复

不记得有修改什么

露重烟轻 回复

哦,我的第一句话意思是看下/Users/g***y/Library/apache-jmeter-3.1/这个目录,你是在哪里有用到,这个报错感觉是和 beanShell 中使用了脚本文件,并且这个脚本问价你不存在时是一样的,你可以检查所有 beanShell 的元件

北溟 回复

谢谢,我先检查下

发现一个规律:终端里在哪个目录下打开 JMeter,报错时提示的路径就是哪个目录,在下载目录下打开 JMeter,报错时就提示 source /Users/gengdy/Downloads/ (No such file or directory)
注:我在~/.bash_profile 文件里配置了 JMeter 的环境变量,可以再任意目录下直接运行 JMeter:

# set JMETER_HOME
export JMETER_HOME=${HOME}/Library/apache-jmeter-3.1
export PATH=${PATH}:${JMETER_HOME}/bin

看不到 jmx,我好怀疑你用到了目录相关的属性或变量,比如 user.dir😅

北溟 回复

谢谢!我昨天晚上完全重新写了一个类似的脚本,可以成功运行,猜测可能是原先的脚本有问题。现在不纠结这个错误了。十分感谢您的关注!

最后怎么解决的,我也遇到了您一样的问题

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册