您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
通過JMeter和Ant實現(xiàn)自動負(fù)載測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2012/12/27 13:45:58 ] 推薦標(biāo)簽:

  Stelligent公司CTO Paul Duvall在“人性自動化(Automation for the people)”系列文章中提到,如何把JMeter和Ant跟持續(xù)集成服務(wù)器集成到一起,讓開發(fā)者快速地決斷開發(fā)的系統(tǒng)在特定負(fù)載條件下的行為是否正確,及其是否適應(yīng)所做的修改。Duvall首先列舉了一些這類測試所能度量的標(biāo)準(zhǔn): 有多少并發(fā)用戶能夠訪問你的軟件系統(tǒng)? 可以加載多少數(shù)據(jù)而不會導(dǎo)致性能下降? 系統(tǒng)的吞吐量需求是怎樣的? 這些需求的測試周期有多久? 如果你能確定并驗證每天至少滿足一次負(fù)載和性能的需求,那會怎樣?

    Duvall補(bǔ)充道,CI(持續(xù)集成)服務(wù)器計劃執(zhí)行的自動化測試每天可以在機(jī)器利用率較低的時候運(yùn)行,同時,這也可以“減少當(dāng)你依賴個人來配置和運(yùn)行這些測試時所導(dǎo)致的瓶頸和錯誤”。他描述了建立這樣一個環(huán)境所需的主要步驟有:

1. 運(yùn)行JMeter并創(chuàng)建一個測試計劃。

    JMeter是Apache項目,是用來負(fù)載功能測試和性能測試的Java工具。它同時提供GUI和命令行兩種調(diào)用方式,可以執(zhí)行由測試計劃定義的各種負(fù)載測試。它附帶的測試計劃范例包括Web測試計劃,F(xiàn)TP測試計劃,Web service測試計劃等等。這些測試計劃可以通過GUI接口搭建,后以XML格式的保存。這樣一來,它將所需配置的值進(jìn)行參數(shù)化,用戶因此可以定制運(yùn)行測試的方式。

2. 使用Ant驅(qū)動JMeter測試。

    在已經(jīng)寫好的實現(xiàn)的基礎(chǔ)上,定義一個JMeter的Ant任務(wù),比如"<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>",然后從Ant運(yùn)行JMeter的負(fù)載測試。Duvall提供了一個在BreweryTestPlan.jmx文件(測試計劃的XML格式)中定義的測試搭建示例:

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

3. 通過XSLT和HTML修飾測試結(jié)果報告。

    Duvall接著演示了測試的輸出結(jié)果——JMeterResults.xml——它可以通過JMeter的extras目錄中提供的XSLT腳本將該結(jié)果轉(zhuǎn)換成HTML報告。生成的報告上顯示了每次負(fù)載測試運(yùn)行的結(jié)果,包括測試狀態(tài)、時間、集合狀態(tài)以及所有測試花費的時間。

4. 定制JMeter測試。

    運(yùn)行測試的方式可以通過修改參數(shù)和屬性來進(jìn)行定制。為了讓測試適應(yīng)特定環(huán)境的需求(比如測試或者分段),用戶可以在.jmx文件中標(biāo)記一些記號,然后在運(yùn)行該測試之前,根據(jù)環(huán)境需要對這些記號進(jìn)行過濾和修改。Duvall還演示了如何增加JVM內(nèi)存并指定線程和循環(huán)的數(shù)目。

5. 在CI環(huán)境中集成JMeter測試。

    Duvall提供了一個與持續(xù)集成服務(wù)器CruiseControl集成的例子:在每天上午11點時運(yùn)行build:

...<modificationset>
  <svn repositorylocation="${svnrepo.location}">
  <timebuild time="2300"/>
...
   </svn>
</modificationset>

    如果在CruiseControl的config.xml文件中添加幾行適當(dāng)?shù)拇a,JMeter的測試結(jié)果報告可以在CruiseContrl項目的dashboard中看到。

    Krik Pepperdine在InfoQ上的文章迭代、自動化和持續(xù)性能(Iterative, Automated and Continuous Performance)中談及了持續(xù)性能[測試](Continuous Performance),Steve Haines的持續(xù)性能管理(continuous performance management presentation,可下載ppt)中也涉及到了這個話題。

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd