JMeter 自动化测试平台搭建

这里所说的自动化测试平台主要指的是 JMeter + Ant + Jenkins 搭建的性能测试平台,搭建这个平台的意义在于:当开发提测的版本较多,迭代比较频繁的时候,我们肯定希望快速验证下迭代版本的性能,所以希望搭建这样的一个自动化平台,以实现自动验证。

这里引入了两个新的软件,Ant 和 Jenkins。

什么是 Ant

Ant 是一个将软件编译、测试、部署等步骤联系在一起进行自动化的工具,大多数应用于 Java 工程。

什么是 Jenkins

这个做持续集成的测试人员应该并不陌生,说白了就是用来监控重复操作,监控版本持续发布的软件。

环境配置

下面我们看下环境配置情况。

Ant 的安装配置

(1)打开 Ant 官网,进行下载,下载地址详见这里

(2)将其解压至本地指定的一个任意目录下:

(3)配置环境变量

新建系统变量ANT_HOME,值为:E:\Jmeter\apache-ant-1.10.1。

在 path 变量里增加 ant 的 bin 目录,即值为:%ANT_HOME%\bin

在 path 变量里增加 ant 的 lib 目录,即值为:%ANT_HOME%\lib

(4)验证 Ant 是否安装成功,cmd 命令行下输入 ant -version:

出现上图,则表示 Ant 已经成功被安装。

Jenkins 的安装配置

(1)打开 Jenkins 官网,进行下载,下载地址详见这里

(2)将其解压至本地目录中,进行安装,安装过程如下所示:

然后会自动打开 Jenkins 主页网址:http://localhost:8080/

找到初始化管理员密码的位置,用 notepad 打开此文件,将密码复制,贴入指定位置:

安装推荐的插件,尤其需要安装 Ant 插件:

需要注意一点:我们现在打开的网址为:http://localhost:8080/,此时端口号为8080,我们知道如果本地还启动了 Tomcat,它默认的端口号也是8080,所以这个端口有可能会被占用,如果8080端口被占用掉,就在安装 Jenkins 的根目录下,找到 jenkins.xml 文件修改端口号:

此刻,Jenkins 亦被安装成功。

JMeter + Ant + Jenkins 集成

万事俱备,Ant、Jenkins 也已经被我们安装成功,下面开始进行 JMeter + Ant + Jenkins 三者的集成。

具体过程如下:

(1)准备好一个录制完成的 JMeter 脚本,没有现成的就重新录制一个,继续使用前面录制的360搜索参数化的脚本。

(2)将 apache-jmeter-3.1\extras 目录下的 ant-jmeter-1.1.1.jar 放置在 apache-ant-1.10.1\lib 目录下:

将其放置为 ant 的 lib 目录下:

(3)配置 apache-jmeter-3.1\extras 下面的 build.xml 文件:

  • 建立一个存储 JMeter 脚本的文件夹;
  • 建立一个存储 jtl 文件的文件夹;
  • 建立一个存储将 jtl 转为 html 文件的文件夹。

具体文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<project name="JmeterTest" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="E:\Jmeter\apache-jmeter-3.1" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="E:\Jmeter\apache-jmeter-3.1\summary\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="E:\Jmeter\apache-jmeter-3.1\summary\html" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <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="mail_to" value="XXXXXXXX@163.com" />
    <target name="all">
        <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="E:\Jmeter\apache-jmeter-3.1\summary\jmx" includes="*.jmx" />
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>
<!--引入Jmeter/lib目录下的xalan-2.7.2.jar和serializer-2.7.2.jar-->
    <path id="xslt.classpath">
        <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
        <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    </path>
    <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)使用 Ant 验证编译 JMeter 的 build.xml 文件,即将配置好的 build.xml 文件放置在 apache-ant-1.10.1\bin 目录下。

再 cmd 到 Ant/bin 目录下,执行 ant 命令即可:

build 完毕,看下新建存储 jtl 和 html 文件中是否有数据:

可见上面的文件夹中都已经成功保存数据,构建完成。

(5)部署到持续集成平台 Jenkins。

  • 打开 Jenkins 主页,点击新建任务:

  • 输入一个任务名称,例如命名为 JmeterTest:

  • 构建这里配置 Ant/bin 目录下的 build.xml 路径:

配置完成,单击“保存”按钮。

  • 回到 Jenkins 主页,找到我们构建好的工程 JmeterTest,单击立即构建:

  • 构建完成点击黄色图标的太阳:

  • 查看控制台输出:

发现已经构建成功。

总结

  • 应熟练掌握 Ant、Jenkins 的安装配置过程;
  • 可以不会编写 build.xml 文件,但是一定要看懂;
  • cmd 下执行 ant 命令和 Jenkins 进行构建的结果一定是一致的;
  • 通过这种方式我们可以实现脚本的批量自动验证。
posted @ 2018-11-22 11:47  长安。  阅读(864)  评论(0)    收藏  举报