轉:通過ant來批量執行jmeter指令碼,並產生報告(附: 產生報告時報“Content is not allowed in prolog”這個錯誤的解決方案)

來源:互聯網
上載者:User

標籤:

最近在使用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/

轉:通過ant來批量執行jmeter指令碼,並產生報告(附: 產生報告時報“Content is not allowed in prolog”這個錯誤的解決方案)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.