工作环境下Apache Jmeter + ANT +Jenkins 持续集成环境搭建

最近工作需要在公司使用jmeter实现接口自动化测试,我就选取了jmeter+ant+jenkins,搭建环境过程如下

本地环境:win7 64位 云桌面系统

1,本地电脑上JDK安装,网上教程很多,这里不再记录

2,本地电脑上Apache jmeter下载与安装

地址:http://jmeter.apache.org/

这里我选择下载的是4.0版本的,下载到D盘

下载下来之后解压,这只jmeter的环境变量

变量名:JMETER_HOME
变量值:D:\apache-jmeter-4.0
变量名:CLASSPATH

变量值:

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

变量名:Path

变量值:D:\apache-ant\bin;

命令行中输入jmeter -v 出现以下便是配置好了

3,下载及配置ant

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

将下载的ant解压放到jmeter一块,我都是放在D盘根目录下

先将D:\apache-jmeter-4.0\extras\extra文件夹下的ant-jmeter-1.1.1.jar 包放到D:\apache-ant\lib 目录下

配置ant的环境变量

变量名:ANT_HOME
变量值:D:\apache-ant
变量名:CLASSPATH

变量值:D:\apache-ant\lib

变量名:Path

变量值:D:\apache-ant\bin

命令行输入ant -v

4,配置 jmeter+ant

在D:\apache-ant目录下新建一个JmeterTest的文件夹,这个文件夹我们以后可以将jmeter的 .jmx脚本放到这里

在D:\apache-ant\JmeterTest新建一个D:\apache-ant\JmeterTest\resultLog文件夹,这个文件我们可以存放报告

在D:\apache-ant\JmeterTest\resultLog文件下配置html文件夹放置生成的html格式的报告,配置一个jtl文件夹放置jtl格式的报告

在D:\apache-ant\JmeterTest新建一个build.xml文件,内容如下:

<?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="D:\apache-jmeter-4.0" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="D:\apache-ant\JmeterTest\resultLog\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="D:\apache-ant\JmeterTest\resultLog\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" />
    <!-- 接收测试报告的邮箱 -->
   
    <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="D:\apache-ant\JmeterTest" includes="*.jmx" />
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <property name="jmeter.save.saveservice.assertion_results" value="all"/>
            <property name="jmeter.save.saveservice.bytes" value="true"/>
            <property name="file_format.testlog" value="${format}"/>
            <property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
        </jmeter>
    </target>
    <!--生成报告-->
    <target name="report">
        <xslt
            in="${jmeter.result.jtlName}" 
            out="${jmeter.result.htmlName}" 
            style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>
            
        
            <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
            <copy todir="${jmeter.result.html.dir}">
                <fileset dir="${jmeter.home}/extras">
                    <include name="collapse.png" />
                    <include name="expand.png" />
                </fileset>
            </copy>
        
    </target>
    <!-- 发送邮件 -->
</project>

这里需要注意每个文件地址都需要一个一个的小心配置,如果漏掉某一个没有配置会出错

build.xml文件内容的生成报到的部分:它的作用就是把生成的.jtl数据文件转换为.html格式的报告

这里我们还要把 D:\apache-jmeter-4.0\bin目录下的jmeter.properties修改如下,去掉注释,这样设置生成的格式是CSV格式

测试一下,打开jmeter添加线程组,线程属性先不设置,添加HTTP请求,服务器名称或IP一栏中输入www.baidu.com

添加监听器-查看结果树,先运行一下,查看结果,我们设置的请求是成功的

保存到我们刚设置好的D:\apache-ant\JmeterTest文件夹下,命令行进入该文件夹下,输入ant,查看结果

build 成功,我们到D:\apache-ant\JmeterTest\resultLog\html目录下有html格式的报告,打开查看报告

min time 、max time 都是NaN

将D:\apache-jmeter-4.0\lib目录下的xalan-2.7.2.jar、serializer-2.7.2.jar两个包拷贝到D:\apache-ant\lib目录下,再次运行ant,查看结果

这下min time 、max time 显示内容了

5,配置jenkins+ant了

我在本地搭建好jmeter+ant之后便直接在远程的Jenkins上配置,没有在jenkins上配置jmeter与ant,结果报错

Building in workspace /root/.jenkins/workspace/jmeter
ERROR: Unable to find build script at D:\Test\apache-ant\JmeterTest\build.xml
[htmlpublisher] Archiving HTML reports...
[htmlpublisher] Archiving at PROJECT level D:\Test\apache-ant\JmeterTest\resultLog\html to /root/.jenkins/jobs/jmeter/htmlreports/Report
ERROR: Specified HTML directory 'D:\Test\apache-ant\JmeterTest\resultLog\html' does not exist.
Finished: FAILURE

后来才知道脚本是需要在远端的jenkins服务器上跑的,所以需要在jenkins的服务器上也需要配置,而且jenkins配置的内容都是服务器的地址文件,所以报错是必然的(当然一开始我是不知道的)

下文:https://blog.csdn.net/be_x_man/article/details/81075197

猜你喜欢

转载自blog.csdn.net/be_x_man/article/details/80997740