Jenkins+Jmeter+ant接口自动化框架学习

时间:2021-04-08 06:54:49

1、安装jmeter

1.1  下载安装包

下载地址:https://jmeter.apache.org/download_jmeter.cgi

单击此处:如图

 Jenkins+Jmeter+ant接口自动化框架学习

解压后放在:C:\apache-jmeter-4.0  (个人意见)

1.2  配置环境变量

JMETER_HOME:C:\apache-jmeter-4.0

PATH: %JMETER_HOME%\bin;

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

1.3 安装验证

 Jenkins+Jmeter+ant接口自动化框架学习

2、安装JDK

2.1    下载安装包

我的是最新版jdk  1.8.0_171。官网下载地址

http://www.oracle.com/technetwork/java/javase/downloads/index.html

2.2   配置环境变量

我的JAVA安装时为默认路径:

JAVA_HOME   C:\Program Files\Java\jdk1.8.0_171 

CLASSPATH    ;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

PATH    ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

2.3  安装验证

在命令窗口中输入java -version 回车,能出现java版本则说明配置成功

 Jenkins+Jmeter+ant接口自动化框架学习

3、安装ANT

3.1 安装包下载

下载地址: http://ant.apache.org/bindownload.cgi

Jenkins+Jmeter+ant接口自动化框架学习

下载解压jmeter放在同一位置即可

3.2 配置环境变量

ANT_HOME    C:\apache-ant-1.10.3

CLASSPATH   %ANT_HOME%\lib;

PATH  %ANT_HOME%\bin;

3.3 安装验证

验证安装结果,命令行输入ant -v,出现版本信息则安装成功

 Jenkins+Jmeter+ant接口自动化框架学习

4、Ant配置Jmeter

就是用ant构建命令来调动执行jmeter接口测试,并生成测试报告

  1. 首先在Jmeter主目录下新建一个report文件夹
  2. 进入report目录
  3. 在report目录中新建如下所示的三个文件夹

          jtl            测试报告存放目录(jtl)

            html            测试报告存放目录(HTML)

            run              测试脚本存放目录

4.1 配置库文件


jmeter extras目录下的ant-jmeter-1.1.1.jar文件复制到ant安装目录下的lib文件夹中


4.2  新建配置ant的编译文件 build.xml

:将新建的build.xml文件放入在Jmeter目录中新建的report文件夹。

标红部分可根据自己的配置进行修改。


<?xml version="1.0" encoding="UTF-8"?>  
  
<project name="ant-jmeter-test" default="run" basedir=".">  
      
    <tstamp>  
        <format property="time" pattern="yyyyMMddhhmm" />  
    </tstamp>  
    <property name="basedirectory" value="C:\apache-jmeter-4.0\extras" />  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="C:\apache-jmeter-4.0" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="C:\apache-jmeter-4.0\report\jtl" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="C:\apache-jmeter-4.0\report\html" />  
    <!-- Name of test (without .jmx) -->  
    <property name="test" value="Test"/>  
    <!-- 生成的报告的前缀-->    
    <property name="ReportName" value="TestReport" />  
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${time}.jtl" />  
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${time}.html" />  
      
    <path id="xslt.classpath">  
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>  
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>  
    </path>  
      
    <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"指包含此目录下的所有jmeter脚本-->  
            <testplans dir="C:\apache-jmeter-4.0\report\run" includes="*.jmx" />  
        </jmeter>  
    </target>  
          
    <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>  
        <copy todir="${jmeter.result.html.dir}">  
            <fileset dir="${jmeter.home}/extras">  
                <include name="collapse.png" />  
                <include name="expand.png" />  
            </fileset>  
        </copy>  
    </target>  
      
</project>


4.3  配置jmeter.properties文档

找到jmeter.properties文档,在C:\apache-jmeter-4.0\bin目录下,打开该文档并编辑

修改jmeter报告输出格式为xml

jmeter.save.saveservice.output_format=csv jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#


4.4 验证配置,执行构建测试

选取一个做好的jmeter测试脚本放入report目录中的run目录。如不知此目录在哪,还请阅读上文。 

4.5  执行测试

第一步:在build.xml所在目录打开命令窗口(鼠标在空白处按下shift键后在右键),或者使用命令行cdbuild.xml文件所在目录

第二步:输入   ant      回车,执行测试

 Jenkins+Jmeter+ant接口自动化框架学习

看到build successful 则说明构建成功

