jenkins+ant+jmeter运行Jenkins时报错

要确保确保样式表文件路径正确

image
应该是没问题?

检查一下jmeter.home参数是否正确

顺便清空一下{jmeter.result.html.dir}


应该是对的

还是相同的报错吗,因为 这个错误是说在 xslt 标签中没有正确指定样式表文件

都是报这个,我不用Jenkins执行 是正常的。

同个服务器直接运行是正常的是吧

是的 正常的

那我感觉就是环境变量的差异了,可能你在jenkins上有些变量跟服务器的对不上的


那些配置? 试了很久 没找到原因

在xml把变量都打印看看
<echo message="The value of my.variable is ${my.variable}" />

直接在标签里面加这段代码? 换是我要一个个加

把报错那里的代码加一下吧,然后用jenkins构建

copy那边让它能强行覆盖


这样吗? 试了好像不行

那要不copy语句放到外面去执行

我把copy那部分注释掉 都不行

把你现在ant的脚本再发一次

<?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>