Jmeter软件测试必会

JMeter+Ant+Jenkins 自动化测试构建-输出测试报

2018-08-24  本文已影响78人  Fighting_001

Ant用来做项目构建,JMeter中的脚本对应有多个不同项目;Ant可根据JMeter目录中的build.xml配置文件的设置,实现批量执行JMeter中的.jmx脚本,以自动化方式提高测试效率。
因此,build.xml配置文件相当于Ant和JMeter之间的中间桥梁,保持双方联通运作。

自动化测试构建-操作步骤:

Step1:
新建存放测试报告的目录JMeterTest

① 建立JMeterTest在各自设置的某个位置,在其下新建2个目录:ResultLog(存放测试生成的指定格式报告)、Script(存放被执行的.jmx脚本)
② 然后在ResultLog目录下再新建2个子目录:jtl(执行脚本后生成.jtl格式文件)、html(Ant将.jtl格式文件转换为.html的文件报告)

Step2:
利用Badboy录制JMeter脚本xxx.jmx,并将脚本放置到JMeterTest目录下的Script目录之下(...\JMeterTest\Script

Step3:
将JMeter的安装目录下的extas目录(...\apache-jmeter-4.0\extras\)中 ant-jmeter-1.1.1.jar 这个jar包放置(copy)到Ant的安装目录lib目录(...\apache-ant-1.9.13\lib\)之下

作用:
使得Ant运行时能找到org.programmerplanet.ant.taskdefs.jmeter.JMeterTask类,以触发JMeter脚本

Step4:
编辑JMeter的bin目录(...\apache-jmeter-4.0\bin)下的jmeter.properties文件,在其第449行之后添加一行jmeter.save.saveservice.output_format=xml

JMeter输出结果数据默认保存是.csv格式的文件,在此需要设置成.xml格式的文件

Step5:
在路径路径(...\apache-jmeter-4.0\extras\)之下,配置JMeter的 build.xml 配置文件

PS:以备后续可能需要build.xml最初的文件,此处暂且将build.xml复制了一份并命名为 build_JMeter.xml 以作区分,然后根据各自需求单独编辑build_JMeter.xml文件作为本次所需的配置文件

build_JMeter.xml配置文件:

<?xml version="1.0" encoding="utf-8"?>

<project name="Ant_JMeter_Test" default="all" basedir=".">

    <!-- tstamp标签即时间戳,记录构建的时间 -->
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>

    <!-- 定义结果集的相关参数 -->

    <!-- 需要修改为JMeter的安装目录 -->
    <property name="jmeter.home" value="D:\CI_Env\apache-jmeter-4.0" />
    <!-- JMeter生成jtl格式的结果报告的路径 -->
    <property name="jmeter.result.jtl.dir" value="D:\CI_Env\JMeterTest\ResultLog\jtl" />
    <!-- JMeter生成html格式的结果报告的路径 -->
    <property name="jmeter.result.html.dir" value="D:\CI_Env\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脚本 -->
            <!--  以下includes也可以指定具体的某个.jmx脚本 -->
            <testplans dir="D:\CI_Env\JMeterTest\Script" includes="*.jmx" />
        </jmeter>
    </target>
    
    <!-- 生成报告 -->
    <target name="report">
        <xslt
              in="${jmeter.result.jtlName}"  
              out="${jmeter.result.htmlName}"  
              style="${jmeter.home}\extras\jmeter-results-detail-report_21.xsl" /> 
              <!-- style采用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>
配置文件说明:

1.Ant 关键元素
Ant构件文件是基于XML编写的,默认名称为build.xml。project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。以下为project元素的各属性:

属性名 作用
1 name 用于指定project元素的名称
2 default 用于指定project默认所执行的target名称
3 basedir 用于指定JMeter基准路径的位置。该属性没有指定时,使用Ant构件文件的目录作为基准目录

2.target元素
target作为Ant的基本执行单元,它可以包含一个or多个具体的任务。多个target可以存在相互依赖关系。它有target的属性如下:

属性名 作用
1 name 指定target元素的名称。该属性在一个project元素中是唯一的,可以通过指定target元素的名称来指定某个target
2 depends 用于描述target之间的依赖关系。若与多个target存在依赖关系时,需要以英文逗号,间隔。Ant会依照depends属性中target出现的顺序依次执行每个target,被依赖的target会先执行
3 if 用于验证指定的属性是否存在,若不存在,所在target将不会被执行
4 unless 该属性的功能与if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在target将会被执行
5 description 该属性是关于target功能的简短描述和说明

3.property元素
该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。
若要在外部引入某文件,例如build.properties文件,可以通过如下方式引入:<property file="build properties">

Step6:
将配置好的build_JMeter.xml文件放置到Ant目录的bin目录之下(...\apache-ant-1.9.13\bin\),使用Ant编译验证build_JMeter.xml文件

此时,在ant的bin目录下,打开cmd命令窗口,输入命令 ant -buildfile build_JMeter.xml

Ant构建OK 构建生成的.html格式报告文件

Step7:
部署到Jenkins持续集成平台

1.切换到Jenkins存放的文件目录(...\apache-tomcat-9.0.10\webapps\jenkins-2.121.3),在此打开cmd命令窗口,输入命令java -jar jenkins.war --httpPort=8002
(PS:若没有修改过Jenkins的端口号,则默认8080端口,以上命令中就不需要设置--httpPort=8002这部分)

Jenkins启动OK

2.浏览器中访问url= http://localhost:8002/ ,输入其前设置好的用户名和密码进行登录

3.创建新任务:点击【创建一个新任务】-->输入任务名称,选中【构建一个自由风格的软件项目】-->点击【确定】

4.定位到页面底部,在【构建】模块点击【增加构建步骤】-->【Invoke Ant】-->点击【高级】展开隐藏的输入框-->在【Build File】输入框中填写ant目录的bin目录下的build配置文件的绝对路径-->【保存】

5.点击左侧导航栏的【立即构建】,即可调用Ant来执行.jmx脚本,并根据build_JMeter.xml配置文件的设置而生成测试报告

构建完成之后,生成相关构建的历史记录

console控制台输出的构建记录 首页查看构建的项目 构建项目所生成的测试报告

参考来源:
[1] Jmeter+Ant+Jenkins搭建持续集成的接口测试框架

上一篇 下一篇

猜你喜欢

热点阅读