Windows下搭建ant+jenkins+jmeter自动化接口测试框架

引言

为什么要持续集成?

1、减少风险

2、减少假定

3、减少重复过程

4、增强项目的可见性

5、持续集成可以带来两点积极效果:

(1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。

(2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。

一、环境搭建(不细讲,自行百度)

1、配置jdk环境

2、配置jmeter环境

3、配置ant环境

二、联合使用(ant+jmeter+jenkins)搭建接口自动化测试框架

1、先编写好一个jmeter的脚本,并在jmeter上跑通

2、导出jmx脚本

3、在桌面创建好一个空的文件夹,用于ant执行,并在内部创建好三类文件夹(result、scrpit、html)

     result = 存放执行后的jmx文件结果
     html = 存放将jmx执行结果进行转换为html格式文件
     scrpit = 存放jmx脚本

4、在这里我们把刚才跑通的jmx文件放到scrpit中

5、准备一个build.xml脚本,并把他放到我们刚才创建的文件夹的根目录

bulid.xml内容如下(需要自行修改jmeter路径,上述所建的文件夹路径):

<?xml version="1.0" encoding="GBK"?>
<project name="ant-jmeter-test" default="run" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <target name="run">
        <antcall target="clear1" />
        <antcall target="test1" />
        <antcall target="report1" />
        <antcall target="sendmail1" />
    </target>
    <target name="test1">
        <echo message="开始执行jmeter脚本..."></echo>
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
        <jmeter jmeterhome="E:\apache-jmeter-5.2.1" resultlog="C:\Users\Administrator\Desktop\ant\result\1.jtl">
            <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
            <testplans dir="C:\Users\Administrator\Desktop\ant\script" includes="*.jmx" />
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
    <path id="xslt.classpath">
        <fileset dir="E:\apache-jmeter-5.2.1\lib" includes="xalan*.jar"/>
        <fileset dir="E:\apache-jmeter-5.2.1\lib" includes="serializer*.jar"/>
    </path>
    <target name="report1">
        <echo message="开始转换执行结果..."></echo>
        <tstamp>
            <format property="time" pattern="yyyy/MM/dd HH:mm" />
        </tstamp>
        <xslt classpathref="xslt.classpath"
              force="true"
     in="C:\Users\Administrator\Desktop\ant\result\1.jtl"
              out="C:\Users\Administrator\Desktop\ant\html\1.html"
              style="E:\apache-jmeter-5.2.1\extras\jmeter-results-detail-report_21.xsl">
            <param name="titleReport" expression="测试报告"/>
            <param name="dateReport" expression="${time}"/>
        </xslt>
        <!-- jmeter-results-detail-report_21  因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝-->
        <copy todir="C:\Users\Administrator\Desktop\ant\html">
            <fileset dir="E:\apache-jmeter-5.2.1\extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
    <target name="clear1">
        <!-- 每次执行前先删除清空jtl和html文件夹,释放空间 -->
        <echo message="释放空间,清空jtl和html文件夹中 ..."></echo>
        <delete dir="C:\Users\Administrator\Desktop\ant\result" />
        <delete dir="C:\Users\Administrator\Desktop\ant\html" />
        <!-- 删除单个文件-->
        <delete file="C:\Users\Administrator\Desktop\ant\1.rar" />
        <sleep seconds="2"/>
        <echo message="释放完成 ..."></echo>
    </target>
    <target name="sendmail1">
        <!--把报告进行压缩打包-->
        <jar jarfile="C:\Users\Administrator\Desktop\ant\1.rar" basedir="C:\Users\Administrator\Desktop\ant\html"/>
        <!--把文件贴到邮件正文-->
        <loadfile property="html" srcFile="C:\Users\Administrator\Desktop\ant\html\1.html" encoding="UTF-8">
            <filterchain>
                <expandproperties />
            </filterchain>
        </loadfile>
        <mail mailhost="smtp.qq.com" 
    mailport="25" subject="测试结果" 
    messagemimetype="text/html" tolist="1429622029@qq.com"
    user="1429622029@qq.com" password="邮箱授权码">
            <from address="1429622029@qq.com"/>
            <!--发送附件-->
            <fileset dir="C:\Users\Administrator\Desktop\ant">
                <include name="1.rar"/>
            </fileset>
            <message>
                <![CDATA[ 
    <p>项目组收:</p><pre> ${html} </pre><p>自定义邮件内文字</p>
    ]]>
            </message>
        </mail>
    </target>
</project>

6、打开cmd,cd到文件夹目录下,输入ant

 

 接下来就开始执行,但是后来发现到了sendmail方法就止住不动了,并报错:

 

 原因:缺少jar包(activation.jar、commons-lang3-3.8.1.jar、mail.jar),邮件发送不成功

 解决:链接:https://pan.baidu.com/s/1OLrSB_7f09cq7nTOlwNGTw  提取码:7jgv ,直接下载然后丢到ant目录中的lib目录就可以

7、jenins配置ant插件

1)系统管理-全局工具配置-新增ant-添加ant安装路径

 

 

 

如果没有Ant怎么办? 说明你没有安装相关插件,要去官网下载
官网链接:https://updates.jenkins-ci.org/download/plugins/
打开后,在搜索框中输入你要下载的插件名就可以

2)配置好ant后,点击新建任务,创建一个新项目,进入自己配置的项目->配置->构建->invoke ant,将ant版本设置为第二步中设定的ant名称

 

posted @ 2022-03-17 11:09  Frank13054  阅读(164)  评论(0编辑  收藏  举报