Windows下搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)

article/2025/4/24 6:58:07

引言

为什么要持续集成?

1、减少风险

2、减少假定

3、减少重复过程

4、增强项目的可见性

5、持续集成可以带来两点积极效果:

(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。

(2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。

一、配置jmeter、Ant、jenkins环境

下载Jmeter工具:

Jmeter官网
在这里插入图片描述

<1> 下载jdk:
链接: https://pan.baidu.com/s/1yJX_2P5Y115bJqQKqkpQCg 提取码: 1ps4

<2>配置环境变量:
新建JMETER_HOME: 值为安装jmeter的根目录
在这里插入图片描述
新建JAVA_HOME: 值为JDK安装目录
在这里插入图片描述
新建CLASSPATH: 值为
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JMETER_HOME\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar

在PATH里添加三行:
1)、jdk的安装目录到bin(注意,安装jdk后,会默认写上一个jdk路径,如果和本机安装不对应,需要手动更改)
2)、;%JAVA_HOME%\bin;
3)、%JMETER_HOME%\bin

在这里插入图片描述
<3>验证配置好的jdk环境
打开cmd,输入java -version/javac/java

在这里插入图片描述
<4>验证jmeter

打开cmd,输入jmeter

在这里插入图片描述
弹出jmeter工具既表示配置环境成功

<5> 下载ant工具

方式一:
ant官网下载地址
在这里插入图片描述

方式二 百度网盘获取下载:
链接:https://pan.baidu.com/s/1QitunpZiJB9NA-F18TXxeQ
提取码:d7fn

下载好后安装

<6> 配置ant环境变量

新建ANT_HOME,值为安装ant的绝对路径
在这里插入图片描述

在PATH中加入安装ant 的绝对路径到bin
在这里插入图片描述

在CLASSPATH中加入安装ant的绝对路径到lib,记得用半角;号隔开

在这里插入图片描述
<7> 验证ant环境
打开cmd,输入:ant -version,出现ant版本既配置成功

在这里插入图片描述

<8> 下载jenkins并安装

Jenkins官网:
https://jenkins.io/

Jenkins(百度网盘):
链接地址:https://pan.baidu.com/s/1hWC5vmglb9WNYFTQIlnDcw
提取码: apeg

之后按照提示安装就行,出现选择插件安装方式,一种为默认的一种为手动,这里我们选择默认

在这里插入图片描述
安装好以后,如果有失败的插件,不要紧,因为很正常,我们点击继续就行

会出现配置jenkins的url,这里默认就行(默认的话端口号是8080)

创建用户(账号、密码)、点击开始,按提示走就可以

<9>验证jenkins安装完毕

打开任意一个浏览器,输入localhost:8080(就是一开始的默认jenkins端口号 )

在这里插入图片描述

到此,ant、jmeter、jenkins全部安装好并配完相关环境

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

1、先编写好一个jmeter的脚本,并在jmeter上跑通

这里我就用了一个登录接口,做示例

在这里插入图片描述
通过后导入,并保存为.jmx文件

在这里插入图片描述
在这里插入图片描述
2、在桌面创建好一个空的文件夹,用于ant执行,并在内部创建好三类文件夹(result、scrpit、html)

在这里插入图片描述
result = 存放执行后的jmx文件结果
html = 存放将jmx执行结果进行转换为html格式文件
scrpit = 存放jmx脚本

在这里我们把刚才跑通的jmx文件放到scrpit中

在这里插入图片描述

3、准备一个build.xml脚本,并把他放到我们刚才创建的文件夹的根目录

在这里插入图片描述

需要注意的是,build文件名不可被修改,只允许叫build.xml

