Jmeter集成Ant 实现批量执行jmter脚本

Jmeter集成Ant 实现批量执行jmter脚本

一、Ant官方定义

Apache Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 环境中的软件开发。由Apache软件基金会所提供.Ant 也可以有效地用于构建非Java应用程序,例如 C 或 C++ 的应用程序。更一般地,Ant 可以用来驾驶任何类型的能在目标和任务来描述过程。

二、安装Ant

1. 下载链接(解压即可使用)
http://ant.apache.org/bindownload.cgi
2. 配置环境变量
添加一个新的系统变量: ANT_HOME
值为:D:\Program Files\apache-ant-1.10.9
Path中添加:%ANT_HOME%\bin

3. 检查是否安装成功

ant -version

在这里插入图片描述

三、ant+jmeter实现批量执行jmter脚本

1、修改Jmeter目录下的extrasbuild.xml(首先备份*)

需要修改的有以下几行:

  • 第9行:改成自己本地的jmeter目录
    在这里插入图片描述

  • 第11行:改成自己本地的存放生成jtl格式的结果报告的路径
    在这里插入图片描述

  • 第13行:改成自己本地的存放生成html格式的结果报告的路径
    在这里插入图片描述

  • 第46行:声明要运行的脚本,"*.jmx"包含此目录下的所有jmeter脚本或者是指定具体的jmx文件
    在这里插入图片描述

  • 第48-49行:如果你的脚本中存在jmeter属性值的时候可以自定义(没有的话,这几行就不需要)
    在这里插入图片描述

完整的build.xml如下:

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


<project name="ant集成jmeter" default="all">
    <tstamp>
        <format property="time" pattern="yyyyMMddHHmmss"/>
    </tstamp>
    <!-- 改成自己本地的Jmeter目录 -->
    <property name="jmeter.home" value="D:\Program Files\apache-jmeter-5.3"/>
    <!-- jmeter生成jtl格式的结果报告的路径 -->
    <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-5.3\Jmeter_script\results\jtl"/>
    <!-- jmeter生成html格式的结果报告的路径 -->
    <property name="jmeter.result.html.dir" value="D:\apache-jmeter-5.3\Jmeter_script\results\html"/>
    <!-- jmeter生成报告的前缀 -->
    <property name="ReportName" value="ANT_JMETER-测试报告"/>
    <!-- jmeter生成jtl格式的结果文件的名称 -->
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl"/>
    <!-- jmeter生成html格式的结果文件的名称 -->
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html"/>
    <!-- 生成的HTML报告的title -->
    <property name="report.title" value="ant集成jmeter-测试报告"/>


    <!-- 指定ant-jmeter-1.1.1.jar的位置 -->
    <path id="jmeter.classpath">
        <fileset dir="${jmeter.home}\extras">
          <include name="ant-jmeter*.jar"/>
        </fileset>
    </path>

    

    <target name="all" depends="run,report"/>

    <target name="run">
        <taskdef
        name="jmeter"
        classpathref="jmeter.classpath"
        classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
        <jmeter
            jmeterhome="${jmeter.home}"
            resultlog="${jmeter.result.jtlName}">
            <!-- Force suitable defaults -->
            <property name="jmeter.save.saveservice.output_format" value="xml"/>
            <!-- 声明要运行的脚本,".jmx"包含此目录下的所有jmeter脚本 -->
            <testplans dir="D:\Program Files\apache-jmeter-5.3\Jmeter_script" includes="RECORD-10-17-20-11-10-45-AM.jmx"/>
            <!-- 声明ant执行jmeter时,传入jmeter的属性值,可以自定义 -->
            <property name="thread.num" value="${tn}"/>
            <property name="loop.num" value="${ln}"/>
            
        </jmeter>
        <echo>参数信息: 线程数为:${tn},循环次数为:${ln}</echo>
    </target>


    <!-- Use xalan copy from JMeter lib directory to ensure consistent processing with Java 1.4+ -->
    <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>
        <echo>报告生成时间: ${report.datestamp}</echo>
        <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="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>

2、运行ant(需要在build.xml同级目录下进行使用ant命令)
> D:
> cd D:\Program Files\apache-jmeter-5.3\extras
> ant -Dtn=5 -Dln=20

在这里插入图片描述

3、查看生成的jtl报告

在这里插入图片描述

4、查看生成的HTML报告

在这里插入图片描述

四、编写ant-jmeter.bat脚本(编码更改为ANSI)

1、ant-jmeter.bat脚本信息如下
@echo off
title=Jmeter集成Ant运行脚本
color 0A
rem 输出1个空行
for /l %%a in (1 1 1) do echo\
rem set /p=       <nul
echo 系统正在启动...
rem 输出70个|,此处^是转义字符,不然会被认为是管道符被解析
for /l %%i in (1 1 70) do set /p=^|<nul
rem 将光标向前移动70个位置,此处set/p=后面的是一个退格符,在网页上不可见,将代码复制到notepad中就可见到了。
for /l %%i in (1 1 70) do set /p=<nul
rem 依次输出70个>
for /l %%i in (1,1,70) do (
set /p=^><nul
rem 使用ping或者下面的循环都可以,目的就是让循环有延时,有动画的感觉
ping -n 1 -w 1 127.1>nul
rem for /l %%a in (1 1 1000) do ver>nul
)
echo \
echo 启动成功
echo ===========ANT运行jmeter脚本参数准备===========
echo 请输入线程数(整数)set /p threadnum=%1%
echo 请输入循环次数(整数)set /p loopnum=%2%
echo ===========启动ANT运行jmeter脚本===========
echo 线程数为:%threadnum%
echo 循环次数为:%loopnum%
echo ===========执行开始时间:%date% %time%===========
D:
cd D:\Program Files\apache-jmeter-5.3\extras
call ant -Dtn=%threadnum% -Dln=%loopnum%

echo ===========执行结束时间:%date% %time%===========

echo ===========END===========

pause
2、双击即可运行,运行结果如下:

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值