51Testing软件测试论坛

标题: [求助]关于jmeter +ant 自动化测试的问题 [打印本页]

作者: whscfan    时间: 2015-3-11 10:36
标题: [求助]关于jmeter +ant 自动化测试的问题
我在使用ant+jmeter做自动化测试遇到以下问题:
每次调用ant 执行任务,任务只是执行一个thread,我如何配置build,让指定的任务执行指定的thread数呢?
build文件部分配置如下:

    <target name="run">
        <echo>funcMode = ${funcMode}</echo>
        <delete file="${testpath}/${test}.html"/>
  <delete file="${testpath}/${test}.jtl"/>
        <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"/>
        -->
   <property name="request.threads" value="10"/>   
   <property name="request.loop" value="1"/>
            <!-- 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.text" value="true"/>
            <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
        </jmeter>
    </target>

作者: 土土的豆豆    时间: 2015-3-11 13:04
jmeterplan后面没有‘s’ ?
我记得以前配置是jmeterplans 也许我记错了
另外,你确定jmx是多脚本的哦?
应该会逐个多线程run的 无需特别设置呀
作者: heavily_51t    时间: 2015-3-11 16:16
不懂,帮LZ顶一下
作者: whscfan    时间: 2015-3-13 00:32
土土的豆豆 发表于 2015-3-11 13:04
jmeterplan后面没有‘s’ ?
我记得以前配置是jmeterplans 也许我记错了
另外,你确定jmx是多脚本的哦?
...

我已经在谷歌大师下解决了。你建立好用例保存的jmx是不会多线程的,除非你保存前设置了threads,但是那样不灵活。为了实现一个脚本,多个场景的复用。
所以,这里就要使用到了参数化的东西了。
threads 和loop 和相关你想设置的地方设置好参数,然后在ant的build.xml中的jmeter字段配置好property。比如我这样设置:
线程组中的threads这里设置${__property(run.threads,,1)}   ----表示从run.threads读取参数,默认值为1
而在ant的build.xml中这样设置(加在 <jmeter  加在这里></jmeter>):
<property name="run.threads" value="100"/>  ---表示启动100个线程
如果你想更灵活,使用ant的参数吧,上面的改成这样:
<property name="run.threads" value="${thread}"/>
在ant的启动命令中加入:-Dthread 100 表示参数

run任务配置完整如下:  <target name="run">
        <echo>funcMode = ${funcMode}</echo>
        <delete file="${testpath}/${test}.html"/>
  <delete file="${testpath}/${test}.jtl"/>
        <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"/>
        -->
<property name="run.threads" value="${thread}"/>  
   <property name="request.loop" value="1"/>
            <!-- 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.text" value="true"/>
            <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
        </jmeter>
    </target>

ant启动完整命令:
ant -f build.xml run -Dthread 100

作者: ylhkaixin    时间: 2016-8-16 17:11
那失败的结果怎么发邮件出来,有没有实现呢?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2