利用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文件

    配置ant的编译文件build.xml(新建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>
View Code
复制代码

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分钟发一次给对应邮箱

posted @   徐丽丽  阅读(149)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示