jmeter 持续集成(Jenkins+Ant+Jmeter)

前言:

jmeter 是一个 java 开发的,apache 下的开源工具,常被用于做接口自动化和性能测试工具。因为他开源,入手也非常简单,所以越来越受测试人员青睐。

ant 也是用 Java 开发的,apache 下的一个将代码编译、测试、部署等联系在一起加以自动化的开源工具。深受 java 开发人员欢迎。

Jenkins 是一款开源的 CI/CD 软件,因为功能齐全,插件丰富,支持各种运行方式,使用也很简单,是持续集成方面的领导者。

这样一个组合,就能让测试人员把 jmeter 编写的接口测试脚本,通过 Jenkins 持续集成编辑、测试,查看测试结果报告。

环境配置 

因为,jmeter、ant 都是 java 开发的,所以我们要有 java 运行环境安装 jre 或 jdk 

一、安装与配置 jdk:

1、下载 jdk 或 jre 安装包 

2、安装 jdk 

3、打开系统环境变量,在系统变量中, 

    ①、新增 JAVA_HOME 变量,路径为 jdk 安装路径, 

    ②、再在 PATH 变量值中插入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

    ③、再在 CLASSPATH 变量值中插入%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 

保存关闭环境变量窗口,在 dos 窗口中,输入 java -version, 如果返回了 java 的版 本,说明安装配置成功

二、安装 jmeter:

1、下载 jmeter 包 

2、解压,进入解压路径的 .\bin 文件夹,双击 jmeter.bat文件(windows),即可启动 jmeter,编写接口测试脚本

 

 3.ant 安装与配置

1、下载 ant 包,解压 

2、打开系统环境变量,添加 ANT_HOME 为 ant 路径, 在$PATH 中添加%ANT_HOME%\bin

3、修改 jmeter 的 jmeter.properties jmeter.save.saveservice.output_format=xml 

4、jmeter 的 extras 文件夹中的 ant-jmeter.***.jar 拷贝到 ant 的 lib 文件夹中 用于发 邮件 

5、验证环境配置:运行 cmd,输入ant -version

 

 6、修改 build.xml 文件 进入 jmeter 的 extras 文件夹,找到 build.xml 文件,修改该文件

 

  

 修改后的build文件:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="ant-jmeter-test" default="all" basedir=".">  
 3  <tstamp>
 4         <format property="time" pattern="yyyyMMddhhmm" />
 5     </tstamp>
 6     <property name="encoding" value="UTF-8" />
 7     <!-- 需要改成自己本地的 Jmeter 目录-->  
 8     <property name="jmeter.home" value="D:\Program Files (x86)\apache-jmeter-3.3" />
 9     <property name="report.title" value="接口性能监控"/>
10     <!-- jmeter生成jtl格式的结果报告的路径--> 
11     <property name="jmeter.result.jtl.dir" value="D:\Program Files (x86)\apache-jmeter-3.3\report\jtl" />
12     <!-- jmeter生成html格式的结果报告的路径-->
13     <property name="jmeter.result.html.dir" value="D:\Program Files (x86)\apache-jmeter-3.3\report\html" />
14     <!-- 生成的报告的前缀-->  
15     <property name="ReportName" value="TestReport" />
16     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
17     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
18 
19     <target name="all">
20         <antcall target="test" />
21         <antcall target="report" />
22         <antcall target="mail" />
23     </target>
24     
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:\Program Files (x86)\apache-jmeter-3.3\jmeter_scripts" includes="*.jmx" />
30             
31             <property name="jmeter.save.saveservice.output_format" value="xml"/>
32         </jmeter>
33     </target>
34         
35     <path id="xslt.classpath">
36         <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
37         <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
38     </path>
39 
40 
41     <target name="report">
42         <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
43         <xslt 
44               classpathref="xslt.classpath"
45               force="true"
46               in="${jmeter.result.jtlName}"
47               out="${jmeter.result.htmlName}"
48               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
49 
50               <param name="showData" expression="${show-data}"/>
51 
52               <param name="dateReport" expression="${report.datestamp}"/>
53               <param name="titleReport" expression="${report.title}:${report.datestamp}"/>
54 
55        </xslt>
56 
57                 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 --> 
58         <copy todir="${jmeter.result.html.dir}">
59             <fileset dir="${jmeter.home}/extras">
60                 <include name="collapse.png" />
61                 <include name="expand.png" />
62             </fileset>
63         </copy>
64     </target>
65     <property name="mail_from" value="1054815898@qq.com" />
66     <property name="password" value="grpmkerhjmtbbfae" />
67     <!--mail_to:发送列表,多个之间逗号间隔 -->
68     
69     <property name="mail_to" value="1054815898@qq.com" /> 
70     <property name="mailport" value="465" />
71     <!--邮箱需要开通smtp服务-->
72     <property name="mailhost" value="smtp.qq.com" />
73 
74     <target name="mail">
75         
76         <loadfile property="report" srcFile="${jmeter.result.htmlName}" encoding="${encoding}" />
77         <mail from="1054815898@qq.com" tolist="1054815898@qq.com" mailport="587" mailhost="smtp.qq.com" user="1054815898@qq.com" password="grpmkerhjmtbbfae" subject="TestReport" messagemimetype="text/html">
78             <message>
79                                 本轮构建的结果如下:
80                                 ${report}                               
81                     </message>
82         </mail>
83     <delete file="${jmeter.result.htmlName}" />
84     </target>
85 </project>
build.xmll

注意:QQ邮箱的端口用587,不能使用465

四、安装 jenkins:

2种安装方式:1、war包安装 ;2、下载可执行文件msi安装

war包安装并启动jenkins服务:

--安装jdk1.8以上版本,并配置环境变量(将jdk的bin路径放在系统变量的PATH中,cmd中查看Java版本:java-version)

--将.jenkins放在C:\Users\Administrator目录下

--将jenkins.war包放在.jenkins下

--进入C:\Users\Administrator\.jenkins,在路径地址中输入cmd回车进入命令行

--启动war包:java -jar jenkins.war  

--显示: Jenkins is fully up and running,表示成功。 

浏览器访问:

--打开浏览器输入localhost:8080

  注意:如果开启jenkins服务的时候,出现端口被占用,需要修改端口java -jar jenkins.war --httpPort =5678

--输入账户名、密码  (第一次启动在命令行日志中可查看初始密码)

修改初始密码:可在C:\Users\Administrator\.jenkins\users\admin_3084889522813644434\config.xml文件中修改密码

#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdS 

安装插件并配置Ant

--登 录 jenkins-> 进 入 系 统 管 理 ->pluginManager 管 理 插 件 安 装 AntPlugin 和PerformancePlugin 确认是否已经安装

--系统管理-> GlobalTool Configuration 配置 Ant 路径

 
6、 新建一个任务, 选择 freestyle project
7、 在任务的‘构建’中, 选择 invoke ant ,targets 要填写 build.xml 中的 antcall 的值, 保存应用
 

8.项目构建 

9.邮箱信息

 

 转载:https://www.cnblogs.com/puresoul/p/4737716.html

 
 
 
posted @ 2020-10-29 19:24  尐樣ル~  阅读(215)  评论(0编辑  收藏  举报