jmeter - JMeter - 将 Beanshell 用作带有文件的 JSR223 采样器时出现异常
问题描述
我有一个带有简单 JSR223 代码的文件:
log.info("Hello JSR223")
当我在 JSR223 Sampler 中选择 Beanshell 作为语言时,出现以下异常:
2018-06-21 10:32:28,148 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: In file: eval stream Encountered "<EOF>" at line 2, column 24.
in eval stream at line number 2
javax.script.ScriptException: In file: eval stream Encountered "<EOF>" at line 2, column 24.
in eval stream at line number 2
at bsh.engine.BshScriptEngine.evalSource(BshScriptEngine.java:82) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.engine.BshScriptEngine.eval(BshScriptEngine.java:52) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at javax.script.AbstractScriptEngine.eval(Unknown Source) ~[?:1.8.0_25]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:199) ~[ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:69) [ApacheJMeter_java.jar:4.0 r1823414]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:416) [ApacheJMeter_core.jar:4.0 r1823414]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:250) [ApacheJMeter_core.jar:4.0 r1823414]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]
通过添加到脚本字段,相同的代码无需文件即可工作
解决方案
如果您使用Beanshell,您需要坚持Java SE 5.0语法,以便您的语句需要以分号结尾,将其修改为:
log.info("Hello JSR223");
// ^ this is uber important
并且您的脚本应该开始按预期工作。
请注意,从 JMeter 3.1 开始,建议使用 Groovy 语言编写脚本,主要是因为与 Beanshell 相比,Groovy 具有更好的性能,所以我建议将“Language”保留为groovy
,在这种情况下不需要分号。
推荐阅读
- go - 在 Travis 上使用更新的 Go 构建 CGO
- php - 由于 JSON 中的错误,使用 sendgrid 使用 PHP 发送邮件失败
- asp.net-core - HTTP 错误 500.30(Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException:系统找不到指定的文件。)
- javascript - 使用函数返回对象属性的键?
- oracle-apex - 成功验证后也收到错误消息,但它在 oracle apex 中的处理
- sql - 尝试使用 SQL 创建表时标识符无效
- asp.net-mvc - 使用外部 configSource 将连接字符串替换为 Web.Release.config
- java - Visual Studio Code 显示“需要 Java 11 或更高版本才能运行。请下载并安装最新的 JDK”
- assembly - 在 x86-64 中,pcmpestri 指令在 RAX 和 RDX 中以字符为单位还是以字节为单位获取其长度参数?
- python - 在 GAE + python + Flask 中检索 URL 路径时出错