<?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="jmeter家目录" resultlog="jtl路径\1.jtl"><!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--><testplans dir="脚本路径" includes="脚本名称" /><property name="jmeter.save.saveservice.output_format" value="xml"/></jmeter></target><path id="xslt.classpath"><fileset dir="jmeter中lib路径" includes="xalan*.jar"/><fileset dir="jmeter中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="jtl路径\1.jtl"out="html路径\1.html"style="jmeter中exaters的路径+jmeter-results-detail-report_21的名称"><param name="titleReport" expression="xxxxx"/> <param name="dateReport" expression="${time}"/>  </xslt>  <!-- jmeter-results-detail-report_21  因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝--> <copy todir="html的路径"><fileset dir="jmeter中exaters的路径"><include name="collapse.png" /><include name="expand.png" /></fileset></copy>			</target><target name="clear1"><!-- 每次执行前先删除清空jtl和html文件夹,释放空间 --><echo message="释放空间,清空jtl和html文件夹中 ..."></echo><delete dir="jtl的路径" /><delete dir="html的路径" /><!-- 删除单个文件-- ><delete file="jtl的路径\1.jtl" /><sleep seconds="2"/>  <echo message="释放完成 ..."></echo></target><target name="sendmail1"><!--把报告进行压缩打包--><jar jarfile="report的路径.rar" basedir="html的路径"/><!--把文件贴到邮件正文--><loadfile property="html" srcFile="html的路径\1.html" encoding="UTF-8"><filterchain><expandproperties /></filterchain></loadfile><mail mailhost="smtp.126.com" mailport="25" subject="邮件标题" messagemimetype="text/html" tolist="norma_bai@163.com"user="norma_bai@163.com" password="bj900420"><from address="norma_bai@163.com"/><!--发送附件--><fileset dir="在jmeter中创建的文件夹"><include name="report.rar"/></fileset><message><![CDATA[ <p>维度电影项目组收:</p><pre> ${html} </pre><p>自定义邮件内文字</p>]]></message></mail></target>
</project>

对这个build内容进行填充

<?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>

我们来跑一下这个build,看能否跑通

打开cmd

cd到我们项目的文件夹中
在这里插入图片描述

然后输入:ant
在这里插入图片描述
接下来就开始执行,但是后来发现到了sendmail方法就止住不动了,并报错:

在这里插入图片描述
经过我网上搜索答案,发现在安装ant的目录下的lib中缺少jar包(activation.jar、commons-lang3-3.8.1.jar、mail.jar),后来又去下载,前前后后浪费了大量的时间,这里把百度链接发给大家,如果出现这类错误,直接下载然后丢到ant目录中的lib目录就可以
链接: https://pan.baidu.com/s/18BWUMrW7ABfBlvU_b3Mppw 提取码: 8jk4
在这里插入图片描述
在这里插入图片描述

继续执行文件

在这里插入图片描述

发现这次成功了,而且邮箱也收到了报告

在这里插入图片描述
正文是这样的:

在这里插入图片描述
并且带有附件(把html报告的目录压缩):
在这里插入图片描述

那么我们就可以进入jenkins构建中了(其实每次不一定非要跑通,只要我们第一次ant成功了,那么后续只需要更改jmx文件就行或者不需要更改,在原先的jmx上重命名替换也是可以的)

build文件下载地址(百度网盘):

链接: https://pan.baidu.com/s/1oW047bCE7DB7wDdDWPp8Lg 提取码: smev

4、jenkins构建任务

打开任意一个浏览器,输入:localhost:8080,进入jenkins中

在这里插入图片描述
突然发现jenkins也启动不了了? 赶忙又去找解决办法,

1)打开Windows的cmd命令窗口,将路径切换到Jenkins安装目录文件下

2)在cmd窗口输入java -jar jenkins.war --httpPort=9000

3)打开浏览器,输入http://localhost:9000/,进入Jenkins界面

转载博客:https://blog.csdn.net/you23hai45/article/details/79644176

弄好了以后再次打开

在这里插入图片描述
这次成功进去了,下面开始在jenkins中配置Ant
在这里插入图片描述
点击系统管理,进入后,下拉,找到全局工具配置

在这里插入图片描述
进入后,新增ant,添加ant安装路径并应用、保存
在这里插入图片描述
如果没有Ant怎么办? 说明你没有安装相关插件,要去官网下载
官网链接:https://updates.jenkins-ci.org/download/plugins/
打开后,在搜索框中输入你要下载的插件名就可以

配置好ant后,点击新建任务,创建一个新项目

在这里插入图片描述

