讓開發自動化: 自動負載測試(2)

發表于:2014-11-27來源:uml.org.cn作者:Paul Duvall點擊數: 標簽:自動負載測試
在清單 1 中,我使用 Ant 的 taskdef 任務定義 JMeter 任務,我將其命名為 jmeter,這樣我可以在該 Ant 腳本的其他地方使用它。要使用該腳本,您的 Ant 類路徑中

  在清單 1 中,我使用 Ant 的 taskdef 任務定義 JMeter 任務,我將其命名為 jmeter,這樣我可以在該 Ant 腳本的其他地方使用它。要使用該腳本,您的 Ant 類路徑中必須存在 ant-jmeter.jar 文件(請參閱 參考資料 獲得下載鏈接)。

  清單 1. 在 Ant 中定義 JMeter 任務

<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>

  清單 2 中的示例代碼運行一個 JMeter 負載測試 BreweryTestPlan.jmx。要運行某個目錄中的所有測試,只需輸入 *.jmx,而不是特定的文件名。jmeter 任務所需的屬性為 jmeterhome、testplan(s)以及 resultlog 或 resultlogdir。(清單 2 未顯示 resultlogdir,因為它使用 resultlog。)

  清單 2. 從 Ant 運行 JMeter

<jmeter
  jmeterhome="${jmeter.home}"
  resultlog="${basedir}/target/JMeterResults.xml">
  <testplans dir="${basedir}/tests/load" includes="BreweryTestPlan.jmx"/>
</jmeter>

  清單 2 中的 Ant 代碼創建了一個名為 JMeterResults.xml 的輸出文件,用于創建 HTML 報告。

  使用 XSLT 呈現報告

  將 JMeterResults.xml 文件作為清單 3 中的 xslt Ant 任務的輸入,可以為清單 2 中運行的所有 JMeter 測試生成一個 HTML 報告。在 JMeter extras 目錄中提供的 XSL 樣式表(jmeter-results-detail-report_21.xsl)用于將 JMeterResults 文件轉換為 HTML。

  清單 3. 使用 XSLT 創建 JMeter HTML 報告

<xslt in="${basedir}/target/JMeterResults.xml"
  out="${basedir}/target/JMeterResults.html"
  style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>

  JMeter 也提供了一個不太詳細的 XSL 樣式表文件,用于總結負載測試的結果。

  在 HTML 中顯示報告

  圖 2 是一個使用清單 3 中的 xslt 任務生成的 HTML 報告的例子。它顯示了每個運行的負載測試,以及測試狀態、時間和所有測試的聚合狀態和時間。

  圖 2. 生成 JMeter HTML 報告

生成 JMeter HTML 報告

  稍后我將在本文中向您展示如何從 CruiseControl Continuous Integration (CI) 服務器(請參閱 參考資料)中顯示這些報告。

  向 JMeter 傳遞參數

  根據您運行的測試類型,您可能想要傳遞參數和屬性,以改變單個測試或一組測試執行的方式。例如,清單 4 展示了如何增加 JVM 內存并指定線程和循環的數量:

  清單 4. 向 JMeter 傳遞可選參數和屬性

<jmeter
  jmeterhome="${jmeter.home}"
  resultlog="${basedir}/target/JMeterResults.xml">
  <jvmarg value="-Xincgc"/>
  <jvmarg value="-Xmx128m"/>
  <jvmarg value="-Dproperty=value"/>
  <property name="request.threads" value="5"/>
  <property name="request.loop" value="50"/>
  <property name="jmeter.save.saveservice.assertion_results" value="all"/>
  <property name="jmeter.save.saveservice.output_format" value="xml"/>
  <testplans dir="${basedir}/tests/load" includes="BreweryTestPlan.jmx"/>
</jmeter>

  可以使用很多內置的其他參數和屬性來修改 JMeter 測試運行的方式(有關詳細信息,請參閱 參考資料)。

  在執行負載測試的方式上,使用參數和屬性提供了一定的靈活性,但是它不能解決如何在不同的目標環境中運行負載測試的問題,比如測試和驗證環境。要向測試計劃添加特定于環境的信息,您需要在 .jmx 文件中放入一些記號,以便當負載測試在自動構建腳本中運行時可以對 .jmx 文件進行過濾和修改。

  及時負載測試

  使用自動構建運行負載測試時,將其安排為按某個周期運行,比如每晚運行一次。您可以使用 CI 或構建管理服務器來實現。

原文轉自:http://www.uml.org.cn/Test/200806101.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97