使用Ant运行JMeter测试计划不起作用

时间:2013-12-26 16:25:58

标签: ant jmeter

我正在尝试将JMeter与ant集成。下面是脚本。由于某种原因,它没有执行任何目标。运行脚本时,我没有收到任何错误。即使是简单的清洁操作也不会被执行。我有什么遗失的吗?

<project name="Performance Testing for my project" basedir="C:\apache-ant-1.9.2" >

  <target name="clean" >
    <delete includeemptydirs="true">    
      <fileset dir="${basedir}/Results/" excludes="**/PerformanceCharts.html"/>
    </delete>
  </target>

  <target name="run-jmeter" depends="clean" >
    <taskdef name="jmeter" classpath="${basedir}\apache-jmeter-2.10\extras\ant-jmeter-1.1.1.jar"
             classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
  <echo message="Hello, world"/>
    <jmeter
            jmeterhome="${basedir}\apache-jmeter-2.10"
            resultlog="${basedir}\Results\JMeterResults.xml">
      <testplans dir="${basedir}\TestPlan" includes="*.jmx"/>
      <property name="request.threads" value="1"/>
      <property name="request.loop" value="10"/>
    </jmeter>
  </target>

  <target name="create-reports" depends="run-jmeter">
    <xslt
            in="${basedir}\Results\JMeterResults.xml"
            out="${basedir}\Results\JMeterResults.html"
            style="${basedir}\apache-jmeter-2.10\extras\jmeter-results-detail-report.xsl"/>
  </target> 

  <target name="main" depends="clean,run-jmeter,create-reports"/>
</project>

我项目中的目录结构是

C:\apache-ant-1.9.2
    |
    ------apache-jmeter-2.10
    |
    ------Results
    |
    ------TestPlan

“basedir”我试过“。”和“C:\ apache-ant-1.9.2”

我在一个8窗口的盒子上运行它。

这是我运行脚本时得到的结果

C:\apache-ant-1.9.2\bin>ant -buildfile jmeterRun.xml
Buildfile: C:\apache-ant-1.9.2\bin\jmeterRun.xml

BUILD SUCCESSFUL
Total time: 0 seconds

3 个答案:

答案 0 :(得分:2)

您可以使用以下xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<project name="performance-tests" default="run-performance-tests" basedir=".">
<property name="jmeter.home" value="${basedir}/apache-jmeter-2.10" />           

    <path id="jmeter.path">
      <fileset dir="D:\apache-jmeter-2.10\extras" includes="\*.jar" />
    </path> 

    <target name="run-performance-tests">
      <delete dir="${basedir}/target" quiet="true" failonerror="false"/>
<mkdir dir="${basedir}/target"/>
      <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" classpathref="jmeter.path" />
      <echo message="Running load tests in testing.xml"/>
      <jmeter
       jmeterhome="D:\apache-jmeter-2.10"
        resultlog="${basedir}/target/JMeterResults.xml">
        <jvmarg value="-Xincgc"/>
        <jvmarg value="-Xmx512m"/>
        <jvmarg value="-Dproperty=value"/>
        <property name="request.threads" value="5"/>
        <property name="request.loop" value="50"/>
        <property name="jmeter.save.saveservice.assertion_results" value="all"/>
        <property name="jmeter.save.saveservice.output_format" value="xml"/>
        <testplans dir="${basedir}/TestPlan" includes="RiponAlWasim_One.jmx"/>
      </jmeter>
      <xslt in="${basedir}/target/JMeterResults.xml"
        out="${basedir}/target/Result_One.html"
        style="${basedir}/jmeter-results-detail-report_21.xsl"/>
    </target>
</project>

答案 1 :(得分:0)

您需要指定目标,因为您的项目没有默认目标。 试试跑步 来自命令行的ant main 然后将default="main"添加到<project>元素,这样您就不必指定它了。

答案 2 :(得分:0)

它就像一个魅力,我很欣赏构建文件的清晰度,只需几分钟就可以看到我的测试正在运行..

<?xml version="1.0" encoding="UTF-8"?>
<project name="performance-tests" default="run-performance-tests" basedir=".">
    <property name="jmeter.home" value="${basedir}/apache-jmeter-2.9" />
    <path id="jmeter.path">
        <fileset dir="${basedir}/apache-jmeter-2.9/extras" includes="\*.jar" />
    </path>
    <target name="run-performance-tests">
        <delete dir="${basedir}/target" quiet="true" failonerror="false"/>
        <mkdir dir="${basedir}/target"/>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" classpathref="jmeter.path" />
        <echo message="Running load tests in testing.xml"/>
        <jmeter
       jmeterhome="${basedir}/apache-jmeter-2.9"
        resultlog="${basedir}/target/JMeterResults.xml">
            <jvmarg value="-Xincgc"/>
            <jvmarg value="-Xmx512m"/>
            <jvmarg value="-Dproperty=value"/>
            <property name="jmeter.save.saveservice.assertion_results" value="all"/>
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <testplans dir="${basedir}/TestPlan" includes="GetSS4.jmx"/>
        </jmeter>
        <xslt in="${basedir}/target/JMeterResults.xml"
        out="${basedir}/target/Result_One.html"
        style="${basedir}/jmeter-results-detail-report_21.xsl"/>
    </target>
</project>

我对构建文件进行了一些简单的更改,其中硬编码文件路径被动态值替换。

但是如何从结果中获取TPS值,我只看到平均时间和成功请求的百分比。