ant/jmeter

最近在使用jmeter寫腳本來進行測試,最終寫了很多份腳本,然後,就在想,這麼多腳本,我不可能一個一個的手動去點啊,有沒有什麼辦法來批量運行Jmeter腳本呢?

這個時候,自然而然地想到了萬能的ant,希望它能有相應的jmeter task。 

哎,哎,查了一下,還真有,爽歪歪啊。

 

下面簡單說明一下,如果使用:

① 首先,爲了能夠在ant中使用jmeter task,必須將“ant-jmeter-1.1.1.jar”這個jar包放到ant的classpath中去。這個jar包位置 jmeter的安裝目錄下的 extras 目錄中。

    PS:可直接將這個jar拷貝至ant安裝目錄下的lib目錄中去就可以了。

② 編寫腳本

    

Ant代碼  收藏代碼
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <project name="ant-jmeter-test" default="all" basedir=".">  
  4.     <tstamp>  
  5.         <format property="time" pattern="yyyyMMddhhmm" />  
  6.     </tstamp>  
  7.     <!-- 需要改成自己本地的 Jmeter 目錄-->  
  8.     <property name="jmeter.home" value="F:\xxxxx\Jmeter" />  
  9.     <!-- jmeter生成jtl格式的結果報告的路徑-->  
  10.     <property name="jmeter.result.jtl.dir" value="F:\xxxxx\resultLog\jtl" />  
  11.     <!-- jmeter生成html格式的結果報告的路徑-->  
  12.     <property name="jmeter.result.html.dir" value="F:\xxxxx\resultLog\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="all">  
  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:\test_case_path" includes="*.jmx" />  
  28.         </jmeter>  
  29.     </target>  
  30.           
  31.     <target name="report">  
  32.         <xslt in="${jmeter.result.jtlName}"  
  33.               out="${jmeter.result.htmlName}"  
  34.               style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" />  
  35.           
  36.         <!-- 因爲上面生成報告的時候,不會將相關的圖片也一起拷貝至目標目錄,所以,需要手動拷貝 -->  
  37.         <copy todir="${jmeter.result.html.dir}">  
  38.             <fileset dir="${jmeter.home}/extras">  
  39.                 <include name="collapse.png" />  
  40.                 <include name="expand.png" />  
  41.             </fileset>  
  42.         </copy>  
  43.     </target>  
  44. </project>  

 

③ 生成的結果報告如下圖



 

 

④ 下面說一個,我在使用過程中遇到的一個問題: 就是在執行 最後生成報告的 task 時,一直報下面這個錯:

    TransformerException,  Content is not allowed in prolog.

後來在ant-jmeter官網上查到了原因: 

Java代碼  收藏代碼
  1. Note: As of JMeter 1.9RC2(?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report:  

 所以需要修改Jmeter的一個配置 

Java代碼  收藏代碼
  1. jmeter.save.saveservice.output_format=xml  

 然後就可以正常生成報告了啊

 

附: ant-jmeter官網:  http://www.programmerplanet.org/projects/jmeter-ant-task/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章