使用jmeter+ant+jenkins【2.277.4版本】 搭建接口自动化测试
一、操作环境:
win10、apache-jmeter-5.2.1、apache-ant-1.10.10、jenkins(2.277.4版本).war
二、环境下载:
apache-ant:http://ant.apache.org/bindownload.cgi
- ant安装
下载后将压缩包解决至D盘目录,如图:
配置环境变量:
ANT_HOME:D:\Programs\apache-ant-1.10.10
path:%ANT_HOME%\bin
配置好后,打开cmd输入ant -version ,输出如图,表示成功
- jenkins安装:参考:https://www.cnblogs.com/personblog/p/14809393.html
安装成功后,修改Jmeter配置
修改jmeter的bin目录下的jmeter.properties文件
jmeter.save.saveservice.output_format=xml
三、环境准备好后,开始配置
- 在D盘创建如下目录:jmeter-workspace、jmx、jtl、report、build.xml
jmx:用于jmeter生成的*.jmx文件
jtl:用于存放生成的*.jtl文件
report:用于存放生成的*.html文件
build.xml:用于ant执行的脚本文件
注意:关于build.xml文件,网上有许多从jmeter生成的文件,复制过来进行修改,然后在ant文件放置一份,其实不用那么做,我用那种方式,没有成功
- 完整的build.xml文件,自己使用时,复制一份,只需要修改里面提示的即可,
需要特别注意:
1、将jmeter扩展包[extras]下的 jmeter-results-detail-report_21.xsl、ant-jmeter-1.1.1.jar 两个文件
2、lib包文件下的 mail-1.5.0-b01.jar
一共3个文件都 放入ant安装文件的lib包中
<?xml version="1.0" encoding="utf-8"?> <project name="test" default="all" basedir="."> <tstamp> <format property="time" pattern="MMddhhmm" /> </tstamp> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="D:\Program Files\apache-jmeter-5.2.1" /> <!-- 需要修改第1个:jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="D:\jmeter-workspace\jtl" /> <!-- 需要修改第2个:jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="D:\jmeter-workspace\report" /> <!-- 生成的报告的前缀 --> <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" /> <!-- 电脑地址 --> <property name="ComputerName" value="vincentwong" /> <target name="all"> <antcall target="test" /> <antcall target="report" /> <antcall target="sendEmail" /> </target> <target name="test"> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> <!-- 需要修改第3个:声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 --> <testplans dir="D:\jmeter-workspace\jmx" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <target name="report"> <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm"/> </tstamp> <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <param name="dateReport" expression="${report.datestamp}"> </param> </xslt> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> <copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> <!-- 发送邮件 --> <!-- 需要修改第4个:收件人名字和收件内容 --> <target name="sendEmail"> <mail mailhost="smtp.163.com" mailport="25" user="发件人邮箱" password="发件人设置的授权密钥" ssl="false" subject="xxxx后台接口功能自动化回归测试报告${time}" messagemimetype="text/html"> <from address="发件人邮箱"/> <to address="收件人邮箱1"/> <to address="收件人邮箱2"/> <fileset dir="${jmeter.result.html.dir}"> <include name="${ReportName}${time}.html"/> <include name="collapse.png" /> <include name="expand.png" /> </fileset> <message charset="gb2312"> Dear All:<br /> 这是一封xxxx后台接口功能自动化回归报告的邮件。<br /> 测试报告附在附件,请将图片和报告文件都下载在同文件夹,再使用浏览器打开查看。<br /> 谢谢。<br /> </message> </mail> </target> </project>
- 使用jmeter创建一个测试脚本,放入 D:\jmeter-workspace\jmx 中, 创建方法参考:https://www.cnblogs.com/personblog/p/14794275.html
四、集成jenkins
- 创建一个job,命名jmeter-workspace,如图:
- 源码管理选:无
- 构建触发器【jenkins定时任务】:选择Build periodically,填写定时构建的时间,时间设置参考:https://www.cnblogs.com/personblog/p/14808699.html
- 构建:选择ant,安装好后,在下拉框会有选择提示,target填写构建后,触发的操作,根据build.xml文件中配置填写
新版本Jenkins【2.403.1版本】搭建:https://www.cnblogs.com/personblog/p/17621956.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律