• Jenkins+Jmeter+Ant自动化集成及邮件正文以html输出


    一、工具的安装与环境变量配置

    1、依次安装Jenkins+Jmeter+Ant,具体安装步骤,此文不再详述

    2、配置Jmeter&ant环境变量

        Jmeter变量:

    验证是否配置成功:cmd窗口非jmeter安装目录,输入jmeter.bat可打开jmeter程序,说明配置成功

    ant变量:

    验证是否配置成功,cmd窗口输入ant -version,返回如图所示,表明配置成功

     二、编写Jmeter脚本和build.xml文件

    1、编写Jmeter脚本

    2、编写build.xml文件,内如如下,

    ps:需要下载依赖jar包:xalan*.jar,serializer*.jar并复制到ant安装目录下的lib目录下;下载jmeter.results.shanhe.me.xsl文件并复制到jmeter的extras目录下,优化测试报告显示

     1 <?xml version="1.0" encoding="UTF-8"?>  
     2   
     3 <project name="zhtx_chaoshi" default="report" basedir="."> 
     4     <tstamp>  
     5         <!--format property="time" pattern="yyyyMMddkkmm" /--> 
     6         <format property="date" pattern="yyyy/MM/dd kk:mm:ss"/>
     7   <!--kk是24小时制,KK是12小时制-->        
     8     </tstamp> 
     9     <!-- 需要改成自己本地的 Jmeter 目录-->  
    10     <property name="jmeter.home" value="D:/apache-jmeter-3.1" />
    11     <property name="report.title" value="Jmeter_zhtxAPITestReport"/>    
    12     <!-- jmeter生成jtl格式的结果报告的路径-->  
    13     <property name="jmeter.result.jtl.dir" value="D:/Jenkins/workspace/超市自动下单/jtl" />  
    14     <!-- jmeter生成html格式的结果报告的路径-->  
    15     <property name="jmeter.result.html.dir" value="D:/Jenkins/workspace/超市自动下单/html" />  
    16     <!-- 生成的报告的前缀-->
    17     <!-- 生成的报告的名称-->     
    18     <property name="ReportName" value="DetailsReport" />
    19     <property name="ReportName2" value="SummaryReport" />
    20     <!--jtl的value值是D:JenkinsjmxReportjtlTestReport+yyyyMMddhhmm.jtl-->    
    21     <!--html的value值是D:JenkinsjmxReporthtmlTestReport+yyyyMMddhhmm.html-->    
    22     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" />  
    23     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}.html" />
    24     <property name="jmeter.result.htmlName2" value="${jmeter.result.html.dir}/${ReportName2}.html" />
    25 
    26     
    27         <!-- 工程引用包 -->    
    28         <property name="lib.home" value="D:/apache-jmeter-3.1/xjar"/>
    29         <!--jmx文件存放位置-->
    30         <property name="jmxFile" value="D:/apache-jmeter-3.1/jmx"/>
    31          
    32     <!--项目初始化设置-->
    33       <target name="init" description="init" >
    34       <!--删除jtl文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录-->
    35          <delete verbose="true" includeemptydirs="true" >
    36             <fileset dir="${jmeter.result.jtl.dir}" >
    37                   <include name="**/*" />
    38             </fileset>
    39          </delete>
    40          <!--删除html文件夹下生成的所有文件及文件夹包括空目录,但不删除根目录-->
    41          <delete>
    42             <fileset dir="${jmeter.result.html.dir}">
    43                  <include name="**/*"/>
    44             </fileset>
    45          </delete>
    46          <!--<delete dir="${classes.home}"/>
    47          <mkdir dir="${classes.home}"/>-->
    48       </target>
    49       
    50     <target name="test" depends="init">  
    51         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />  
    52         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">  
    53             <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->  
    54             <testplans dir="${jmxFile}" includes="超市订单online.jmx" />
    55             <!--声明生成的jtl文件是xml格式,否则会报错 -->
    56             <property name="jmeter.save.saveservice.output_format" value="xml"/>            
    57         </jmeter>  
    58     </target>  
    59     <path id="xslt.classpath">
    60         <fileset dir="${lib.home}" includes="xalan*.jar"/>     
    61         <fileset dir="${lib.home}" includes="serializer*.jar"/>
    62     </path>
    63     
    64     <target name="report" depends="test" >   
    65     
    66         <xslt 
    67               classpathref="xslt.classpath"
    68               force="true"
    69               in="${jmeter.result.jtlName}"  
    70               out="${jmeter.result.htmlName}"  
    71               style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
    72               <param name="titleReport" expression="${report.title}"/>
    73               <param name="dateReport" expression="${date}"/>              
    74          </xslt>
    75          <xslt 
    76               classpathref="xslt.classpath"
    77               force="true"
    78               in="${jmeter.result.jtlName}"  
    79               out="${jmeter.result.htmlName2}"
    80               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
    81               <param name="titleReport" expression="${report.title}"/>
    82               <param name="dateReport" expression="${date}"/>              
    83          </xslt>
    84         <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
    85         <copy todir="${jmeter.result.html.dir}">  
    86             <fileset dir="${jmeter.home}/extras">  
    87                 <include name="collapse.png" />  
    88                 <include name="expand.png" />  
    89             </fileset>  
    90         </copy>  
    91     </target>
    92     
    93       
    94        
    95 </project>  
    build.xml

     三、编辑配置文件

    1、ant-jmeter-1.1.1.jar复制到jmeter的extras目录下

    2、修改D:apache-jmeter-3.1in下的jmeter.properties属性文件

    # assertion_results_failure_message only affects CSV output
    jmeter.save.saveservice.assertion_results_failure_message=true
    #
    # legitimate values: none, first, all
    #jmeter.save.saveservice.assertion_results=none
    #
    jmeter.save.saveservice.data_type=true
    jmeter.save.saveservice.label=true
    jmeter.save.saveservice.response_code=true
    #response_data is not currently supported for CSV output
    jmeter.save.saveservice.response_data=true
    #Save ResponseData for failed samples
    jmeter.save.saveservice.response_data.on_error=false
    jmeter.save.saveservice.response_message=true
    jmeter.save.saveservice.successful=true
    jmeter.save.saveservice.thread_name=true
    jmeter.save.saveservice.time=true
    jmeter.save.saveservice.subresults=true
    #jmeter.save.saveservice.assertions=true
    jmeter.save.saveservice.latency=true
    jmeter.save.saveservice.connect_time=true
    jmeter.save.saveservice.samplerData=true
    jmeter.save.saveservice.responseHeaders=false
    jmeter.save.saveservice.requestHeaders=true
    jmeter.save.saveservice.encoding=false
    jmeter.save.saveservice.bytes=true
    # Only available with HttpClient4
    jmeter.save.saveservice.sent_bytes=true
    jmeter.save.saveservice.url=false
    jmeter.save.saveservice.filename=false
    jmeter.save.saveservice.hostname=true
    jmeter.save.saveservice.thread_counts=true
    jmeter.save.saveservice.sample_count=false
    jmeter.save.saveservice.idle_time=true
    jmeter.properties

    3、打开jenkins,安装所需插件并创建job

     3.1、安装所需插件Email Extension Plugin,发送邮件

            方法一:进入系统管理-管理插件--可选插件,安装

    方法二:官网下载插件,然后进入进入系统管理-管理插件--高级设置,选择上传已下载好的插件

    3.2 创建job,如图所示,job名字自定义

    配置job

    配置Editable Email Notification

    设置发送邮件触发器

    进入jenkins系统设置下,编辑邮件配置,如图所示

    邮件正文内容如下:

    <!DOCTYPE html>  
    <html>  
    <head>  
    <meta charset="UTF-8">  
    <title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>  
    </head>  
      
    <body size="4" leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
        offset="0">  
        <table width="95%" cellpadding="0" cellspacing="0"  
            style="font-size: 20pt; 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="3" 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 >变更集:${JELLY_SCRIPT,template="html"}</a></li>  
                        <li>SummaryReport:${FILE, path="D:/Jenkins/workspace/超市自动下单/html/SummaryReport.html"}
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></a></li>  
                         
                    </ul>
                        <hr size="3" width="100%" align="center" />
                </td>  
            </tr>  
           
             
        </table>  
    </body>  
    </html>
    邮件正文内容

     到此,环境搭建成功,接下来构建查看结果显示

    四、构建

    1、选择创建的job,选择构建

    查看构建日志

    构建成功,自动发送测试报告邮件,截图如下

  • 相关阅读:
    接口XMPPConnection
    Smack 4.3.4 API
    Tigase XMPP Server
    Openfire Meetings插件是一个包含各种Jitsi项目(如VideoBridge和Meet)的实现
    华为方舟编译器 下载 和 LiteOS Studio Setup 2019-04-16.exe SDK下载
    华为 鸿蒙系统(HarmonyOS)
    C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线
    C#.NET常见问题(FAQ)-如何声明list的多维数组
    C#.NET常见问题(FAQ)-如何设置控件水平对齐,垂直对齐
    C#.NET常见问题(FAQ)-如何修改Form不能修改窗体大小
  • 原文地址:https://www.cnblogs.com/chenchen-tester/p/6930200.html
Copyright © 2020-2023  润新知