当前位置: 澳门新濠3559 > 操作系统 > 正文

配置ant环境变量,1.ant下载及环境变量

时间:2019-12-08 05:50来源:操作系统
Docker部署接口自动化持续集成环境第三步,容器化Jmeter与ant! 1,下载jenkins 前言:本篇主要讲ant执行测试用例并生成测试报告,至于jmeter脚本本篇文章不多说,不懂的小伙伴可查看我的

Docker部署接口自动化持续集成环境第三步,容器化Jmeter与ant!

1,下载jenkins

前言:本篇主要讲ant执行测试用例并生成测试报告,至于jmeter脚本本篇文章不多说,不懂的小伙伴可查看我的上篇文章:jmeter环境配置、使用以及参数化之CSV Data Set Config

接上文:Docker_容器化jenkins**

澳门新濠3559 1

 

为了整合接口自动化的持续集成工具,我将jmeter与ant都部署在了Jenkins容器中,并配置了build.xml

2,修改jenkins.xml配置文件的端口,防止端口冲突(默认8080)

1.ant下载及环境变量,这里不多说,不懂的小伙伴可自行百度搜索ant下载以及环境变量

  一:ubuntu部署jdk

澳门新濠3559 2

2.将jmeter所在的目录下extras子目录里的ant-jmeter-1.1.1.jar复制到ant所在的lib目录下。如下图

  1:先下载jdk-8u74-linux-x64.tar.gz,上传到服务器,这里上传文件用到了ubuntu 下的 lrzsz。

3,重启Jenkins服务器

澳门新濠3559 3

   ubuntu下直接执行** sudo apt-get install lrzsz **

4,下载ant

这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本

   lrzsz 拆分为两个命令,sz和rz

5,配置ant环境变量

3.jmeter路径下新建文件夹,创建一个build.xml,配置build.xml脚本(已配置好的build.xml脚本,读者可根据下方提示修改为自己的路径,即可)

   sz命令发送文件到本地:

澳门新濠3559 4

<?xml version="1.0" encoding="utf-8"?>
<project name="xpms" default="all" basedir=".">
    
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="C:UserswuweihaoDownloadsapache-jmeter-3.2" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="C:UserswuweihaoDownloadsapache-jmeter-3.2demoresult_logjtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="C:UserswuweihaoDownloadsapache-jmeter-3.2demoresult_loghtml" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="测试结果" />
    <!-- 生成各种文件-->
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}_${time}.jtl" />
    <!--<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" />
配置ant环境变量,1.ant下载及环境变量。    <!-- <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />-->

   # sz filename

6,录制jmeter脚本(脚本的录制可以使用badboy)

 
    <!-- 电脑地址 -->
<!--    <property name="ComputerName" value="xiaoqiang" />-->

   rz命令本地上传文件到服务器

7,复制ant-jmeter.jar到ant的bin目录下

    <!-- 解决不显示 Min/Max 统计时间的问题。同时把下面的两个jar文件copy到ant的lib包中-->
    <path id="xslt.classpath">
    <fileset dir="${jmeter.home}/lib" includes="xalan-2.7.1.jar"/>
    <fileset dir="${jmeter.home}/lib" includes="serializer-2.7.1.jar"/>
    </path>

   # rz

澳门新濠3559 5

    <target name="all">
        <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:jmeter脚本" includes="*.jmx" />
        </jmeter>
    </target>
    <!-- jmeter-results-detail-report_21.xsl   or    jmeter.results.shanhe.me.xsl-->
    <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}/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>

   我在/user/local 目录下新建java文件夹**,在java文件夹下执行 rz 命令,直接从本地把jdk包传到服务器上**

8,配置Jmeter的build.xml

4.jmeter默认保存的是.csv格式的文件,所以我们需先设置一下bin/jmeter.properties文件内容,将jmeter.save.saveservice.output_format=csv保存为xml格式

  澳门新濠3559 6

<?xml version="1.0" encoding="UTF-8"?>

澳门新濠3559 7

  2:解压tar包。

