zoukankan      html  css  js  c++  java
  • Ant+JMeter+Jenkins接口自动化平台搭建

    Ant+JMeter+Jenkins接口自动化平台搭建

     

    参考资料::

    https://www.cnblogs.com/dwdw/p/10096136.html

    一、ANT下载安装(鉴于已经安装了JDK1.8,就不讲解如何安装jdk了)

    1.下载

    下载地址:https://archive.apache.org/dist/ant/binaries/

    官网下载地址:https://ant.apache.org/bindownload.cgi

    注意版本信息,下载是要根据jdk版本来下载对应ant

      1.10.2 .zip archive  对应jdk8

      1.9.10 .zip archive  对应jdk7

    我这里使用的是jdk1.8,故可以使用1.10.x版本,这里下载的是apache-ant-1.10.9

    2.安装(解压即可,不需安装具体执行文件)

    下载完成后解压,然后配置ant环境变量

     3. 配置系统变量

      1.新增ANT_HOME变量:D:apache-ant-1.10.9-binapache-ant-1.10.9

      2.path变量添加:%ANT_HOME%in

     path后添加或新增:%ANT_HOME%in,我这里是win10,在path变量里加上变量即可,添加好之后点击确定,确定,确定

     验证是否安装成功:

     打开cmd窗口,输入:ant -v,展示出ant版本号则表示ant安装成功

    二、配置JMeter+Ant

    1.将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录下

     2.创建ant执行目录

    创建如下文件目录:

     jmeter_test(主目录文件)

        result_log(测试报告及日志)

          html(测试报告生成目录)

          jtl(存放jtl文件的目录)

        script(存放jmeter的jmx文件)

        build.xml(核心配置文件)

    创建完成后,目录结构如下图:

     3.在jmeter中完成项目的接口脚本,调试成功,保存到上面的scipt目录。

     将调试好的脚本放入ant执行目录的script目录下,如下图:

     4.创建ant的执行文件build.xml

      build.xml文件内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?xml version="1.0" encoding="UTF-8" ?>
    <project name="jmeter_test" default="all" basedir=".">
        <tstamp>
            <format property="time" pattern="yyyyMMddhhmm" />
        </tstamp>
        <!-- 需要改成自己本地的JMeter目录 -->
        <property name="jmeter.home" value="D:apache-jmeter-5.2.1" />
        <!--JMeter生成jtl格式的结果报告的路径 -->
        <property name="jmeter.result.jtl.dir" value="D:jmeter_test esult_logjtl" />
        <!-- JMeter生成html格式的结果报告的路径 -->
        <property name="jmeter.result.html.dir" value="D:jmeter_test esult_loghtml" />
        <!-- 生成的报告的前缀 -->
        <property name="ReportName" value="接口测试测试报告" />
        <!-- 生成各种文件 -->
        <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
        <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
      
        <!--解决不显示Min/Max统计时间的问题,同时把下面的两个jar文件copy到ant的lib包中 -->
        <path id="xslt.classpath">
            <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.2.jar"/>
            <fileset dir="${jmeter.home}/lib" includes="serializer-2.7.2.jar"/>
        </path>
         
      
        <target name="all">
            <antcall target="test" />
            <antcall target="report" />
           <!--mkdir dir="${dest}"/> -->
        </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:jmeter_testscript" includes="*.jmx" /> <!--如果运行所有脚本,inclues=".jmx" -->
            </jmeter>
        </target>
      
        <target name="report">
            <!--解决不显示时间的问题 -->
            <tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
            <!--选择报告模板 -->
            <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}extrasjmeter-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>

      

     5.修改JMeter参数

     打开JMeter->bin下的jmeter.properties文件,修改配置jmeter.save.saveservice.output_format的值为xml,记得去掉前面的#,然后保存

     三、执行测试

      打开cmd,定位到jmeter_test目录,执行ant命令,提示BUILD SUCCESSFUL则表示执行成功

     

    四、查看执行结果

       打开jmeter_test->result_log->html目录,用浏览器打开html文件

     

      执行结果如下图:

     五、 安装Jenkins

    1.下载jenkins

    下载好jenkins安装包

    jenkins下载地:https://jenkins.io/

    下载完成后如下图,然后双击安装即可,安装过程中有让输入端口号,需要记录好,后续在浏览器中访问jenkins时需要用到

     

     jenkins安装包下载地址:

    链接:https://pan.baidu.com/s/1unk1wiHLw6AfqQ93zCc_kw 
    提取码:tlpi 

    2.安装Jenkins

      双击第一步的msi文件,傻瓜式安装即可(安装时需要输入端口,因8080端口容易被占用,故此处改成8081)

    3.校验是否安装成功

     安装完成后在浏览器输入:localhost:8081,显示如下图,则表示安装成功

    六、集成JMeter和Ant到Jenkins

      1.配置JDK和ANT

     

     

     点击保存后,再进入界面点击应用

    2.配置邮件通知

     

     

     3.新建Item

     

     

     

     

     构建触发器

     

    Build after other projects are built:在其他项目构建完成后才执行构建:指定的项目完成构建后,触发此项目的构建。

    Poll SCM :这是CI 系统中常见的选项。当您选择此选项,您可以指定一个定时作业表达式来定义Jenkins每隔多久检查一下您源代码仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写0,15,30,45 * * * *将使Jenkins每隔15分钟就检查一次您源码仓库的变化。

    Build periodically :此选项仅仅通知Jenkins按指定的频率对项目进行构建,而不管SCM是否有变化。如果想在这个Job中运行一些测试用例的话,它就很有帮助。

     4.增加构建步骤,ant执行命令

     

     

     5.配置构建后发送邮件 

     6.运行Item

     回到Jenkins面板,点击项目后的运行按钮,运行

      

    遇到的问题:

    问题1:提示前言中不允许有内容

    BUILD FAILED
    D:jmeter_testuild.xml:26: The following error occurred while executing this line:
    D:jmeter_testuild.xml:42: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。

    report:
    [xslt] Processing D:jmeter_test esult_logjtl接口测试测试报告202101201144.jtl to D:jmeter_test esult_loghtml接口测试测试报告202101201144.html
    [xslt] Loading stylesheet D:apache-jmeter-5.2.1apache-jmeter-5.2.1extrasjmeter-results-detail-report_21.xsl
    [xslt] : Error! 前言中不允许有内容。
    [xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。
    [xslt] Failed to process D:jmeter_test esult_logjtl接口测试测试报告202101201144.jtl

    BUILD FAILED
    D:jmeter_testuild.xml:26: The following error occurred while executing this line:
    D:jmeter_testuild.xml:42: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:740)

    org.xml.sax.SAXParseException; systemId: file:/D:/jmeter_test/result_log/jtl/%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A202101201144.jtl; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。

     解决办法:修改jmeter.properties文件中jmeter.save.saveservice.output_format的值为xml,并去掉前面的#,保存后重新执行ant命令

    问题2:在Jenkins中执行项目时提示找不到build.xml

     解决办法:修改项目->配置->构建->invoke ant,将Tagets修改为all,点开高级,Build File输入build.xml的路径,然后保存再执行

     

     

     问题3:每天定时执行,如果需要设置成每天早上7点执行一次,则触发器的日程表设置成:0 7 * * *,然后应用保存

  • 相关阅读:
    实习第三十天
    实习第二十九天
    武汉第二十七天
    实习第二十六天
    实习第二十五天
    实习第二十四天
    python基础之核心风格
    1 Python入门
    对计算机的基础概念讨论
    一对多,父对象包含其他对象字段时创建的连接就是一对多连接
  • 原文地址:https://www.cnblogs.com/cpas-3-org/p/14750610.html
Copyright © 2011-2022 走看看