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

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

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

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

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

2. 使用Ant驅(qū)動(dòng)JMeter測(cè)試。

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

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

3. 通過(guò)XSLT和HTML修飾測(cè)試結(jié)果報(bào)告。

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

4. 定制JMeter測(cè)試。

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

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

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

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

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

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

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