ANT批量执行Jmeter脚本

一、环境准备: 

    命令行输入:java -version,出现如下提示说明安装成功 

   

: VJsersX 
'>äaua —version 
•aua version "1.6.ø_2W' 
aua(TM) SE Runtime Environment (build I .6 
aua Hotspot(rm) Client um (build 16.3-bßl. 
Ø_2ø-bØ2) 
mixed node. 
sharing)

  2、ANT下载:http://ant.apache.org/bindownload.cgi 

    命令行输入:ant -v,出现如下提示说明安装成功 

   

: VJsersXI.— 
...3>ant —u 
pache Ant version I.?.ø compiled on 
uiIdFiIe: build.xml does not exist! 
uiId Failed 
December 13 
2 006

  4、将 jmeter的extras目录中ant-jmeter-1.1.1.jar包拷贝至ant安装目录下的lib目录中 

  5、修改Jmeter的bin目录下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml   

   

二、Jmeter脚本: 

  1、如何编写脚本请参见:http://www.cnblogs.com/puresoul/p/4740436.html 

   2、脚本目录:D:\apache-jmeter-2.13\demo 

   

DataValume (D:) 
apache-jmeter-2.13 
build.xml 
Googleljmx 
demo 
2015-09-14 22:59 
2015-09-14 22:26 
2015-09-14 20:08

  3、脚本内容: 

  测试百度.jmx                    Google1.jmx 

   

0 到 计 老 
HTTPE家默认愾 
脚 HTTP Cookie 甘 过 
0 
一 河 匿 1 
孬 响 老 断 
》 老 环 控 器 〔 3 次 } 
/ 《@芎塵2 
夕 河 试 3 
孬 响 老 酽 
孬 · 卫 到 达 式 器 
/ 咿 河 过 匿 4

   

0@廾老 
到 TTP 满 家 默 认 匾 
HTTP c 管 器 
, 0 仅 一 次 控 到 器 
孬 G 開 1 
汾 老 环 控 到 器 〔 3 次 }

  

三、build.xml代码:  

1 <?xml version="1.0" encoding="UTF-8"?> 
2  
3 <project name="ant-jmeter-test" default="run" basedir="."> 
4     <tstamp> 
5         <format property="time" pattern="yyyyMMddhhmm" /> 
6     </tstamp> 
7     <!-- 需要改成自己本地的 Jmeter 目录-->   
8     <property name="jmeter.home" value="D:\apache-jmeter-2.13" /> 
9     <!-- jmeter生成jtl格式的结果报告的路径-->  
10     <property name="jmeter.result.jtl.dir" value="D:\apache-jmeter-2.13\demo\report\jtl" /> 
11     <!-- jmeter生成html格式的结果报告的路径--> 
12     <property name="jmeter.result.html.dir" value="D:\apache-jmeter-2.13\demo\report\html" /> 
13     <!-- 生成的报告的前缀-->   
14     <property name="ReportName" value="TestReport" /> 
15     <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" /> 
16     <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /> 
17      
18     <target name="run"> 
19         <antcall target="test" /> 
20         <antcall target="report" /> 
21     </target> 
22      
23     <target name="test"> 
24         <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" /> 
25         <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}"> 
26              <!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本--> 
27             <testplans dir="D:\apache-jmeter-2.13\demo" includes="*.jmx" /> 
28  
29        <property name="jmeter.save.saveservice.output_format" value="xml"/> 
30  
31         </jmeter> 
32     </target> 
33          
34     <target name="report"> 
35         <xslt in="${jmeter.result.jtlName}" 
36              out="${jmeter.result.htmlName}" 
37              style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /> 
38                 <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->  
39         <copy todir="${jmeter.result.html.dir}"> 
40             <fileset dir="${jmeter.home}/extras"> 
41                 <include name="collapse.png" /> 
42                 <include name="expand.png" /> 
43             </fileset> 
44         </copy> 
45     </target> 
46 </project> 

  

四、运行脚本: 

 1、cmd进入脚本目录:D:\apache-jmeter-2.13\demo 

 2、输入:ant  或 ant run(run为build.xml中的task名),执行结果: 

复制代码

D:\apache-jmeter-2.13\demo>ant 
Buildfile: build.xml 
 
all: 
 
