传参来定制threadGroup的并发用户数,ramptime, 每用户的循环次数,host, URL, CVS Data Set的数据源
JMeter中重要的元素就是ThreadGroup, 代表着模拟的用户,threads, loop, ramptime是三个经常要调整的参数,在非图形界面下要修改的话,虽然可以直接jmx, 但是次数多了也是麻烦,于是有了以下方案。
我通常是用ant方式来运行JMeter(Jmeter/extras/下有build.xml),所以我的办法也是通过ant传参
1. 在build.xml中加入参数
<target name="run">
<echo>funcMode = ${funcMode}</echo>
<delete file="${testpath}/${test}.html"/>
<jmeter
jmeterhome="${jmeter.home}"
testplan ="${testpath}/${test}.jmx"
resultlog="${testpath}/${test}.jtl">
<!--
<jvmarg value="-Xincgc"/>
<jvmarg value="-Xmx128m"/>
<jvmarg value="-Dproperty=value"/>
<jmeterarg value="-qextra.properties"/>
-->
<!-- Force suitable defaults -->
<property name="jmeter.save.saveservice.output_format" value="xml"/>
<property name="jmeter.save.saveservice.assertion_results" value="all"/>
<property name="jmeter.save.saveservice.bytes" value="true"/>
<property name="file_format.testlog" value="${format}"/>
<property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
<property name="request.threads" value="${th}"/>
<property name="request.threads.loop" value="${loop}"/>
<property name="loadtest.rampUp" value="${ramp}"/>
</jmeter>
</target>
最后三个参数就是将用到的threads, loop, ramp
2. 在jmx中做修改
线程数 ${__P(request.threads)}
ramptime ${__P(loadtest.rampUp)}
loops: ${__P(request.threads.loop)}
3. 在ant运行时加上对应的参数
C:\apache-jmeter-2.10\extras>ant -f build1.xml -Dtest=main\lg -Dhost=192.168.16.212 -Dport=80 -Dth=10 -Dloop=10 -Dramp =1 -Dconfig=C:\apache-jmeter-2.10\extras\data\login_data.txt
4. 如果不想每次都敲这么长的命令,有一个固定的默认值,也可以给ant运行配置一个默认的参数,可以参考JMeter是如何定义属性"test"的
<!-- Name of test (without .jmx) -->
<property name="test" value="Test"/>如果不在命令行中给ant加载test参数,那么它就会使用默认值 "Test"
同理我们也可以修改像host, port, url这样的值了。
下一篇说一下CVS Data Set config,这个可以取代CVSRead()的东东
浙公网安备 33010602011771号