<!--

 

   执行 tar -xvf jdk-8u74-linux-x64.tar.gz ,解压jdk包,生成 jdk1.8.0_74 目录

该配置文件作用:

 

  澳门新濠3559 8

使用ant来批量构建jmeter下loadtests文件夹里面的所有脚本,

4.切换到build.xml脚本目录下,执行已配置好的脚本

  3:配置环境变量

并按照指定格式来生成报告

澳门新濠3559 9

   vi /etc/profile

-->

5.通过ant执行build.xml脚本,执行完毕后,查看保存html的文件中是否有刚执行完成的报告,查看文件夹,如下如,然后打开查看结果:

   在最后面增加两行

<project name="ant-jmeter" default="all" basedir="D:apache-jmeter-3.3">  

澳门新濠3559 10

      export JAVA_HOME=/usr/local/java/jdk1.8.0_74

    <tstamp>

 

        export PATH=$JAVA_HOME/bin:$PATH

<format property="time" pattern="2017.12.29"/>

  澳门新濠3559 11

   执行命令:source /etc/profile,配置的环境变量生效

</tstamp>

 至此通过ant执行jmeter并生成html测试报告就完成啦,持续。。。。。(下一篇:通过Jenkins持续集成并发送邮件)

  4:查看是否安装成功,执行命令:java-version

<!--

  澳门新濠3559 12

生成报告前缀和定义结果集的相关参

  二:安装jmeter

-->

  1、将本地的Jmeter文件打包成zip文件:apache-jmeter-3.2.zip,再用rz命令上传到服务器

<property name="ReportName" value="TestReport"/>

  2、在服务器解压缩,生成jmeter-3.0目录

    <property name="jmeter.result.jtlName" value="D:apache-jmeter-3.3loadtestsa.jtl"/>

  3、安装unzip:apt-get install unzip

    <property name="jmeter.result.htmlName" value="D:apache-jmeter-3.3loadtestsa.html"/>

  4、解压缩:unzip apache-jmeter-3.0_json.zip

    

  5、将jmeter-3.0目录 放到 /usr/local下

    <!-- 需要修改成自己本地的jmeter目录 -->

  6、配置Jmeter环境变量。vi /etc/profile,再添加如下变量

    <property name="jmeter.home" value="D:apache-jmeter-3.3"/>

      export JMETER= /usr/local/apache-jmeter-3.2

    <!-- jmeter生成jtl格式的结果报告的路径 -->

   export PATH=$JMETER/bin:$PATH

<property name="jmeter.result.jtl.dir" value="D:apache-jmeter-3.3loadtestsa.jtl"/>

  7、执行命令:source /etc/profile,配置的环境变量生效

    <!-- jmeter生成html格式的结果报告的路径 -->

  8、检查安装结果:jmeter -v

<property name="jmeter.result.html.dir" value="D:apache-jmeter-3.3loadtestsa.html"/>

  澳门新濠3559 13

  

  三:脚本试运行

    <target name="all">

    执行命令:# jmeter -n -t /tmp/apache-jmeter-3.2/bin/lsmsp.jmx -l log.jtl,查看结果

<antcall target="test"/>

       参数说明:

<antcall target="report"/>

      -n:以非GUI方式运行脚本

    </target>

                     -t:后面接脚本名称

    <target name="test">

                     -l:后面接日志名称,保存运行结果

        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>

  澳门新濠3559 14

<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">

  通过 cat log.jtl 查看结果日志

<!--声明要运行的脚本 *.jmx,表示此目录下的所有jmeter脚本"-->

  四:ubuntu部署Ant

<testplans dir="D:Downloadsapache-jmeter-3.3loadtests" includes="*.jmx" />

  1:将 apache-ant-1.9.9 安装到ubuntu上的/user/local目录下,方法同上面的jmeter部署