在这里插入图片描述
勾选构建中的定时建构,可以按照规定的时间有规律性的建构,勾选后面的?号可以查看构建的命令规格
在这里插入图片描述
勾选建立中的调用蚂蚁(注意,我用的是谷歌翻译后的,大家可以按照对应的位置去选择)

在这里插入图片描述

点击高级

在这里插入图片描述
填写我们上述创建的文件夹路径(也就是需要持续集成的jmx文件),后面跟上build.xml
在这里插入图片描述

然后应用、保存
在这里插入图片描述

最后构建下

在这里插入图片描述
可以看到,本次构建成功了
在这里插入图片描述
最后看下控制台输出:

在这里插入图片描述
这样下来,自动化接口测试框架就已经搭建好了,可以开展持续集成的工作

有问题博客下方留言


http://chatgpt.dhexx.cn/article/3FWnjIjs.shtml

相关文章

搭建jmeter+Jenkins+ant接口自动化测试

这是本人第一次在Jenkins下搭建接口自动化测试&#xff0c;也是一步一步摸索成形&#xff0c;继而满足基本使用要求。 一、前期准备 1.下载jdk&#xff0c;配置环境变量 export JAVA_HOME/brd_devops/jdk1.8.0_161 export JRE_HOME$JAVA_HOME/jre export CLASS_PATH$JAVA_HOME/…

不写一行代码,搭建Jenkins+Jmeter+Ant接口自动化框架

1、安装jmeter&#xff0c;并确认你的jmeter脚本可以跑通&#xff0c;如图所示&#xff1a; 2、安装ant&#xff0c;从http://ant.apache.org/bindownload.cgi下载并确认ant安装成功 3、将Jmeter下面extras目录里面的ant-jmeter-1.1.1.jar文件复制到ant的lib目录下面&#xff0…

jmeter+ant接口测试之修改build.xml,优化测试报告,展现更详细的信息

目录 初始报告 优化 1、下载优化模板 2、修改build.xml 3、修改jmeter.properties 4、配置user.properties 5、保留最新构建报告 6、报告文件名称带当前日期 初始报告 优化 1、下载优化模板 原来的下载地址用不了了&#xff0c;大家可以另外找下 jmeter-results-shan…

jmeter-11-Ant接口自动化一键运行

前言 重要的事情说三遍&#xff1a;仓库放在最后&#xff01;&#xff01;&#xff01;仓库放在最后&#xff01;&#xff01;&#xff01;仓库放在最后&#xff01;&#xff01;&#xff01; 整体流程图 PPL Jmeter 简介&#xff1a; 整合JmeterAnt 只需要通过简式配置或直…

接口测试很难吗?学会JMeter+Ant接口自动化搭建及实践

JMeter是Apache组织的开放源代码项目&#xff0c;能做接口测试、功能测试和性能测试。它能够对HTTP和FTP服务器进行压力和性能测试&#xff0c;也可以对数据库进行同样的测试&#xff08;通过JDBC&#xff09;&#xff0c;还能以多种形式展现测试结果。 然而&#xff0c;在使用…

JMeter+Jenkins+Ant接口持续化集成

JMeterJenkinsAnt接口持续化集成 一.ant环境配置1.新建test文件夹&#xff08;不能有中文路径&#xff09;test文件夹里新建ant文件夹和TestAuto文件夹在TestAuto文件夹中创建pc文件夹&#xff0c;pc文件夹中创建resultlog文件夹和script文件夹在resultlog中分别创建html和jtl文…

jmeter+ant+jenkins接口自动化测试框架

目录 一、前言 二、安装就jmeter 三、安装jdk 四、安装Ant 五、Ant配置Jmeter&#xff1a;用ant构建命令来调动执行jmeter接口测试&#xff0c;并生成测试报告 六、配置Jenkins&#xff0c;构建持续集成 一、前言 hello呀&#xff01;各位铁子们大家好呀&#xff0…

Jmeter+ant实现接口自动化(三)

1、来看看jmeter生成自带的测试报告 进入jmeter的解压路径下的/bin&#xff0c;执行某个路径下的jmx文件&#xff1a; jmeter -n -t /Users/ss/Desktop/jmeter/参数化.jmx -l result.jtl -e -o WebReport -n: 非GUI模式执行JMeter -t: 执行测试文件所在的位置 -l: 指定生成测…

