Linux(Centos)我用Jenkins+ant+jmeter
运行出错
结果如下
BUILD FAILED
/data/interface/build.xml:20: The following error occurred while executing this line:
/data/interface/build.xml:48: input file /data/interface/smoke_report/jtl/TestReport202107140129.jtl does not exist
Linux(Centos 7)下搭建Jenkins+ant+jmeter
用ant跑build.xml出错
查了网上说权限有问题,我把相关的权限全部改了还是出错,提示48行出错,48行是 style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" /> 路径没问题,总不能是下载的jmeter.results.shanhe.me.xsl有问题吧,但是别人可以用,就很奇怪,提示是文件不存在,但是运行报告应该直接写入啊,我没有建smoke_report/jtl/文件夹,但是给了interface777的权限
这是build.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="/data/apache-jmeter-5.4.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="/data/interface/smoke_report/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/data/interface/smoke_report/html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<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="test" />
<antcall target="report" />
</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="/var/lib/jenkins/workspace/mkInterfaceTest/testcase" 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="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
检查文件的路径和名称是否正确。错误信息提示文件不存在,可能是因为文件路径不正确或者文件名写错了。
检查文件的权限。如果文件所在的目录没有足够的权限,可能会导致无法访问文件,从而出现文件不存在的错误。你可以尝试给文件和文件夹赋予足够的权限来解决这个问题。
检查 jmeter.home 是否正确配置。如果 jmeter.home 配置不正确,可能会导致 JMeter 无法找到所需的文件或者资源,从而出现错误。
检查 jmeter-results-detail-report_21.xsl 是否存在。如果该文件不存在,则无法生成报告。
另外,如果你没有建立 smoke_report/jtl/ 文件夹,那么你需要在 build.xml 中定义该文件夹路径,或者在运行脚本之前手动创建该文件夹。你可以在 build.xml 中添加以下代码来创建该文件夹:
下面是我拿下20k学习的接口自动化测试视频教程: 三天搞定python接口自动化测试框架项目实战全套教程【高启强推荐】_哔哩哔哩_bilibili https://ask.csdn.net/questions/%E2%80%8Bwww.bilibili.com/video/BV1CY4y127Eu/?spm_id_from=333.999.0.0 以及软件测试到测试开发全套教程 功能测试/自动化测试/性能测试/测试开发】全测试职业生涯大礼包 http://www.bilibili.com/read/cv21940664?spm_id_from=333.999.0.0