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 * * *,然后应用保存

原文地址:https://www.cnblogs.com/cpas-3-org/p/14750610.html