zoukankan      html  css  js  c++  java
  • 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 FilesJavajdk1.8.0_192)

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

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

     2.jmeter软件安装

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

     

    三、安装ANT

    >解压apache-ant-1.9.7-bin.zip到D:6Jenkinsantapache-ant-1.9.7目录下

    >配置ANT环境变量

    1)新建以下环境变量:
    ANT_HOME:D:Progrom Filesapache-ant-1.9.7,此为你的ANT安装路径,设置完成后,点击"确认"来保存。
     
    2)在环境变量PATH的最后面添加一下内容:
    ;%ANT_HOME%in 注意前面的分号,如果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:6JenkinsJmeterTest esultLog,目录中分别建立了html和jtl两个文件夹,之后Ant运行之后将jtl中的文件转换成html中

    3、在D:6Jenkinsantapache-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:1个人软件jmeterapache-jmeter-5.0apache-jmeter-5.0extras" />  
        <!-- 需要改成自己本地的 Jmeter 目录-->    
        <property name="jmeter.home" value="D:1个人软件jmeterapache-jmeter-5.0apache-jmeter-5.0" />  
        <!-- jmeter生成jtl格式的结果报告的路径-->   
        <property name="jmeter.result.jtl.dir" value="D:6JenkinsJmeterTest
    esultLogjtl" />  
        <!-- jmeter生成html格式的结果报告的路径-->  
        <property name="jmeter.result.html.dir" value="D:6JenkinsJmeterTest
    esultLoghtml" />  
        <!-- 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:6JenkinsJmeterTest" 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:6Jenkinsantapache-ant-1.9.7输入ant回车,执行jmeter脚本)

    五、Jenkins的安装

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

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

    1、cmd进入目录下启动jenkins

    D:6Jenkinsjenkins-2.32.2install
    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

    附上参考博文

     
  • 相关阅读:
    H公司以及我的目标
    新的起点
    apache服务器配置Net的实践
    会计简要学习
    二、MongoDB的简单增删改查
    一、MongoDB安装与启动
    KnockOutJs初次体验
    DevExpress 全体窗口换肤的功能 winform
    DevExporess 右键菜单的实现
    使用gridControl gridview总结
  • 原文地址:https://www.cnblogs.com/Chilam007/p/14639669.html
Copyright © 2011-2022 走看看