test: 
   [jmeter] Executing test plan: D:\apache-jmeter-2.13\demo\Google1.jmx ==> D:\apache-jmeter-2.13\demo\report\jtl\TestReport201509141114.jtl 
   [jmeter] Creating summariser <summary> 
   [jmeter] Created the tree successfully using D:\apache-jmeter-2.13\demo\Google1.jmx 
   [jmeter] Starting the test @ Mon Sep 14 23:14:32 CST 2015 (1442243672984) 
   [jmeter] Waiting for possible shutdown message on port 4445 
   [jmeter] summary +      1 in     1s =    1.9/s Avg:   248 Min:   248 Max:   248 Err:     1 (100.00%) Active: 1 Started: 1 Finished: 0 
   [jmeter] summary +      5 in     1s =    7.8/s Avg:   119 Min:   107 Max:   137 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1 
   [jmeter] summary =      6 in   1.2s =    5.2/s Avg:   140 Min:   107 Max:   248 Err:     1 (16.67%) 
   [jmeter] Tidying up ...    @ Mon Sep 14 23:14:34 CST 2015 (1442243674232) 
   [jmeter] ... end of run 
   [jmeter] Executing test plan: D:\apache-jmeter-2.13\demo\测试百度.jmx ==> D:\apache-jmeter-2.13\demo\report\jtl\TestReport201509141114.jtl 
   [jmeter] Creating summariser <summary> 
   [jmeter] Created the tree successfully using D:\apache-jmeter-2.13\demo\测试百度.jmx 
   [jmeter] Starting the test @ Mon Sep 14 23:14:35 CST 2015 (1442243675376) 
   [jmeter] Waiting for possible shutdown message on port 4445 
   [jmeter] summary +      1 in   0.5s =    2.1/s Avg:   196 Min:   196 Max:   196 Err:     0 (0.00%) Active: 1 Started: 1 Finished: 0 
   [jmeter] summary +      5 in     1s =    8.4/s Avg:   113 Min:   107 Max:   133 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1 
   [jmeter] summary =      6 in   1.1s =    5.6/s Avg:   126 Min:   107 Max:   196 Err:     0 (0.00%) 
   [jmeter] Tidying up ...    @ Mon Sep 14 23:14:36 CST 2015 (1442243676535) 
   [jmeter] ... end of run 
 
report: 
     [xslt] Processing D:\apache-jmeter-2.13\demo\report\jtl\TestReport201509141114.jtl to D:\apache-jmeter-2.13\demo\report\html\TestReport201509141114.html 
     [xslt] Loading stylesheet D:\apache-jmeter-2.13\extras\jmeter-results-detail-report_21.xsl 
     [copy] Copying 2 files to D:\apache-jmeter-2.13\demo\report\html 
 
BUILD SUCCESSFUL 
Total time: 5 seconds 

复制代码

 3、测试报告目录:D:\apache-jmeter-2.13\demo\report\html,其中有一个红色失败的案例是我故意设置失败,以便查看的。  

Load Test Results 
Date report: date not defined 
Summary 
118 ms 
107 ms 
Designed for use with JMeter and Ant. 
# Samples 
Pages 
URL 
Gooalel 
Goog I e 2 
Goog le3 
Goog le4 
Failure Detail 
Failures 
# Samples 
Success Rate 
91.67% 
Su ccess 
Rate 
100.00% 
100.00% 
100.00% 
100.00% 
100.00% 
100.00% 
100.00% 
Average Time 
134 ms 
Average Time 
248 ms 
108 
ms 
134 
ms 
196 
ms 
108 
ms 
133 
ms 
Failure Message 
Min Time 
Failures 
Min 
NaN 
Time 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
Max Time 
NaN 
Max Time 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
NaN 
Google 1 
200 
Response 
0K 
Test failed: text expected to contain

  

  

四:最后,说一个我在使用过程中碰到一个问题,上面build.xml文件第29行有一句必须要加上:<property name="jmeter.save.saveservice.output_format" value="xml"/>,否则会报如下的错误:    

report: 
     [xslt] Processing D:\Tools\apache-jmeter-2.13\demo\report\jtl\TestReport201509210923.jtl to D:\Tools\apache-jmeter-2.13\demo\report\html\TestReport201509210923.html 
     [xslt] Loading stylesheet D:\Tools\apache-jmeter-2.13\extras\jmeter-results-detail-report_21.xsl 
     [xslt] : Error! 前言中不允许有内容。 
     [xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。 
     [xslt] Failed to process D:\Tools\apache-jmeter-2.13\demo\report\jtl\TestReport201509210923.jtl 

 因为不加上这一句,生成的.jtl文件是文本文件不是xml文件,使用xsl去转换.jtl文件时就会报错。 

  

更新补充: 

  上面生成的报告有如下两个问题,解决办法参见Jmeter自带报告优化(一) 

  1、Date report这里的时间没有正确显示出来 

  2、Summary里的字段Min Time和Max Time显示的是NaN,没有显示正确的时间。 

posted @ 2017-11-28 13:30  春田花花同学会  阅读(193)  评论(0编辑  收藏  举报