Jmeter+Jenkins+Ant自动化持续集成环境搭建

一、安装准备

1.JDK:jdk-8u121-windows-x64
2.jmeter工具:apache-jmeter-2.13
3.ANT工具:apache-ant-1.9.7-bin
4.jenkins工具:jenkins-2.32.2

二、软件安装

1.JDK的安装

>双击JDK安装包,选择安装路径(本人是默认C盘路径,C:\Program Files\Java\jdk1.8.0_192\)

1)系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 C:\Program Files\Java\jdk1.8.0_192\)

2)系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
 
3)系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意最前面有一点)
系统变量配置完毕
 
4)检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)若如图所示 显示版本信息 则说明安装和配置成功。
 

 2.jmeter软件安装

>解压apache-jmeter-2.13.zip到D:\01个人软件\jmeter\apache-jmeter-5.0\apache-jmeter-5.0目录下

 

三、安装ANT

>解压apache-ant-1.9.7-bin.zip到D:\06Jenkins\ant\apache-ant-1.9.7目录下

>配置ANT环境变量

1)新建以下环境变量:
ANT_HOME:D:\Progrom Files\apache-ant-1.9.7,此为你的ANT安装路径,设置完成后,点击"确认"来保存。
 
2)在环境变量PATH的最后面添加一下内容:
;%ANT_HOME%\bin 注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除。
 
3)进入cmd命令窗口,在CMD窗口中输入ant -version,敲击回城键,会显示出你安装的ANT版本,如果成功显示,说明你的配置应该是成功了
  

 四、ANT+Jmeter整合

1、将Jmeter所在目录下extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在目录lib子目录之下,ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,之后可以触发Jmeter脚本

2、建了一个目录D:\06Jenkins\JmeterTest\resultLog,目录中分别建立了html和jtl两个文件夹,之后Ant运行之后将jtl中的文件转换成html中

3、在D:\06Jenkins\ant\apache-ant-1.9.7文件中建立一个build.xml文件,build.xml内容如下:

build.xml代码(pan.baidu.com/s/1nv2xVaL),注意要修改红色框框的内容
<?xml version="1.0" encoding="UTF-8"?>  
  
<project name="ant-jmeter-test" default="run" basedir=".">  
      
    <tstamp>  
        <format property="time" pattern="yyyyMMddhhmm" />  
    </tstamp>  
    <property name="basedirectory" value="D:\01个人软件\jmeter\apache-jmeter-5.0\apache-jmeter-5.0\extras" />  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="D:\01个人软件\jmeter\apache-jmeter-5.0\apache-jmeter-5.0" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="D:\06Jenkins\JmeterTest\resultLog\jtl" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="D:\06Jenkins\JmeterTest\resultLog\html" />  
    <!-- Name of test (without .jmx) -->  
    <property name="test" value="Test"/>  
    <!-- 生成的报告的前缀-->    
    <property name="ReportName" value="TestReport" />  
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${time}.jtl" />  
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${time}.html" />  
      
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>  
    </path>  
      
    <target name="run">  
        <antcall target="test" />  
        <antcall target="report" />  
    </target>  
      
    <target name="test">  
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />  
      
    <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">  
             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->  
            <testplans dir="D:\06Jenkins\JmeterTest" includes="*.jmx" />  
        </jmeter>  
    </target>  
          
    <target name="report">  
        <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>  
        <xslt classpathref="xslt.classpath"  
              force="true"  
              in="${jmeter.result.jtlName}"  
              out="${jmeter.result.htmlName}"  
              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">  
              <param name="dateReport" expression="${report.datestamp}"/>  
        </xslt>  
        <copy todir="${jmeter.result.html.dir}">  
            <fileset dir="${jmeter.home}/extras">  
                <include name="collapse.png" />  
                <include name="expand.png" />  
            </fileset>  
        </copy>  
    </target>  
      
</project>
build.xml

4、进入Dos窗口,cd到目标路径下,输入命令ant敲回车,运行结束会有success信息提示,同时生成html测试报告

(通过ant执行jmeter脚本cmd进入目录D:\06Jenkins\ant\apache-ant-1.9.7输入ant回车,执行jmeter脚本)

五、Jenkins的安装

>接下来安装jenkins,解压下载好的Jenkins并安装,然后就是一路next(可以更改自己的安装路径)。

安装完成之后会自动弹出浏览器,其中地址是http://localhost:8080,因为我之前安装了tomcat(默认端口是8080),因此需要更改jenkins文件配置,找到 jenkins安装目录下\Jenkins\jenkins.xml文件,然后更改端口号,我改成的是6060(httpPort=6060 )
然后重新启动jenkins,打开浏览器,输入http://localhost:6060,打开界面会有一个admin用户登录界面,需要输入密码,给出的英文提示是需要到安装目录文件下找到secrets文件夹,然后再initialAdminPassword文件中复制内容到登录界面的密码框中,登录即可。
打开Jenkins,首次进入会默认让你选择安装插件(此处如果完全不清楚自己需要什么插件,建议全选)。插件安装完成之后,需要设置登录用户,按照自己喜好设置即可。

1、cmd进入目录下启动jenkins

D:\06Jenkins\jenkins-2.32.2\install
java -jar jenkins.war --httpPort=9000

2、系统设置->管理插件->可选插件,搜索Performance plugin(Jmeter报告需要),安装此插件

3、因为需要用到ANT和JDK,所以需要在jenkins中添加插件,选择点击“系统管理”,之后在Global Tool Configuration的界面看到ant和jdk选项,然后将自己本地的ANT和JDK地址填写上

 

4、配置、测试邮件1

>在系统设置中找到Jenkins Locaction项填入Jenkins URL和系统管理员邮件地址,系统管理员邮件地址一定要配置,否则发不了邮件通知。因为邮件通知都是由系统管理员的邮箱发出来的

 

 

>按照如图所示设置即可,本处设置的是QQ企业邮箱的服务,其他邮箱按照类似设置即可

>>首先在度娘中找到SMTP服务器地址和端口号及设置QQ邮箱的POP3/SMTP服务

>>在Jenkins中找到邮件通知项,填入SMTP服务器信息及用户名、密码等认证信息

>>测试邮件发送成功之后,Extended E-mail Notification参照上面的设置即可。(注意:必须配置,否则后期项目构建发送邮件将失败)

 

>进入“系统管理”>>>“插件管理”安装邮件通知插件Email Ext Recipients Column PluginEmail Extension Plugin

>然后进入到具体的某一job中配置邮件通知

默认内容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td>(本邮件是程序自动下发的,请勿回复!)</td>
</tr>
<tr>
<td><h2>
<font color="#0000FF">构建结果 - ${BUILD_STATUS}</font>
</h2></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">Changes Since Last
Successful Build:</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
</ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"}
</td>
</tr>
<tr>
<td><b>Test Informations</b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td><pre
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}</pre>
<br /></td>
</tr>
<tr>
<td><b><font color="#0B610B">构建日志 (最后 100行):</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td><textarea cols="80" rows="30" readonly="readonly"
style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
</td>
</tr>
</table>
</body>
</html>
default content

附上参考博文

 
posted @ 2021-04-10 10:56  一加一  阅读(423)  评论(0编辑  收藏  举报