4.6   查看测试结果报告

在报告输出存放路径下查看是否有jtlhtml结果报告,存放路径在build文档中也有

打开html文档,测试结果展现了执行的用例名称、成功率、用例执行时间等结果参数

 Jenkins+Jmeter+ant接口自动化框架学习

这样的结果是不是不太直观,因为用jmeter自带的测试报告得到的测试报告信息并不是很全,下面讲一下怎么优化测试报告

4.7、 优化测试报告

下载优化模板 jmeter-results-shanhe-me.xsl,拷贝到jmeterextras目录中

下载地址:

链接:https://pan.baidu.com/s/17UlGb1o0tZ37PLmtay40-g 

密码:bftq

将下载的文件移动到  C:\apache-jmeter-4.0\extras  目录下

设置测试输出报告要输出的内容:

进入C:\apache-jmeter-4.0\bin目录。

jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#

请参照下面的内容进行修改。

jmeter.save.saveservice.data_type=true

jmeter.save.saveservice.label=true

jmeter.save.saveservice.response_code=true

# response_data is not currently supported for CSV output

jmeter.save.saveservice.response_data=true

# Save ResponseData for failed samples

jmeter.save.saveservice.response_data.on_error=true
jmeter.save.saveservice.response_message=true

jmeter.save.saveservice.successful=true

jmeter.save.saveservice.thread_name=true

jmeter.save.saveservice.time=true

jmeter.save.saveservice.subresults=true

jmeter.save.saveservice.assertions=true

jmeter.save.saveservice.latency=true

jmeter.save.saveservice.connect_time=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.responseHeaders=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.encoding=true

jmeter.save.saveservice.bytes=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.filename=true

jmeter.save.saveservice.hostname=true

jmeter.save.saveservice.thread_counts=true

jmeter.save.saveservice.sample_count=true

jmeter.save.saveservice.idle_time=true
建议使用notepad++进行修改!

③在report目录设置buildxml为优化后的模板

Jenkins+Jmeter+ant接口自动化框架学习

用notepad++打开这个文件

查找到       style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">     这一行!

将jmeter-results-detail-report_21.xsl改为jmeter.results.shanhe.me.xsl

完成结果如下:

 style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl">

好了   保存并关闭此文件。

再次用ant构建测试,查看优化后的测试报告

Jenkins+Jmeter+ant接口自动化框架学习

到了这一步Jmeter和ant之间的衔接已经完成了。接下来配置Jenkins。

5、配置Jenkins,构建持续化集成

5.1  安装Jenkins

前提条件:已经成功安装了JDK,因为jenkins是一款基于Java的持续集成工具。

准备工具:下载安装包,https://jenkins.io/download/,下载jenkinswar包。

Jenkins+Jmeter+ant接口自动化框架学习

5.2  安装Tomcat8。

为了更好的启动和管理,我在此处使用了Tomcat。可以使用其他的,仁者见仁智者见智。

下载地址:http://tomcat.apache.org/

点击此处:

Jenkins+Jmeter+ant接口自动化框架学习

下载完成后可以解压到与jmeter同路径。

然后目录如下图:

Jenkins+Jmeter+ant接口自动化框架学习

5.3  启动jenkins

      1.jenkins.war包放置在Tomcat中webapps的目录下

       2.Tomcat中bin目录中按住shift+右键打开cmd,输入命令:startup.bat。或者直接进入bin目录双击此文件。

    3.在浏览器中输入http://localhost:8080/,进入后出现如下界面

Jenkins+Jmeter+ant接口自动化框架学习

再在浏览器中输入:http://localhost:8080/jenkins/

就可以启动jenkins了。

进入后按步骤操作。并设置用户名。注:用户名必须设置。

5.4、新建并配置一个任务

 Jenkins+Jmeter+ant接口自动化框架学习

设置项目名称:

 Jenkins+Jmeter+ant接口自动化框架学习

配置构建:

 Jenkins+Jmeter+ant接口自动化框架学习

 基本配置完成

5.5任务主页,立即构建,执行测试

执行完成后控制台输出如下。

 Jenkins+Jmeter+ant接口自动化框架学习

 

至此构建基本完成,打开测试报告存放路径会看到新生成的报告文档。

Jenkins+Jmeter+ant接口自动化框架学习

HTML结果打开如下图所示:

Jenkins+Jmeter+ant接口自动化框架学习

还可以配置邮件插件来发送测试报告(还在研究中)。