在清單 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 報告
稍后我將在本文中向您展示如何從 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