必威体育Betway必威体育官网
当前位置:首页 > IT技术

Jmeter4.0+Ant集成 build.xml高级配置

时间:2019-09-26 15:42:12来源:IT技术作者:seo实验室小编阅读:79次「手机版」
 

build.xml

  1. 批量执行某一目录下多个测试脚本,build.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
      <tstamp>
        <format property="time" pattern="_yyyy_MMdd_HHmmss" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->  
    <property name="jmeter.home" value="E:\jmeter" />
    <property name="report.title" value="接口测试"/>
    <!-- jmeter生成jtl格式的结果报告的路径--> 
    <property name="jmeter.result.jtl.dir" value="F:\demo\jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="F:\demo\html" />
    <property name="detail" value="_detail" />
    <!-- 生成的报告的前缀-->  
    <property name="ReportName" value="SmokeReport" />
    <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="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="F:\demo" includes="*.jmx" />

            <property name="jmeter.save.saveservice.output_format" value="xml"/>
        </jmeter>
    </target>

    <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="showData" expression="${show-data}"/>
              <param name="titleReport" expression="${report.title}"/>
              <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>
  1. 执行多个目录的jmx脚本

<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
    <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
    <testplans dir="E:\jmeter\script_smoke" includes="*.jmx" />

    <property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>

改为

<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
    <!-- 声明要运行的脚本"*.jmx"指包含此目录下的所有jmeter脚本-->
    <testplans dir="E:\jmeter\script_smoke" includes="*.jmx" />
    <testplans dir="E:\jmeter\script_smoke_two" includes="*.jmx" /><!--增加的这一行-->
    <property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>

注:也可以通过增加<jmeter>标签添加更多的目录,如下图

在这里插入图片描述

  1. 生成多个html报告

    这里是生成两个,一个简单的汇总报告,一个详细的报告(用于定位接口报错)

    build_smoke_report.xml文件只利用jmeter-results-detail-report_21.xsl生成了一个html报告,想利用jmeter-results-shanhe-me.xsl生成第二个

    1、 添加属性值

<property name="detail" value="_detail" />
<property name="jmeter.result.jtlNamedetail" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlNamedetail" value="${jmeter.result.html.dir}/${ReportName}${time}${detail}.html" />

新增一个标签,然后把里面用到的属性值定义好

在这里插入图片描述

PS:

使用jmeter-results-shanhe-me.xsl的一些前置操作

1、下载style文件:jmeter.results.shanhe.me.xsl

2、把下载的文件放到jmeter的extras目录下。

3、修改jmeter.properties文件如下部分,我这里都修改成true,这样执行完脚本后就会保存这些结果到.jtl文件里面,重启jmeter生效:

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=false
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=false
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

其实XSL语法跟XML挺像的,多看看我们可以进行定制,如定义接口排序,扩展性能指标,那样我们性能测试也能利用这个生成报告,响应时间超过3秒的接口标黄显示,直观显示接口响应的性能状态,主要还是看公司的业务需求。

相关阅读

电脑关闭蓝灯Lantern后无法连接到网络该怎么解决?

相信不少Lantern用户会遇到:不打开Lantern无法连接到互联网,QQ却可以登录,浏览器上网时报错等问题。其实这是由于Lantern未完全退出

Jmeter之 BeanShell Sample 的使用说明

查阅Jmeter组件使用参考地址 -----  http://jmeter.apache.org/usermanual/component_reference.html  BeanShell Sample 是一

Ant Download Manager怎么使用?

Ant Download Manager怎么使用?Ant Download Manager是一款功能强大的要下载神器,具体应该如何操作来完成下载呢?小编今天就为大家图

红巨星特效插件套装Red Giant VFX Suite中/英安装激活

Red Giant VFX Suite是一款专为需要强大、快速和专业工具的视觉效果艺术家而构建的插件套装,它是一组用于特效合成的常用VFX工具。

解决 Ubantu E:无法修正错误 问题

本人实习生 小白,看到公司不少人在使用Ubantu ,于是闲余时间 安装了个ubantu 虚拟机  但是问题多多:如下 1.输入  apt-get install

分享到:

栏目导航

推荐阅读

热门阅读