jenkins+ant+jmeter运行Jenkins时报错

<?xml version="1.0" encoding="UTF-8"?>
<target name="run">

    <antcall target="test" />
    <antcall target="report" />
    <echo message="The value of my.report is ${run} " />
</target>

<target name="test">
    <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
         <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
        <testplans dir="/opt/JMeter/apache-jmeter-5.5/script" 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>  
    <echo message="The value of my.jmeter.result.jtlName is ${jmeter.result.jtlName}"/>
    <echo message="The value of my.jmeter.result.htmlName is ${jmeter.result.htmlName}"/>
    <echo message="The value of my.jmeter.home is ${jmeter.home}"/>	
    <xslt 
          classpathref="xslt.classpath"
          force="true"
          in="${jmeter.result.jtlName}"
          out="${jmeter.result.htmlName}"
          style="${jmeter.home}/extras/jmeter-results-report_21.xsl">
          <!--style="${jmeter.home}/extras/jmeter-results-report_21.xsl">-->
          <param name="dateReport" expression="${report.datestamp}"/>

    </xslt>

            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
</target>

确认一下是不是jenkins执行的权限不够,在服务器上切到jenkins执行的对应账号执行ant脚本

确保文件没有被其他进程占用,通过lsof命令

怎么切 :joy:

su - 用户

好像是可以了

ok