利用Jmeter+ant+Jenkins 搭建 接口测试 持续集成平台
1. JMeter: 编写测试脚本
2. ant: 执行测试脚本,并生成测试报告
3. Jenkins: 持续集成平台可以实现脚本的定时运行、邮件发送、测试报告展示等
JMeter - 中编写测试脚本
ANT - 执行脚本并生成试报告
测试脚本运行后生成的是JTL(xml)格式的文件,这些文件不具备可读性,因此我们要把他转化为可以阅读的html格式报告。
转化的步骤如下:
1、 安装ant工具
Ant是一个功能强大的打包编译工具。我们使用他的目的是将JTL(xml)格式文件转化为html格式的文件
1) 下载安装ant并配置其系统变量
2) 配置库文件:将jmeter 所在 extras目录下 的 ant-jmeter-1.1.1.jar 文件 copy 到 ant 所在lib 目录下
2、配置jmeter.properties(jmeter 所在 bin目录下)
配置jmeter报告输出格式为xml在jmeter根目录下jmeter.properties文件中修改jmeter.save.saveservice.output_format=csv 为 jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#
3. 配置ant的build.xml文件


1 <?xml version="1.0" encoding="utf-8"?> 2 <project name="JmeterTest" default="run" basedir="."> 3 <tstamp> 4 <format property="time" pattern="yyyyMMddhhmm" /> 5 </tstamp> 6 <!-- 需要改成自己本地的 Jmeter 目录--> 7 <property name="jmeter.home" value="D:\install\apache-jmeter-5.4.1" /> 8 <!-- jmeter生成jtl格式的结果报告的路径--> 9 <property name="jmeter.result.jtl.dir" value="D:\jenkins\workspace\report\jtl" /> 10 <!-- jmeter生成html格式的结果报告的路径--> 11 <property name="jmeter.result.html.dir" value="D:\jenkins\workspace\report\html" /> 12 <!-- 生成的报告的前缀 --> 13 <property name="ReportName" value="TestReport" /> 14 <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> 15 <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /> 16 <!-- 接收测试报告的邮箱 --> 17 <property name="mail_to" value="1244973114@qq.com" /> 18 <!-- 电脑地址 --> 19 <property name="ComputerName" value="jkqsh-l0285" /> 20 <target name="run"> 21 <antcall target="test" /> 22 <antcall target="report" /> 23 <antcall target="mail"/> <!--增加的--> 24 </target> 25 <target name="test"> 26 <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 27 <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 28 <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本 --> 29 <testplans dir="D:\jenkins\workspace\jmeterjiekouTest" includes="*.jmx" /> 30 <!--<property name="jmeter.save.saveservice.output_format" value="xml"/>--><!--增加的--> 31 </jmeter> 32 </target> 33 <target name="report"> 34 <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp> 35 <xslt 36 classpathref="xslt.classpath" 37 force="true" 38 in="${jmeter.result.jtlName}" 39 out="${jmeter.result.htmlName}" 40 style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" > 41 <param name="dateReport" expression="${report.datestamp}"/><!--增加的--> 42 </xslt> 43 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 44 <copy todir="${jmeter.result.html.dir}"> 45 <fileset dir="${jmeter.home}/extras"> 46 <include name="collapse.png" /> 47 <include name="expand.png" /> 48 </fileset> 49 </copy> 50 </target> 51 <path id="xslt.classpath"> 52 <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/> 53 <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/> 54 </path> 55 <!--将控制台输出到文本中--> 56 <record name="${jmeter.result.html.dir}/${ReportName}${time}.txt" loglevel="info" append="no" action="start"/><!--增加的--> 57 <target name="mail"> 58 59 <!--读取输出的控制台日志文件并写入邮件正文--> 60 <loadfile property="email_content" srcFile="${jmeter.result.html.dir}/${ReportName}${time}.txt" encoding="UTF-8"/> 61 62 <loadfile property="output" srcFile="${jmeter.result.html.dir}/${ReportName}${time}.html" encoding="UTF-8"/> 63 64 <!-- 此处配置SMTP服务器 POP3授权码 发送邮箱地址 端口 发送邮箱主题--> 65 <mail tolist="${mail_to}" mailhost="smtp.qq.com" mailport="587" 66 user="具体的qq@qq.com" password="qxsuxxofuwsnjcih" subject="jmeter 测试报告${ReportName}${time}" messagemimetype="text/html"> 67 68 <from address="具体的qq@qq.com" /> 69 <fileset dir="${jmeter.result.html.dir}"> 70 <include name="${ReportName}${time}.html"/> 71 </fileset> 72 <message> 73 74 XXX项目接口自动化测试报告 75 76 ${ReportName}${time} 77 78 ${output} 79 80 </message> 81 </mail> 82 </target> 83 </project>
4. 验证配置,执行构建测试,生成测试报告
在build.xml的文件目录下,在路径框下输入cmd, 然后在命令行里输入 ant run 命令
备注:此时已经配置了报告发送邮箱的功能,需要将javax.mail包放到ant文件的lib包下
下载地址:https://java.net/projects/javamail/pages/Home
Jenkins - 持续集成平台(部署到持续集成平台可以实现脚本的定时运行,这是接口、性能测试的核心)
1.下载Jenkins并且安装
①Jenkins官网地址:https://jenkins.io/
②之后按照提示安装就行,出现选择插件安装方式,一种为默认的一种为手动,这里我们选择默认
③会出现配置jenkins的url,这里默认就行(默认的话端口号是8080)
④ 创建用户(账号、密码)、点击开始,按提示走就可以
⑤验证jenkins安装完毕 打开任意一个浏览器,输入localhost:8080(就是一开始的默认jenkins端口号 )
联合使用(Jmeter+ant+Jenkins)搭建自动化接口测试框架
创建一个任务流程
配置触发器15分钟执行一次项目
例如:
# 每隔15分钟。(或许:07, :22, :37, :52)
H/15 * * * *
# 每前半小时中每隔10分钟。 (3次, 或许:04, :14, :24)
H(0-29)/10 * * * *
# 每个工作日从早上9点45分开始到下午3点45分结束这段时间内每间隔2小时的45分钟那一刻。
45 9-16/2 * * 1-5
#每个工作日从早上9点到下午5点这段时间内每间隔2小时之间的某刻。(或许在上午10:38, 下午12:38, 下午2:38 , 下午4:38)
H H(9-16)/2 * * 1-5
#每月(除了12月)从1号到15号这段时间内某刻。
H H 1,15 1-11 *
用ant执行脚本,并且生成测试报告
配置邮箱的管理员邮箱和要发送邮箱信息
执行脚本,查看控制台信息
生成的报告5分钟发一次给对应邮箱
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix