当前位置: 首页 > 测试知识 > 别再手动点来点去了!Jenkins + JMeter + Ant,3步搞定API接口自动化测试
别再手动点来点去了!Jenkins + JMeter + Ant,3步搞定API接口自动化测试
2026-04-28 作者cwb 浏览次数16

实际上这不是3步,而是3层-每一层都在帮测试脚本升级:从一个人用鼠标点来点去,到脱离手动、批量执行,再到Jenkins自动调度全自动运行。


准备环境

所有工具都依赖Java环境(JDK 1.8+兼容性最好,建议选1.8版本)。


分别安装并配置环境变量:

JMeter:设置JMETER_HOME为安装途径,在PATH中添加%JMETER_HOME%\bin

Ant:设置ANT_HOME为解压途径,在PATH中添加%ANT_HOME%\bin

测试是否成功安装:命令行分别输入jmeter -v和ant -version,能看到版本信息即配置成功


打通JMeter和Ant

Ant本身不知道JMeter的存在需要帮它们牵线搭桥:

拷贝jar包:将JMeter安装目录/extras/ant-jmeter-1.1.1.jar复制到Ant安装目录/lib/下,这样Ant运行时才能找到触发JMeter脚本所需的JMeterTask类

修改配置:打开JMeter安装目录/bin/jmeter.properties,将jmeter.save.saveservice.output_format=csv改为xml并去掉前面的#注释符,保证测试结果以.xml格式保存

避坑:配置完必须重新打开命令行终端测试,环境变量才能生效。否则Ant运行时可能会因找不到jmeter而导致创建失败。


用build.xml把JMeter脚本管起来

build.xml是Ant的配置文件,用它定义执行什么JMX脚本、结果放哪儿、怎么生成报告等任务。



编写build.xml配置


xml

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

<project name="Jmeter-Ant-Test" default="all" basedir=".">

    <!-- 时间戳:保证每次生成的报告文件名唯一 -->

    <tstamp>

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

    </tstamp>


    <!-- 指定JMeter安装途径(必须和你的实际途径一致)[reference:4] -->

    <property name="jmeter.home" value="C:\Program Files\apache-jmeter-5.5" />


    <!-- 定义结果和报告的存放途径 -->

    <property name="jmeter.result.jtl.dir" value="D:\JmeterTest\result\jtl" />

    <property name="jmeter.result.html.dir" value="D:\JmeterTest\result\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}${time}.html" />


    <!-- 批量执行所有测试脚本 -->

    <target name="all">

        <antcall target="test" />

        <antcall target="report" />

    </target>


    <!-- 执行JMeter测试脚本(这一步把JMX脚本跑起来) -->

    <target name="test">

        <!-- 注册JMeter Task,让Ant认识JMeter[reference:5] -->

        <taskdef name="jmeter" 

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

        <jmeter jmeterhome="${jmeter.home}" 

                resultlog="${jmeter.result.jtlName}">

            <!-- 批量执行script目录下所有.jmx脚本 -->

            <testplans dir="D:\JmeterTest\script" includes="*.jmx" />

        </jmeter>

    </target>


    <!-- 将.jtl原始文件转换为.html报告(便于人看) -->

    <target name="report">

        <xslt in="${jmeter.result.jtlName}" 

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

              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />

    </target>

</project>


以上配置是基础的批量执行和报告生成流程。


批量执行和报告生成

批量执行:<testplans dir="D:\JmeterTest\script" includes="*.jmx" />一行代码,Ant就会自动跑完script目录下所有.jmx脚本,特别适合回归测试场景-写完多个用例,一次命令全部跑完

报告美化:默认的报告样式比较简陋,可以下载jmeter.results.shanhe.me.xsl(即 shanhe(山河)美化模板)替换上述build.xml中的style属性,获得带有详细图表、请求明细和JSON格式化展示的美化版报告

发送邮件:在build.xml中添加<mail>任务,Ant执行完毕后自动将报告以邮件形式发送给相关成员

参数动态传递:如果要在执行时动态修改线程数、循环次数等参数,在JMX脚本中使用${__P(threads,1)}引用参数,Ant中通过<jmeter>标签内的<property>子标签传递-Jthreads=10即可

Jenkins配置让测试任务每天自己跑

安装必要的Jenkins插件

登录Jenkins → 系统管理 → 插件管理,搜索并安装:

Performance Plugin:分析JMeter的.jtl结果文件,生成趋势图、响应时间、错误率等可视化报表

HTML Publisher Plugin:在Jenkins创建页面中直接展示美化后的HTML报告(如下图)

Email Extension Plugin(可选):邮件通知,当测试失败或性能标准异常时自动告警

Git Plugin(可选):从Git仓库拉取测试脚本和build.xml,便于团队协作


工具配置

Jenkins需要知道Ant安装在哪里。进入系统管理 → Global Tool Configuration(全局工具配置),找到Ant区域,点击新增Ant,输入一个名称(如Ant-1.9.7),并指定Ant安装途径,Jenkins后续创建时会自动识别。


新建任务并配置创建触发

在Jenkins仪表板点击新建任务,输入任务名称,选择Freestyle project

源码管理:如果使用Git版本控制,填入仓库地址和认证信息

创建触发器:设置定时任务(如每天早上8点执行)或Git Webhook触发(代码提交后自动测试)

创建步骤:添加创建步骤,选择Invoke Ant(调用Ant)。在Targets输入框填写all(即在build.xml中default="all"对应的target组合)。高级选项中配置Ant Version—选择在全局工具配置中设置的Ant版本(如Ant-1.9.7)


Post-build Actions创建后操作:

添加Publish HTML Report(发布HTML报告):HTML目录指向你build.xml中定义的结果存放目录

添加Publish Performance test result report:设置.jtl文件途径,Jenkins会自动生成性能趋势图表

可选:添加Editable Email Notification配置邮件模板,测试完成后自动发送报告

创建前建议在创建步骤中添加执行Shell/Windows批处理命令,用于清理上次测试遗留的旧报告,避免历史数据干扰。


整个流程跑通后就完成了三层自动化升级


第一层:JMeter,编写接口测试脚本(.jmx文件),用手动点的方式录制脚本

第二层:Ant,通过build.xml批量执行JMX + 生成HTML报告,把手动点变成敲一行ant命令

第三层:Jenkins,定时/按需调度Ant来执行测试,把人敲命令变成机器自动跑


当团队规模扩大、测试脚本增多时,可进一步将build.xml和脚本提交至Git仓库统一管理,创建前Jenkins自动拉取最新代码。同时在Post-build阶段引入DingTalk Plugin,创建完成后将成功率、耗时等标准直接推送至群,实现更及时的测试反馈。


文章标签: API自动化测试 API测试 API接口测试 测试工具
咨询软件测试