我试图通过beanshell从我的jmeter测试中执行一个java jar。
我遵循的方法是创建一个shell脚本,使用Runtime.exec()函数通过beanshell执行它。
我的问题是这个shell脚本的执行是从实例/主机/操作系统级别获取java,还是作为应用程序正在使用的当前java的一部分执行。
可能有一些悬而未决的问题,我想在此之前提供答案:
感谢任何帮助。
答案 0 :(得分:1)
在某种程度上,两者都是。
shell脚本将作为Java程序的一部分执行,但它将使用系统的默认Java可执行文件执行,除非您在exec()
方法调用中指定了Java可执行文件
答案 1 :(得分:0)
取决于您运行应用程序的方式。如果您只是使用
Runtime.getRuntime().exec("java -jar ....");
Process实例将查找您的操作系统PATH中提供的java
可执行文件。如果PATH中没有java
可执行文件 - 则调用将失败。
请注意starting from JMeter 3.1 it is recommended to use JSR223 Test Elements and Groovy language用于任何形式的脚本编写,因此请考虑在下一个可用机会上迁移到Groovy。例如,您可以启动流程并获得简单的输出:
String response = "your command".execute().text
此外,不是将.jar作为单独的进程运行,而是将其添加到JMeter Classpath并直接从Groovy代码调用必要的函数。有关详细信息,请参阅Apache Groovy - Why and How You Should Use It文章。