传参来定制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.10extras>ant -f build1.xml -Dtest=mainlg -Dhost=192.168.16.212 -Dport=80 -Dth=10 -Dloop=10 -Dramp
=1 -Dconfig=C:apache-jmeter-2.10extrasdatalogin_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()的东东

原文地址:https://www.cnblogs.com/yeyong/p/3906375.html