我有多个需要不同堆大小的脚本。那么,我该如何在不改变批处理文件的情况下动态处理它?是否可以从用户定义的属性文件或环境变量中传递堆大小?请提供建议,谢谢。
我有多个需要不同堆大小的脚本。那么,我该如何在不改变批处理文件的情况下动态处理它?是否可以从用户定义的属性文件或环境变量中传递堆大小?请提供建议,谢谢。
这在入门指南中有说明:
环境变量JVM_ARGS可用于覆盖jmeter.bat脚本中的JVM设置。例如:
set JVM_ARGS="-Xms1024m -Xmx1024m -Dpropname=propvalue"
jmeter -t test.jmx …
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)
}