Win下Jenkins+Jmeter+Ant自动化集成环境搭建

环境:win10

涉及:Jdk1.7.0_80、Jenkins2.60.3、Jmeter3.1、Ant1.9.9

步骤:

1.     Java下载、安装、配置环境变量、验证

l  下载:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html (win64

l  安装:默认

l  配置:JAVA_HOME:C:\Program Files\Java\jdk1.7.0_80

l  配置:Path:增加%JAVA_HOME%\bin;

l  验证:win+R输入cmd进入cmd.exe,执行javac -version,显示java版本即表示jdk安装成功

 

2.     Jmeter下载、安装、配置环境变量、验证

l  下载:http://archive.apache.org/dist/jmeter/binaries/

l  解压:默认

l  配置:JMETER_HOME:D:\01Test\02Jmeter\apache-jmeter-3.1

l  配置:

CLASSPATH:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar;

l  启动:进入\apache-jmeter-3.1\bin下启动jmeter.bat,jmeter启动成功即为安装成功

 

3.     Ant下载、配置环境变量、验证

l  下载:http://ant.apache.org/bindownload.cgi

l  解压:默认

l  配置:ANT_HOME:D:\01Test\02Jmeter\ant

l  配置:CLASSPATH:增加%ANT_HOME%\lib;

l  配置:Path:增加%ANT_HOME%\bin;

l  验证:win+R输入cmd进入cmd.exe,进入ant目录,执行ant -version,显示版本即表示安装成功

4.     修改jmeter.properties

修改apache-jmeter3.1\bin下的jmeter.properties

jmeter.properties

 

5.    准备好脚本,本人脚本存放路径:D:\01Test\02Jmeter\scripts\下的各个test目录下。

 

 

注:reports用于生成报告

 

6.     将apache-jmeter-3.1\extras下的ant-jmeter-1.1.1.jar放在ant\lib下

7.     Ant配置build.xml

l  将apache-jmeter3.1\extras中的build.xml复制到ant\bin下,并进行配置保存。

<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
      <tstamp>
        <format property="time" pattern="_yyyyMMdd_HHmmss" />
    </tstamp>
    <!-- 需要改成自己本地的Jmeter路径,路径根据自己情况更改-->  
    <property name="jmeter.home" value="D:\01Test\02Jmeter\apache-jmeter-3.1" />
    <property name="report.title" value="接口测试"/>
    <!-- jmeter生成jtl格式的结果报告的路径,路径根据自己情况更改--> 
    <property name="jmeter.result.jtl.dir" value="D:\01Test\02Jmeter\scripts\reports" />
    <!-- jmeter生成html格式的结果报告的路径,路径根据自己情况更改-->
    <property name="jmeter.result.html.dir" value="D:\01Test\02Jmeter\scripts\reports" />
    <property name="detail" value="_detail" />
    <!-- 生成的报告的前缀-->  
    <property name="ReportName" value="Report" />
    <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" />
    
    <property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}${time}${detail}.html" />

    <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"指包含以下路径下的所有jmx,如需执行多路径下的脚本,则将路径分别加载testplans里,路径根据自己情况更改-->
            <testplans dir="D:\01Test\02Jmeter\scripts\test3N" includes="*.jmx" />
            <testplans dir="D:\01Test\02Jmeter\scripts\test3" includes="*.jmx" />
            <testplans dir="D:\01Test\02Jmeter\scripts\test2" includes="*.jmx" />
            <testplans dir="D:\01Test\02Jmeter\scripts\test" includes="*.jmx" />

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

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


<!-- 生成2个报告,一个概要的,一个详细的 --> 
       <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>
   <xslt 
          classpathref="xslt.classpath"
          force="true"
          in="${jmeter.result.jtlNamedetail}"
          out="${jmeter.result.htmlNamedetail}"
          style="${jmeter.home}/extras/jmeter-results-shanhe-me.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_20191109.xml

 

l  win+R输入cmd进入cmd.exe,输入一下命令,执行ant -buildfile build_20191109.xml,即可成功。

D:(进入D盘)

cd D:\01Test\02Jmeter\ant\bin(进入bin目录下)

ant -buildfile build_20191109.xml(运行)

 

 

 

 

 

 

 

8.     Jenkins下载、安装、启动

l  下载:https://jenkins.io/download/,下载左边稳定版

 

 

 

l  安装:默认一切安装即可

l  登录localhost:8080,首次登录用户名为administrator,密码为提示文件中的内容,复制过来即可登录,登录后设置自己的用户名和密码即可

l  插件:首页->系统设置->管理插件->可选插件,根据需求搜索,本人已安装的插件如下图:

 

 

 

 

 

以前走的弯路,及遇到的错误问题

1、如提示错误:2 字节 UT8-8 序列的字节 2无效

将build文件用notepad++打开,在编码选择“以UTF-8无BOM格式编码”,然后保存

 

2、java(TM) platform se binary 已停止工作

 build配置文件按如下网页修改

http://www.cnblogs.com/test2016/p/5342065.html

 

3、${lib.dir} does not exist.

将以下内容注释掉:

<path id="xslt.classpath">

        <fileset dir="${lib.dir}" includes="xalan*.jar"/>

        <fileset dir="${lib.dir}" includes="serializer*.jar"/>

</path>

 

4、The following error occurred while executing this line:

解决办法:未确认

Variable name: _JAVA_OPTIONS

Variable value: -Xmx512M

5、jmeter jar file not found or not a valid file:

D:\01Test\02Jmeter\bin\ApacheJMeter.jar

解决:Jmeter路径不对

6、java.lang.IllegalAccessError:

 tried to access class org.apache.xml.serializer.ExtendedContentHandler from class org.apache.xalan.transformer.TransformerImpl

ant下lib下有xalan*.jar,serializer*.jar,删除即可

 

7、The <copy> type doesn't support nested text data ("86 90").

可能是粘贴过去的内容不兼容,重新编写一遍即可

 

 

posted on 2018-06-23 19:02  jxba  阅读(1131)  评论(0编辑  收藏  举报