Windows下搭建ant+jenkins+jmeter自动化接口测试框架
引言
为什么要持续集成?
1、减少风险
2、减少假定
3、减少重复过程
4、增强项目的可见性
5、持续集成可以带来两点积极效果:
(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。
(2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。
一、环境搭建(不细讲,自行百度)
1、配置jdk环境
2、配置jmeter环境
3、配置ant环境
二、联合使用(ant+jmeter+jenkins)搭建接口自动化测试框架
1、先编写好一个jmeter的脚本,并在jmeter上跑通
2、导出jmx脚本
3、在桌面创建好一个空的文件夹,用于ant执行,并在内部创建好三类文件夹(result、scrpit、html)
result = 存放执行后的jmx文件结果
html = 存放将jmx执行结果进行转换为html格式文件
scrpit = 存放jmx脚本
4、在这里我们把刚才跑通的jmx文件放到scrpit中
5、准备一个build.xml脚本,并把他放到我们刚才创建的文件夹的根目录
bulid.xml内容如下(需要自行修改jmeter路径,上述所建的文件夹路径):
<?xml version="1.0" encoding="GBK"?> <project name="ant-jmeter-test" default="run" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <target name="run"> <antcall target="clear1" /> <antcall target="test1" /> <antcall target="report1" /> <antcall target="sendmail1" /> </target> <target name="test1"> <echo message="开始执行jmeter脚本..."></echo> <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> <jmeter jmeterhome="E:\apache-jmeter-5.2.1" resultlog="C:\Users\Administrator\Desktop\ant\result\1.jtl"> <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--> <testplans dir="C:\Users\Administrator\Desktop\ant\script" includes="*.jmx" /> <property name="jmeter.save.saveservice.output_format" value="xml"/> </jmeter> </target> <path id="xslt.classpath"> <fileset dir="E:\apache-jmeter-5.2.1\lib" includes="xalan*.jar"/> <fileset dir="E:\apache-jmeter-5.2.1\lib" includes="serializer*.jar"/> </path> <target name="report1"> <echo message="开始转换执行结果..."></echo> <tstamp> <format property="time" pattern="yyyy/MM/dd HH:mm" /> </tstamp> <xslt classpathref="xslt.classpath" force="true" in="C:\Users\Administrator\Desktop\ant\result\1.jtl" out="C:\Users\Administrator\Desktop\ant\html\1.html" style="E:\apache-jmeter-5.2.1\extras\jmeter-results-detail-report_21.xsl"> <param name="titleReport" expression="测试报告"/> <param name="dateReport" expression="${time}"/> </xslt> <!-- jmeter-results-detail-report_21 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝--> <copy todir="C:\Users\Administrator\Desktop\ant\html"> <fileset dir="E:\apache-jmeter-5.2.1\extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> <target name="clear1"> <!-- 每次执行前先删除清空jtl和html文件夹,释放空间 --> <echo message="释放空间,清空jtl和html文件夹中 ..."></echo> <delete dir="C:\Users\Administrator\Desktop\ant\result" /> <delete dir="C:\Users\Administrator\Desktop\ant\html" /> <!-- 删除单个文件--> <delete file="C:\Users\Administrator\Desktop\ant\1.rar" /> <sleep seconds="2"/> <echo message="释放完成 ..."></echo> </target> <target name="sendmail1"> <!--把报告进行压缩打包--> <jar jarfile="C:\Users\Administrator\Desktop\ant\1.rar" basedir="C:\Users\Administrator\Desktop\ant\html"/> <!--把文件贴到邮件正文--> <loadfile property="html" srcFile="C:\Users\Administrator\Desktop\ant\html\1.html" encoding="UTF-8"> <filterchain> <expandproperties /> </filterchain> </loadfile> <mail mailhost="smtp.qq.com" mailport="25" subject="测试结果" messagemimetype="text/html" tolist="1429622029@qq.com" user="1429622029@qq.com" password="邮箱授权码"> <from address="1429622029@qq.com"/> <!--发送附件--> <fileset dir="C:\Users\Administrator\Desktop\ant"> <include name="1.rar"/> </fileset> <message> <![CDATA[ <p>项目组收:</p><pre> ${html} </pre><p>自定义邮件内文字</p> ]]> </message> </mail> </target> </project>
6、打开cmd,cd到文件夹目录下,输入ant
接下来就开始执行,但是后来发现到了sendmail方法就止住不动了,并报错:
原因:缺少jar包(activation.jar、commons-lang3-3.8.1.jar、mail.jar),邮件发送不成功
解决:链接:https://pan.baidu.com/s/1OLrSB_7f09cq7nTOlwNGTw 提取码:7jgv ,直接下载然后丢到ant目录中的lib目录就可以
7、jenins配置ant插件
1)系统管理-全局工具配置-新增ant-添加ant安装路径
如果没有Ant怎么办? 说明你没有安装相关插件,要去官网下载
官网链接:https://updates.jenkins-ci.org/download/plugins/
打开后,在搜索框中输入你要下载的插件名就可以
2)配置好ant后,点击新建任务,创建一个新项目,进入自己配置的项目->配置->构建->invoke ant,将ant版本设置为第二步中设定的ant名称
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现