JMeter+Ant+Jenkins构建接口报告(无人驾驶版)

展示结果:

uc浏览器打开测试报告,绿色显示脚本结果

搭建操作步骤如下

1.jemter写好脚本

2.下载并配置ant环境变量:加上activation.jar、commons-lang3-3.8.1.jar、mail.jar 这3个包

mail.jar需要引用到jmeter

3.下载安装Jenkins 并进行构建

一:下载地址 Apache Ant - Binary Distributions,下载后解压到指定位置即可,

Ant的意义是:配置Jmeter:用ant构建命令来调动执行jmeter接口测试,并生成测试报告

二:jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中

1.安装ant的目录下的lib中缺少jar包(activation.jar、commons-lang3-3.8.1.jar、mail.jar)

2.下载完成并放在jmeter的lib中

重点:进入apache-jmeter-5.4.3\apache-jmeter-5.4.3\extras的build文件中修改

build文件直接复制成如下,改下邮箱号码就可以用了,铁子,还有文件路径得改成你的对应的

复制代码
<?xml version="1.0" encoding="UTF-8"?>

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

<property name="jmeterPath" value="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3" />  

<!-- 邮箱相关 -->

<property name="mailhost" value="smtp.qq.com" />  

<property name="mailsubject" value="接口自动化测试报告" />  

<property name="mail_port" value="465" />

<property name="username" value="xx@qq.com" />

<property name="password" value="qq邮箱密钥" />

<property name="mailfrom" value="xx@qq.com" />

<property name="mail_to" value="xx@meprestamo.mx"/>

<property name="message" value="HI!,详情请看附件(建议用UC/Edge浏览器打开),请查收~~" />

<tstamp>

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

</tstamp>

<property name="basedirectory" value="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3" />  

<!-- 需要改成自己本地的jmeter目录 -->

<property name="jmeter.home" value="${jmeterPath}" />  

<!-- 报告标题名称 -->

<property name="report.title" value="接口报告" />  

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

<property name="jmeter.result.jtl.dir" value="${basedirectory}\report" />  

<!-- jmeter生成html格式的结果报告的路径-->

<property name="jmeter.result.html.dir" value="${basedirectory}\report" />  

<!-- 生成的报告的前缀-->    

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

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

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



<!-- jmeter生成jtl/html格式的结果报告的路径

<property name="jmeter.result.dir" value="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3\result" />  -->

<!-- 生成的报告的前缀

<property name="ReportName" value="完件接口" />

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

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



<target name="run">

  <antcall target="test"/>  

  <antcall target="report"/>  

  <antcall target="sendEmail"/>

</target>



<target name="test">

    <echo>API_TEST</echo>

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

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

  <!-- 要执行的测试脚本,"*.jmx"指包含此目录下的所有jmeter脚本-->

    <testplans dir="C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3\bin" includes="*.jmx"/>  

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

  </jmeter>

</target>

<!--html报告中时间显示为NAN,原因是ant中确实了两个lib库,xalan-2.7.2.jar和serializer-2.7.2.jar,将这两个库拷贝到ant的lib目录下-->

<path id="xslt.classpath">

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

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

</path>

<!--生成HTML测试报告-->

<target name="report">

    <echo>API_TEST</echo>

    <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"> <!-- 报告模板路径 -->

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

        <param name="titleReport" expression="${report.title}:${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>

 <!--自动发送邮件-->

<target name="sendEmail">

    <echo>发送自动化测试报告</echo>

    <mail

        mailhost="${mailhost}"

        mailport="${mail_port}"

        charset="UTF-8"

        ssl="true"

        subject="${mailsubject}"

        messagemimetype="text/html"

        user="${username}"

        password="${password}"  

        tolist="${mail_to}">

        <from address="${mailfrom}" />

            <attachments>

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

                    <include name="${ReportName}${time}.html" />

                    <include name="collapse.png" />

                    <include name="expand.png" />

                    <!-- -->

                </fileset>

            </attachments>

            <message>${message}</message>

    </mail>

</target>

</project>

修改jmeter.properties文件,与此保持一致

修改完成后,进入C:\Users\86150\Downloads\apache-jmeter-5.4.3\apache-jmeter-5.4.3\extras

输入命令 ant run

二、联合使用(ant+jmeter+jenkins)搭建自动化接口测试框架

1、进入jenkins设置jdk / ant的全局变量;兄弟们一定要设置啊,不然完犊子了

新建一个项目--构建设置如下

就跑起来了

相关推荐
HyperAI超神经2 分钟前
【vLLM 学习】vLLM TPU 分析
开发语言·人工智能·python·学习·大语言模型·vllm·gpu编程
爱笑的眼睛115 分钟前
FastAPI 请求验证:超越 Pydantic 基础,构建企业级验证体系
java·人工智能·python·ai
拉姆哥的小屋5 分钟前
基于深度学习的瞬变电磁法裂缝参数智能反演研究
人工智能·python·深度学习
技术小李...10 分钟前
docker下mysql更改密码后WordPress提示无法连接数据库问题
运维·docker·容器
Focussend智能化营销27 分钟前
2026破局:以营销自动化成熟度Macom模型为鞍,驰骋增长新赛道!
运维·自动化
码界奇点34 分钟前
Python与OpenCV集成海康威视工业相机从基础配置到高级应用的全方位指南
python·数码相机·opencv·相机·python3.11
来两个炸鸡腿36 分钟前
DW动手学大模型应用全栈开发 - (1)大模型应用开发应知必会
python·深度学习·学习·nlp
qq_4182478841 分钟前
恒源云/autodl与pycharm远程连接
ide·人工智能·python·神经网络·机器学习·pycharm·图论
wanhengidc44 分钟前
什么是裸金属服务器
运维·服务器·科技·智能手机·云计算
我命由我123451 小时前
Python Flask 开发 - Flask 快速上手(Flask 最简单的案例、Flask 处理跨域、Flask 基础接口)
服务器·开发语言·后端·python·学习·flask·学习方法