Jmeter3.1、Ant、Jenkins接口自动化平台搭建步骤;所遇问题及解决方案

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 FilesJavajdk1.7.0_80

l  配置:Path:增加%JAVA_HOME%in;

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:1Test2Jmeterapache-jmeter-3.1

l  配置:

CLASSPATH:%JMETER_HOME%libextApacheJMeter_core.jar;%JMETER_HOME%libjorphan.jar;%JMETER_HOME%liblogkit-2.0.jar;

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

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

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

l  解压:默认

l  配置:ANT_HOME:D:1Test2Jmeterant

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

l  配置:Path:增加%ANT_HOME%in;

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

4.     修改jmeter.properties

修改apache-jmeter3.1in下的jmeter.properties

jmeter.properties

5.    准备好脚本,本人脚本存放路径:D:1Test2Jmeterscripts下的各个test目录下。

注:reports用于生成报告

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

7.     Ant配置build.xml

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

<?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:1Test2Jmeterapache-jmeter-3.1" />
    <property name="report.title" value="接口测试"/>
    <!-- jmeter生成jtl格式的结果报告的路径,路径根据自己情况更改--> 
    <property name="jmeter.result.jtl.dir" value="D:1Test2Jmeterscripts
eports" />
    <!-- jmeter生成html格式的结果报告的路径,路径根据自己情况更改-->
    <property name="jmeter.result.html.dir" value="D:1Test2Jmeterscripts
eports" />
    <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:1Test2Jmeterscripts	est3N" includes="*.jmx" />
            <testplans dir="D:1Test2Jmeterscripts	est3" includes="*.jmx" />
            <testplans dir="D:1Test2Jmeterscripts	est2" includes="*.jmx" />
            <testplans dir="D:1Test2Jmeterscripts	est" 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:1Test2Jmeterantin(进入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:1Test2JmeterinApacheJMeter.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").

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

 

原文地址:https://www.cnblogs.com/jxba/p/9218407.html