Jenkins+Jmeter+ant接口自动化集成

一、准备工作
Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
Ant下载地址:https://ant.apache.org/bindownload.cgi
Jenkins下载地址:https://jenkins.io/download/
Tomcat下载地址:http://tomcat.apache.org/

二、配置Ant环境变量
步骤1:将从官网下载的ant包和JMeter包上传到服务器/opt目录下;

步骤2:解压缩包
命令如下:

tar -xzvf apache-ant-1.10.5-bin.tar.gz
注意:ant 1.10 需要JDK1.8支持。

步骤3.设置环境变量,使用命令:vi /etc/profile编辑profile文件
在文件最后添加下面两行内容:

export ANT_HOME=/opt/apache-ant-1.10.5
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

步骤4.使用命令:source /etc/profile更新配置文件

步骤5.使用命令:ant -version,检查Ant环境变量配置成功

三、Ant配置Jmeter
使用ant构建命令执行jmeter执行接口测试脚本,并生成测试报告。
步骤1:进入/data目录下新建文件夹report
命令如下:
cd /data
mkdir report

步骤2:进入report目录下,创建名称为html、jtl、script三个文件夹
html 用来存放html测试报告
jtl 用来存放jtl测试报告
script 用来存在接口测试脚本
在这里插入图片描述
命令如下:

cd report
mkdir html
mkdir jtl
mkdir script

步骤3:将目录/opt/apache-jmeter-3.3/extras下ant-jmeter-1.1.1.jar文件复制到目录/opt/apache-ant-1.10.5/lib下
命令如下:

cp /opt/apache-jmeter-3.3/extras/ant-jmeter-1.1.1.jar /opt/apache-ant-1.10.5/lib

步骤4:新建ant的编译文件build.xml,并将此文件放到/data/reprot下
build.xml文件内容如下(红色部分可根据实际文件所在路径做修改):
注意在新建buile.xml文件,可在notepad++中新建再保存为xml格式,若在windows中新建文本后再强制修改后缀在后续使用此文件会出现Content is not allowed in prolog错误。

<?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="/opt/apache-jmeter-3.3/extras" />  
    <!-- 需要改成自己本地的 Jmeter 目录-->    
    <property name="jmeter.home" value="/opt/apache-jmeter-3.3" />  
    <!-- jmeter生成jtl格式的结果报告的路径-->   
    <property name="jmeter.result.jtl.dir" value="/data/report/jtl" />  
    <!-- jmeter生成html格式的结果报告的路径-->  
    <property name="jmeter.result.html.dir" value="/data/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="/data/report/script" 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>

步骤5:修改Jmeter报告输出格式为xml;
使用命令:vi /opt/apache-jmeter-3.3/bin/jmeter.properties编辑Jmeter配置文件jmeter.properties
将jmeter.save.saveservice.output_format=csv 修改为jmeter.save.saveservice.output_format=xml并去掉前面的注释符号#,如下图:
在这里插入图片描述
步骤6:将接口测试脚本放到目录/data/report/script下

步骤7:进入build.xml所在目录下,执行构建测试
命令如下:

cd /data/report
ant

步骤8:进入/data/report/html下查看报告

四、优化测试报告
步骤1:下载报告模板文件jmeter-results-shanhe-me.xsl,并将模板拷贝到服务器目录/opt/apache-jmeter-3.3/extras/下
模板下载地址:
链接:https://pan.baidu.com/s/17UlGb1o0tZ37PLmtay40-g
密码:bftq

步骤2:设置测试输出报告要输出的内容:
进入/opt/apache-jmeter-3.3/bin目录。
在jmeter.properties中,设置需要输出的内容为true,并去掉前面的注释符号#
这里全部设置成true→保存。如下格式:
注:此处请尽量选择使用notepad++和xftp搭配进行更改

[html] view plain copy
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  
[html] view plain copy
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  

步骤3:将/data/report下的build.xml文件的报告模板改为优化后的模板jmeter.results.shanhe.me.xsl,如下图:
在这里插入图片描述

步骤4::再次使用ant构建并查看报告

五、安装Jenkins
步骤1.安装Jenkins
使用tomcat搭建Jenkins环境(centos7.3)

步骤2.进入【系统管理】-【全局工具配置】-【Ant】配置Ant环境变量,如下图:
在这里插入图片描述

步骤3.进入【系统管理】-【插件管理】中安装【HTML Publisher】这个插件,安装完成,如下图:
在这里插入图片描述

步骤4.在【插件管理】中安装插件【Email Extension Plugin】,安装完成,如下图:
在这里插入图片描述

步骤5.安装groovy插件
下载地址:http://updates.jenkins-ci.org/download/plugins/groovy/2.0/groovy.hpi
进入【系统管理】-【插件管理】-【Advanced】将下载的groovy插件上传安装,如下图:
在这里插入图片描述

步骤6.进入【系统管理】-【系统设置】设置邮箱相关内容:
设置jenkins系统邮箱,如下图:
在这里插入图片描述
【Extended E-mail Notification】,进行设置,如下图:
在这里插入图片描述
【邮件通知】,进行设置,如下图:
在这里插入图片描述

步骤7.新建一个自由风格的任务,步骤如下图:
在这里插入图片描述
在这里插入图片描述

步骤8.添加一个build,如下图:
在这里插入图片描述

步骤9.添加一个build,执行shell,内容如下:
注意:主要解决JMeter脚本执行失败后,Jenkins构建仍然是成功的问题。

result='failure'
grep -q 'class="failure"' /data/report/html/Jmeter-report.html || result='success'
if [ $result == "failure" ]; then
    echo "Jmeter test failure !!!"
    exit 1
fi

如下图:
在这里插入图片描述

步骤10.添加一个build【Execute System Groovey script】,内容为:System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”)
注意:主要是解决使用 HTML Publisher 插件后查看 html 报告显示不正常的问题
如下图:
在这里插入图片描述

步骤11.添加一个Post-build Actions,如下图:
在这里插入图片描述

步骤12.添加一个Post-build Actions【Editable Email Notification】,如下图:
在这里插入图片描述
邮件正文内容为:

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次构建日志</title>  
</head>  
  
<body size="4" leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
    offset="0">  
    <table width="95%" cellpadding="0" cellspacing="0"  
        style="font-size: 20pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
        <tr>  
            <td>(本邮件是程序自动下发的,请勿回复!)</td>  
        </tr>  
        <tr>  
            <td><h2>  
                    <font color="#0000FF">构建状态 - ${BUILD_STATUS}</font>  
                </h2></td>  
        </tr>  
        <tr>  
            <td><br />  
            <b><font color="#0B610B">构建信息</font></b>  
            <hr size="3" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td>  
                <ul>  
                    <li>项目名称 : ${PROJECT_NAME}</li>  
                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>  
                    <li>触发原因: ${CAUSE}</li>  
                    <li>构建日志: <a href="${PROJECT_URL}${BUILD_NUMBER}/console">${PROJECT_URL}${BUILD_NUMBER}/console</a></li>  
                    <li >变更集:${JELLY_SCRIPT,template="html"}</li>
                     <li><a href="${PROJECT_URL}HTML_20Report/">测试报告</a></li>
                </ul>
                    <hr size="3" width="100%" align="center" />
            </td>  
        </tr>  
       
         
    </table>  
</body>  
</html>

步骤13.设置发送邮件触发器
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/q13554515812/article/details/83217800