如何在不修改jmeter.bat文件的情况下增加JMeter堆大小?

5

我有多个需要不同堆大小的脚本。那么,我该如何在不改变批处理文件的情况下动态处理它?是否可以从用户定义的属性文件或环境变量中传递堆大小?请提供建议,谢谢。

2个回答

5

这在入门指南中有说明:

环境变量JVM_ARGS可用于覆盖jmeter.bat脚本中的JVM设置。例如:

set JVM_ARGS="-Xms1024m -Xmx1024m -Dpropname=propvalue"
jmeter -t test.jmx …

嗨,只是想澄清一些疑问。需要在环境变量中设置JVM_ARGS=-Xms1024m -Xmx1024m -Dpropname=propvalue,并使用jmeter.bat -n -t"script.jmx"以非GUI形式执行脚本。我的理解正确吗?谢谢您的帮助。 - Sylvia Lobo
是的,JMeter会将JVM_ARGS变量添加到执行中。 - user7294900
我必须执行许多具有不同堆大小的脚本,您能建议我如何动态处理它吗?是否可以直接从命令提示符中处理? - Sylvia Lobo
你可以使用构建工具如Jenkins,或者创建带参数的自己的脚本。但这是一个不同的问题。 - user7294900

0
update your jmeter.sh file as below
java -server $JVM_ARGS -jar `dirname $0`/ApacheJMeter.jar "$@"

your executable".sh"(which has all information about jmeter home, script name which needs to be executed) should be as follows----
#!/bin/sh
JVM_ARGS="-Xms2g -Xmx2g"
JMETER_HOME=/tui/endeca/endeca/ToolsAndFrameworks/jmeter/app/apache-jmeter-3.1/
export JVM_ARGS
export JAVA_HOME
echo $JAVA_HOME
echo $JVM_ARGS
#export JMETER_HOME
$JMETER_HOME/bin/jmeter.sh -n -t "/tui/endeca/endeca/ToolsAndFrameworks/Script/TH/script.jmx"

To see the updated heap use the below in JSR223 Sampler(Thanks to Dmitri for solution)
import java.lang.management.ManagementFactory
import java.lang.management.RuntimeMXBean
def runtimeMxBean = ManagementFactory.getRuntimeMXBean()
def arguments = runtimeMxBean.getInputArguments()
for (argument in arguments) {
    println('Effective JVM argument: ' + argument)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接