<!-- Force suitable defaults -->

  2:配置Ant环境变量

            <property name="jmeter.save.saveservice.output_format" value="xml"/>

    vi /etc/profile

            <property name="jmeter.save.saveservice.assertion_results" value="all"/>

    在末尾添加两句

            <property name="jmeter.save.saveservice.bytes" value="true"/>

    export Ant=/usr/local/apache-ant-1.9.9
    export PATH=$Ant/bin:$PATH

            <property name="file_format.testlog" value="${format}"/>

    source /etc/profile 使配置的环境变量生效

            <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>

    输入 ant -v查看ant版本

</jmeter>

  澳门新濠3559 15

澳门新濠3559, </target>

  3:将jmeter/extras文件夹下的ant-jmeter-1.1.3.jar文件拷贝到ant/lib路径下

<target name="report">

   五:配置build.xml文件

        <xslt

build.xml文件配置的目的就是让ant去取代码执行构建。这里有两种方式构建

            in="D:apache-jmeter-3.3loadtestsa.jtl"

1:脚本直接上传到jmeter的目录下,通过jenkins的ant插件直接去构建,文件内容如下

            out="D:apache-jmeter-3.3loadtestsa.html"

<?xml version="1.0" encoding="UTF8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<property environment="env"/>
<property name="ReportName" value="TestReport" />
<!-- 本地的 Jmeter 目录-->
<property name="jmeter.home" value="/usr/local/apache-jmeter-3.2" />
<!-- jmeter生成报告的路径-->
<property name="jmeter.result.jtl.dir" value="/usr/local/apache-jmeter-3.2/bin/demo.jmx" />
<!-- 生成jtl、html格式的报告,以构建ID命名-->
<property name="jmeter.result.jtlName" value="${env.WORKSPACE}/results/${env.BUILD_ID}/${env.BUILD_ID}.jtl" />
<property name="jmeter.result.htmlName" value="${env.WORKSPACE}/results/${env.BUILD_ID}/${env.BUILD_ID}.html" />
<target name="run">
<echo message="start..."/>
<antcall target="clean" />
<antcall target="test" />
<antcall target="report" />
</target>
<target name="clean">
<mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本和此目录下的jmeter脚本-->
<testplans dir="/usr/local/apache-jmeter-3.2/bin/demo" includes="demo.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<target name="report">
<xslt in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />
</target>
</project>

            style="${jmeter.home}extrasjmeter-results-detail-report_21.xsl" />

 

    </target>

2:xml文件中配置gitlab取代码的路径。jenkins通过git插件将脚本从gitlab中取出来,保存到一个本地路径中,再去执行构建

</project>

<?xml version="1.0" encoding="UTF-8"?>

意思可以参考:

<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>

这里只做简单介绍

<property environment="env"/>
<property name="ReportName" value="TestReport" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="/usr/local/apache-jmeter-3.2" />
<!-- jmeter生成jtl、html格式的结果报告的路径-->
<property name="jmeter.result.dir" value="/usr/local/apache-jmeter-3.2/resultLog/${env.BUILD_ID}" />
<!-- 生成的报告的前缀-->
<property name="jmeter.result.jtlName" value="${jmeter.result.dir}/${ReportName}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.dir}/${ReportName}.html" />
<!-- GIT拉取到本地目录的路径 -->
<property name="githome" value="${env.WORKSPACE}" />

9,创建文件

<target name="run">
<echo message="start..."/>
<antcall target="clean" />
<antcall target="test" />
<antcall target="report" />
</target>

澳门新濠3559 16

<target name="clean">
<mkdir dir="${env.WORKSPACE}/results/${env.BUILD_ID}" />
</target>

10,部署到Jenkins上

<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本,includes里的文件也可以用逗号,隔开-->
<testplans dir="${githome}" includes="demo.jmx" />

澳门新濠3559 17

<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>

澳门新濠3559 18

<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>

澳门新濠3559 19

<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"

澳门新濠3559 20

force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>

部署完成

构建结果

注意,如果

澳门新濠3559 21

澳门新濠3559 22

 

下载xalan.jar,serializer.jar包将这两个jar包入ant的lib包中

 加入QQ群:317765580,我们一起讨论吧!

 

 

  

 

编辑:操作系统 本文来源:配置ant环境变量,1.ant下载及环境变量

关键词: