欢迎光临
梦想从学习开始!

使用ant来调用Jmeter,并定制运行时参数| 小熊测试

本文主要介绍 使用ant来调用Jmeter,并定制运行时参数| 小熊测试,小熊希望对大家的学习或者工作具有一定的参考学习价值,在测试领域有所提升和发展。

  为了应对不同的运行需求(主要是不同的线程数),以及可能的变化(host ip),在nongui运行时我对ant build.xml进行了一些修改

  1. log目录备份与运行前清除  

<tstamp>

<format property="time.stamp" pattern="HHmmss_yyyyMMdd"/>

</tstamp>

<property name="bak.dir" value="c:/apache-jmeter-2.10/bin/testresult/${time.stamp}" />

<property name="result.dir" value="c:/apache-jmeter-2.10/bin/testresult" />

<property name="jmeter.extra" value="c:/apache-jmeter-2.10/extras" />

<target name="clean" depends="">

<delete verbose="true">

<fileset dir="${result.dir}">

<include name="*.csv" />

<include name="*.jtl" />

</fileset>

<fileset dir="${jmeter.extra}">

<include name="*.jtl" />

<include name="*.log" />

</fileset>

</delete>

</target>

<target name="bak">

<copy todir="${bak.dir}" verbose="true">

<fileset dir="${result.dir}">

<include name="*.csv" />

<include name="*.jtl" />

</fileset>

<fileset dir="${jmeter.extra}">

<include name="*.jtl" />

<include name="*.log" />

</fileset>

</copy>

</target>

 
  2. 传参定制jmeter run  



<target name="run" depends="clean">

<mkdir dir="${bak.dir}" />

<property name="run.log" value="${bak.dir}/${th}_${loop}.log"/>

<echo message="${run.log}"/>

<record name="${run.log}"/>

<echo>funcMode = ${funcMode}</echo>

<delete file="${testpath}/${test}.html" />

<echo message="server: ${host}:${port}"/>

<echo message="threads = ${th}"/>

<echo message="loops   = ${loop}"/>

<jmeter jmeterhome="${jmeter.home}" testplan="${testpath}/${test}.jmx" resultlog="${testpath}/${test}.jtl"

jmeterlogfile="${testpath}/${test}.log" >

<jvmarg value="-L jmeter=DEBUG"/>

<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="test.host" value="${host}" />

<property name="test.port" value="${port}" />

<property name="loadtest.rampUp" value="${ramp}" />

<property name="request.config" value="${config}" />

</jmeter>

<antcall target="bak" />

</target>

    为了实现定制的目的,jmx文件里也要有一些对应的改变

  3. 我有多个jmx文件要运行,用了ant的 antcontrib,实现循环  

<taskdef resource="net/sf/antcontrib/antlib.xml" />

<property file="./api_build.properties" />

<target name="apirun" depends="clean">

<mkdir dir="${bak.dir}" />

<property name="run.log" value="${bak.dir}/${th}_${loop}.log" />

<echo message="${run.log}" />

<record name="${run.log}" />

<echo>funcMode = ${funcMode}</echo>

<delete file="${testpath}/${test}.html" />

<echo message="server: ${host}:${port}" />

<echo message="threads = ${th}" />

<echo message="loops   = ${loop}" />

<for list="${perf.apis}" param="api">

<sequential>

<echo message="Now start the testing of API: @{api}" />

<jmeter jmeterhome="${jmeter.home}" testplan="${testpath}/${test}.jmx" resultlog="${testpath}/${test}.jtl" jmeterlogfile="${testpath}/${test}.log">

<jmeterarg value="-L jmeter=DEBUG" />

<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="test.host" value="${host}" />

<property name="test.port" value="${port}" />

<property name="loadtest.rampUp" value="${ramp}" />

<property name="request.config" value="${config}" />

<property name="api" value="@{api}" />

</jmeter>

</sequential>

</for>

<antcall target="bak" />

</target>

  在api_build.properties中写上 perf.apis=xxx,xxx,xxx,xxx于是可以按顺序执行

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小熊分享邦(www.xxfxb.com),希望大家能坚持软件测试之路,谢谢。

赞(0) 打赏
未经允许不得转载:小熊分享邦 » 使用ant来调用Jmeter,并定制运行时参数| 小熊测试

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