ant之jmeter的build.xml

详解ant命令

这个命令是ant run -f build.xml -D=${time} -DscriptName=${scriptName}

build.xml文件

<?xml version="1.0" encoding="utf-8"?>
<project name="test_jmeter" default="all" basedir=".">
    <property environment="env"/>
    <!-- <tstamp> -->
        <!-- <format property="Ditetime" pattern="yyyyMMddHHmm" /> -->
    <!-- </tstamp> -->
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <!-- property name="jmeter.home" value="${env.JMETER_HOME}" /-->
    <condition property="jmeter.home" value="${JMETER_HOME}" else="/opt/apache-jmeter-5.1.1">
        <isset property="JMETER_HOME" />
    </condition>
    <property name="lib.dir" value="${jmeter.home}\lib" />

    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.history.dir" value="${basedir}\TestHistory" />
    <property name="jmeter.result.Report.dir" value="${basedir}\LoadTestReport" />
        <!-- 表示设置的一些参数-->
    <condition property="time" value="${time}" else="123456789">
        <isset property="time" />
    </condition>
    
    <condition property="scriptName" value="${scriptName}" else="0809.jmx">
        <isset property="scriptName" />
    </condition>

    <target name="show-test-properties">
        <echo>JMETER_HOME               : ${jmeter.home}</echo>
        <echo>TEST_PATH             : ${test.plan.path}</echo>
        <echo>THREADGROUP_COUNT         : ${threadgroup.count}</echo>
        <echo>THREADGROUP_RAMPUP            : ${threadgroup.rampup}</echo>
        <echo>THREADGROUP_DURATION      : ${threadgroup.duration}</echo>
    </target>

    
    <!--表示run的这个命令需要进行的操作,这个xml声名了两个操作,一个是exec标签的执行shell脚本的操作,一个是删除的操作 -->
    <target name="run" depends="show-test-properties">
        <antcall target="delete" />
        <antcall target="JtlMerge" />
    </target>

    <!-- 操作1 这里声名了一个执行shell的操作-->
    <target name="JtlMerge">
        <echo>deploy clean axis service</echo>
        <exec executable="${basedir}/PerformanceTesting.sh" failonerror="true">
       <!--arg value标签表示需要传入的参数,在这里表示给shell脚本传入这俩个参数-->
            <arg value="${time}"/>
            <arg value="${scriptName}"/>
        </exec>
        <copy todir="${jmeter.history.dir}">
            <fileset dir="${jmeter.result.Report.dir}">
                <include name="*${time}*.zip" />
            </fileset>
        </copy>
    </target>
    
    <target name ="delete">
        <delete includeEmptyDirs="true">
            <fileset dir="${jmeter.result.Report.dir}" includes="*.*"/>
        </delete>
    </target>
</project>
其中:
<condition property="time" value="${time}" else="123456789">
        <isset property="time" />
    </condition>
    
    <condition property="scriptName" value="${scriptName}" else="0809.jmx">
        <isset property="scriptName" />
    </condition>
表示声名参数 time 和scriptName 然后在下面引用使用
1.jmeter 命令行执行命令传递参数(shell)
当通过JMeter属性的方法调用变量时,需要修改变量的传入方式。普通的定义变量是:${threadsUsers}的形式。

但是本方法是通过添加JMeter的属性,属性和参数是不同的,因此在调用中采用${__P(threadsUsers)}的形式进行调用。(注意是两个下划线)

这样就可以完成通过命令行的参数,来达到更改脚本中变量的效果了!
例如:此命令
/opt/jmeter/apache-jmeter-3.2/bin/jmeter.sh -n -t $scriptName -Jprotocol=$protocol -JserverUrl=$serverUrl -JdurationTime=$durationTime -JconcurrentNumber=$concurrentNumber -l jtl/HLY-loadTest-$time.jtl -e -o LoadTestReport/HLY-loadTest-$time
其中的参数我们是从build.xml中传递过来的。
但是也要引用:
time=$1
scriptName=$2
protocol=$3
serverUrl=$4
durationTime=$5
concurrentNumber=$6

2.windows批处理的命令参数传递和linux下稍微不同
引用参数使用%参数name%
jmeter -n -t %TestAPI%.jmx -JthreadsUsers=%threadsUsers% -JDuration=%Duration% -l result_output\%TestAPI%.jtl

参考链接:https://www.cnblogs.com/kill0001000/p/8078686.html
         https://www.cnblogs.com/python-xiakaibi/p/10117425.html

3.传递参数-J 和-G的区别
     1、格式:-J变量名=值  -G变量名=值

     2、相同之处:设置jmeter属性,例如线程数、循环次数、ramp up-time等

     3、不同之处:-J是设置本地jmeter属性;-G是设置server的jmeter属性(只有设置了远程机,开启了远程服务,才需要用到-G)

jtl文件转HTML的报告以及非GUI模式下的命令

./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport
./jmeter.sh -n -t test.jmx -l test.jtl -e -o test
-n :  非GUI模式启用命令行
-t :指定脚本位置
-l : 指定结果文件路径生成的jtl文件
-j : 指定日志文件路径
-g : 指定已存在的测试结果文件
-e :测试结果后,生成测试报告
-o : 指定测试报告的存放位置
-o 指定的文件及文件夹,必须 不存在 ,否则执行会失败

jmeter脚本的并发处理

1.首先在build.xml文件里面声名一个操作。
<target name="test">
        <parallel threadCount="10">      
         <antcall target="run_jmeter">
            <param name="Inputparam" value="Script0"/>
         </antcall>
         
         <antcall target="run_jmeter">
            <param name="Inputparam" value="Script1"/>
         </antcall>
         
         <antcall target="run_jmeter">
            <param name="Inputparam" value="Script2"/>
         </antcall>
* parallel是Ant内置任务,用于并行执行嵌套任务, 但不保证线程安全,每个任务都将在其自己的线程中运行。
* 这里声名了10个线程

删除文件的配置

<target name ="delete">
        <delete includeEmptyDirs="true">
            <fileset dir="${jmeter.result.html.dir}" includes="**/*"/>
            <fileset dir="${jmeter.result.jtl.dir}" includes="*Script*"/>
        </delete>
    </target>
* delete是Ant内置任务,用于删除单个文件,一个指定目录的所有文件及其子目录,或者一到多个[资源集合](http://blog.csdn.net/asty9000/article/details/79131324)指定的文件。
* fileset从字面上看是不包括目录的,但是在使用嵌套的文件集元素时可以通过将includeEmptyDirs属性设置为true,来删除空目录。

并发后合并Jtl文件

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容