Bootstrap

Ant +Jmeter生成报告删除上一次执行报告

在build.xml中加入

我的build.xml文件

<?xml version="1.0" encoding="utf-8"?>

<project name="ant-jmeter-test" default="run" basedir=".">

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

<tstamp>

<format property="time" pattern="yyyyMMddhhmm" />

</tstamp>

<!-- (1)需要改成自己本地的 Jmeter 目录-->

<property name="jmeter.home" value="/usr/tools/apache-jmeter-5.5/apache-jmeter-5.5" />

<!-- (2)jmeter生成jtl格式的结果报告的路径-->

<!-- jmeter生成jtl格式的结果报告的路径, value="D:/standard-catalog/jtl"-->

<!-- jmeter生成html格式的结果报告的路径,value="D:/standard-catalog/html"-->

<property name="jmeter.result.jtl.dir" value="/usr/tools/apache-jmeter-5.5/apache-jmeter-5.5/bin/test/report/jtl" />

<property name="jmeter.result.html.dir" value="/usr/tools/apache-jmeter-5.5/apache-jmeter-5.5/bin/test/report/html" />

<!-- (3)生成的报告的前缀:value-->

<property name="ReportName" value="InterfaceReport"/>

<property name="report.title" value="report"/>

<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />

<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html"/>

<target name="run">

<antcall target="clear"/>

<antcall target="test"/>

<antcall target="report"/>

</target>

<target name="clear">

<echo message="释放空间,清空jtl和html文件夹中 ..."></echo>

<delete dir="${jmeter.result.html.dir}"/>

<delete dir="${jmeter.result.jtl.dir}"/>

<!-- 删除-->

<!--<delete file="${work.dir}/result/console/*.txt" />-->

<sleep seconds="3"/>

<echo message="释放完成 ..."></echo>

</target>

<target name="test">

<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>

<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">

<!-- (4)声明要运行的脚本。*.jmx 指包含此目录下的所有jmeter脚本,需要改成自己本地的目录-->

<testplans dir="/usr/tools/apache-jmeter-5.5/apache-jmeter-5.5/bin/test" includes="*.jmx" />

<property name="jmeter.save.saveservice.output_format" value="xml"/>

</jmeter>

</target>

<path id="xslt.classpath">

<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>

<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>

</path>

<target name="report">

<tstamp>

<format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/>

</tstamp>

<xslt classpathref="xslt.classpath"

force="true" in="${jmeter.result.jtlName}"

out="${jmeter.result.htmlName}"

style="/usr/tools/apache-jmeter-5.5/apache-jmeter-5.5/extras/jmeter-results-report_21.xsl">

<!--style="/usr/tools/apache-jmeter-5.5/apache-jmeter-5.5/extras/jmeter.results.shanhe.me.xsl">-->

<!--(5)样式目录:/extras/xxx.xsl -->

<param name="dateReport" expression="${report.datestamp}"/>

</xslt>

<copy todir="${jmeter.result.html.dir}">

<fileset dir="${jmeter.home}/extras">

<include name="collapse.png"/>

<include name="expand.png"/>

</fileset>

</copy>

</target>

<path id="lib_classpath">

<fileset dir="${basedir}/">

<include name="mail*.jar"/>

<include name="activation*.jar"/>

<include name="commons-email*.jar"/>

<include name="ant-contrib*.jar"/>

</fileset>

</path>

</project>

html文件夹里面的是每次生成都叫这个html文件,如果执行失败的话还是上次执行过的,而jtl文件里面的每次生成报告对应生成一个时间戳文件名,保留每次的记录,所以我打算只清楚html里面的文件,替换,执行成功

;