jmeter+ant接口自动化测试框架

1、安装就jmeter 1、下载安装包&#xff08;过程略过&#xff0c;自己找安装包&#xff0c;随便装在哪个目录下&#xff09; 2、配置环境变量 JMETER_HOME 为 jemter安装路径; CLASSPATH为 %JMETER_HOME%\lib; PATH为%JMETER_HOME%\bin; 3、安装验证 在命令窗口中输入jmet…

Ant安装及环境变量配置+邮件配置+Ant生成接口测试报告

Ant安装 1.将Ant解压到 D:\Atest\apacheAnt下 2.将JMeter所在目录下extras子目录里的ant-jmeter-1.1.1.jar复制到 ant 所在目录lib子目录下&#xff0c;这样Ant运行时才能找到“org.programmerplanet.ant.taskdefs.jmeter.JMeterTask”这个类&#xff0c;从而成功触发JMeter脚…

Jmeter+Ant 接口自动化环境配置指南

一 、Jmeter安装与配置(以下为个人CSDN博客老文章) https://blog.csdn.net/tester_sc/article/details/80746405 注&#xff1a;Jmeter5.0的环境变量配置与4.0或历往老版本有部分小差异&#xff0c;笔者用的Jmeter 5.0 二 、Ant的安装与配置 # Ant下载地址(下载到指定目录后…

SpringBoot整合MyBatis实现分库分表方案

SpringBoot整合MyBatis实现分库分表方案 SpringBoot整合Mybatis实现分库分表查询&#xff0c; 这里不讲解SpringBoot如何整合MyBatis &#xff0c;只讲解SpringBoot整合MyBatis下的实现分库分表的实现方案。 #大概的实现思路 我们知道MyBatis的mapper对象是通过动态代理创建…

一种简单易懂的 MyBatis 分库分表方案

转载自&#xff1a;https://www.toutiao.com/a6667422100141113863/?tt_fromweixin&utm_campaignclient_share&wxshare_count1&timestamp1552387200&appnews_article&utm_sourceweixin&iid65271942423&utm_mediumtoutiao_android&group_id666…

MyBatis分库分表方案

SpringMVC MyBatis分库分表方案 mybatis作为流行的ORM框架&#xff0c;项目实际使用过程中可能会遇到分库分表的场景。mybatis在分表&#xff0c;甚至是同主机下的分库都可以说是完美支持的&#xff0c;只需要将表名或者库名作为动态参数组装sql就能够完成。但是多余分在不同…

数据库分库分表解决方案

数据库分库分表解决方案 前言MySQL表大小限制分表方案垂直分表水平分表按月分表MySQL分区表 分库方案按业务分库按表分库 拆分后的问题及常见的解决方案垂直拆分跨库Join问题全局表数据同步 分布式事务问题MySQL XA事务本地消息表 水平拆分分布式全局唯一ID分片键选择数据扩容跨…

MySQL-分库分表方案

一、业务背景 随着业务量的增长&#xff0c;数据量会随之增长&#xff0c;单机情况下DB服务器会面临存储容量、连接数和处理能力的瓶颈&#xff0c;当数据量达到一定量级时&#xff0c;DDL变更时间变长&#xff0c;影响业务可用性&#xff0c;此时需要考虑分库分表&#xff0c…

最全的MySQL分库分表方案总结

“ 面试中我们经常会碰到的关于分库分表的问题&#xff01;今天就给大家介绍互联网公司常用 MySQL 分库分表方案&#xff01;希望对大家的面试有所帮助&#xff01; 数据库瓶颈 不管是 IO 瓶颈&#xff0c;还是 CPU 瓶颈&#xff0c;最终都会导致数据库的活跃连接数增加&#x…

python mysql分库分表_干货 : 常用MySQL分库分表方案

Python乱炖推荐搜索后浪 动森玩家 送书 数据分析 一、数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞…

php分库分表技术,谈谈关于分库分表的方案

1. 数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1.1. IO瓶颈 第一种:磁盘读IO瓶颈,…