51Testing软件测试论坛

标题: ANT批量执行Jmeter脚本 [打印本页]

作者: 一月蔷薇_456    时间: 2018-2-26 14:34
标题: ANT批量执行Jmeter脚本
本帖最后由 一月蔷薇_456 于 2018-2-27 10:03 编辑

一、环境准备:
  1、Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html
    命令行输入:java -version,出现如下提示说明安装成功
  [attach]111138[/attach]
  2、ANT下载:http://ant.apache.org/bindownload.cgi
    命令行输入:ant -v,出现如下提示说明安装成功
  [attach]111139[/attach]
  3、Jmeter下载:http://jmeter.apache.org/download_jmeter.cgi
  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
  [attach]111140[/attach]
  3、脚本内容:
  测试百度.jmx                    

  [attach]111141[/attach]
Google1.jmx
[attach]111142[/attach]

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

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

2、输入:ant  或 ant run(run为build.xml中的task名),执行结果:
  1. D:\apache-jmeter-2.13\demo>ant
  2. Buildfile: build.xml

  3. all:

  4. test:
  5.    [jmeter] Executing test plan: D:\apache-jmeter-2.13\demo\Google1.jmx ==> D:\apache-jmeter-2.13\demo\report\jtl\TestReport201509141114.jtl
  6.    [jmeter] Creating summariser <summary>
  7.    [jmeter] Created the tree successfully using D:\apache-jmeter-2.13\demo\Google1.jmx
  8.    [jmeter] Starting the test @ Mon Sep 14 23:14:32 CST 2015 (1442243672984)
  9.    [jmeter] Waiting for possible shutdown message on port 4445
  10.    [jmeter] summary +      1 in     1s =    1.9/s Avg:   248 Min:   248 Max:   248 Err:     1 (100.00%) Active: 1 Started: 1 Finished: 0
  11.    [jmeter] summary +      5 in     1s =    7.8/s Avg:   119 Min:   107 Max:   137 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1
  12.    [jmeter] summary =      6 in   1.2s =    5.2/s Avg:   140 Min:   107 Max:   248 Err:     1 (16.67%)
  13.    [jmeter] Tidying up ...    @ Mon Sep 14 23:14:34 CST 2015 (1442243674232)
  14.    [jmeter] ... end of run
  15.    [jmeter] Executing test plan: D:\apache-jmeter-2.13\demo\测试百度.jmx ==> D:\apache-jmeter-2.13\demo\report\jtl\TestReport201509141114.jtl
  16.    [jmeter] Creating summariser <summary>
  17.    [jmeter] Created the tree successfully using D:\apache-jmeter-2.13\demo\测试百度.jmx
  18.    [jmeter] Starting the test @ Mon Sep 14 23:14:35 CST 2015 (1442243675376)
  19.    [jmeter] Waiting for possible shutdown message on port 4445
  20.    [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
  21.    [jmeter] summary +      5 in     1s =    8.4/s Avg:   113 Min:   107 Max:   133 Err:     0 (0.00%) Active: 0 Started: 1 Finished: 1
  22.    [jmeter] summary =      6 in   1.1s =    5.6/s Avg:   126 Min:   107 Max:   196 Err:     0 (0.00%)
  23.    [jmeter] Tidying up ...    @ Mon Sep 14 23:14:36 CST 2015 (1442243676535)
  24.    [jmeter] ... end of run

  25. report:
  26.      [xslt] Processing D:\apache-jmeter-2.13\demo\report\jtl\TestReport201509141114.jtl to D:\apache-jmeter-2.13\demo\report\html\TestReport201509141114.html
  27.      [xslt] Loading stylesheet D:\apache-jmeter-2.13\extras\jmeter-results-detail-report_21.xsl
  28.      [copy] Copying 2 files to D:\apache-jmeter-2.13\demo\report\html

  29. BUILD SUCCESSFUL
  30. Total time: 5 seconds
复制代码


作者: 一月蔷薇_456    时间: 2018-2-26 14:34
本帖最后由 一月蔷薇_456 于 2018-2-27 10:04 编辑

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


[attach]111144[/attach]


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



作者: 梦想家    时间: 2018-2-26 17:25

作者: Miss_love    时间: 2020-12-30 08:46
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2