您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源性能測(cè)試工具 > Jmeter
JMeter在Web Services性能測(cè)試中的應(yīng)用
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/2/22 13:52:20 ] 推薦標(biāo)簽:

自定義取樣器

  許多測(cè)試人員遲早會(huì)面臨下面這個(gè)問(wèn)題:假如必須要?jiǎng)?chuàng)建測(cè)試計(jì)劃,而JMeter沒(méi)有提供必需的取樣器或監(jiān)聽器。例如,用戶需要測(cè)試Enterprise JavaBeans應(yīng)用程序。用戶仍然可以使用JMeter的Java Request,它實(shí)質(zhì)上是Java類,可以向其添加需要的任何邏輯。我們創(chuàng)建一個(gè)樣本Java取樣器,它將向應(yīng)用程序服務(wù)器發(fā)送請(qǐng)求并調(diào)用會(huì)話bean。首先,我們創(chuàng)建package mytest和稱為JBTest.javaJava的Java類:

  為了使用該代碼,要對(duì)它進(jìn)行編譯以創(chuàng)建jar文件myEJBTest.jar,將jar復(fù)制到JMeter classpath(如lib目錄),或者將classpath位置添加到j(luò)meter.properties 文件——其形式為:

    重新啟動(dòng)JMeter,向測(cè)試計(jì)劃添加Java Request元件,并從下拉菜單中選擇mytest.EJBTest。缺省情況下,JMeter提供的是“SleepTest”和“JavaTest”,F(xiàn)在,我們可以向測(cè)試計(jì)劃添加線程組、循環(huán)和監(jiān)聽器并運(yùn)行測(cè)試計(jì)劃。

測(cè)試數(shù)據(jù)庫(kù)

  Jmeter所支持的另一個(gè)功能是評(píng)價(jià)數(shù)據(jù)庫(kù)服務(wù)器的性能。用戶可以使用軟件提供的JDBC Request元件,也可以使用腳本或Java類來(lái)創(chuàng)建自己的測(cè)試。例如,使用一些與前面類似的示例可以測(cè)試存儲(chǔ)過(guò)程的調(diào)用。許多數(shù)據(jù)庫(kù)優(yōu)化技術(shù)都可以使用,包括使用特定供應(yīng)商優(yōu)化(如查詢的并行處理),使用聯(lián)結(jié)或索引。此外,當(dāng)用多個(gè)boolean評(píng)價(jià)創(chuàng)建查詢時(shí),數(shù)據(jù)組織知識(shí)很有用。在處理大量數(shù)據(jù)時(shí),應(yīng)用程序中的數(shù)據(jù)庫(kù)和查詢優(yōu)化是特別關(guān)鍵的,JMeter是一個(gè)可以在這類評(píng)價(jià)中提供某些評(píng)測(cè)的工具。例如,可以在數(shù)據(jù)或查詢優(yōu)化前后執(zhí)行性能或負(fù)載測(cè)試并對(duì)結(jié)果進(jìn)行比較。

  我們通過(guò)創(chuàng)建MySQL實(shí)例的測(cè)試計(jì)劃來(lái)演示樣本數(shù)據(jù)庫(kù)性能測(cè)量計(jì)劃是如何工作的。首先,從MySQL網(wǎng)站下載JDBC驅(qū)動(dòng)程序,并復(fù)制到/lib目錄以便JMeter可以訪問(wèn)數(shù)據(jù)庫(kù),F(xiàn)在啟動(dòng)JMeter,創(chuàng)建線程組,并設(shè)置循環(huán)數(shù)和相應(yīng)的線程數(shù)。添加JDBC Connection Configuration、JDBC Query Defaults和JDBC Request元件。在這些對(duì)話框中,我們需要配置數(shù)據(jù)庫(kù)連接和查詢。輸入數(shù)據(jù)庫(kù)URL值,它們的形式類似于:jdbc:mysql://hostname/databaseName,然后為JDBC Driver Class輸入com.mysql.jdbc.Driver。針對(duì)這個(gè)試驗(yàn),我們創(chuàng)建了數(shù)據(jù)庫(kù)customers,它帶有包含下列三個(gè)字段的customer表格:名稱、地址和帳戶。在Query框中鍵入查詢,例如,從客戶中選擇名稱。

  為了使結(jié)果可視化,可以添加帶有響應(yīng)時(shí)間的圖表,或者,如果要檢驗(yàn)響應(yīng)是否匹配特定模式,可以添加響應(yīng)斷言。例如,在Response Assertion中添加文本模式“Smith”。在Assertion Result窗口將顯示如“Test failed, text expected to contain /Smith/”之類的錯(cuò)誤,或者,如果由于設(shè)置錯(cuò)誤而沒(méi)有連接,則顯示“Response was null”。如果測(cè)試成功,將不返回任何內(nèi)容。除了圖表和斷言監(jiān)聽器,我們還可以使用Aggregate Report,它以表格的形式顯示樣本數(shù)、平均值、中間值和吞吐量的摘要。

結(jié)束語(yǔ)

  JMeter是一個(gè)十分靈活的工具,它不僅能夠測(cè)試HTTP服務(wù)器,而且還能夠?qū)eb services進(jìn)行負(fù)載測(cè)試。有經(jīng)驗(yàn)的開發(fā)人員可以編寫自己的腳本來(lái)模擬或自定義客戶端請(qǐng)求,或者為測(cè)試結(jié)果添加自定義的可視化效果。Web Services和SOAP取樣器是JMeter的新功能,希望它們能夠隨著Web services而發(fā)展,在行業(yè)和開發(fā)人員中獲得更廣泛的認(rèn)可。

  使用JMeter現(xiàn)有的功能和它所提供的用戶界面,可以模擬5個(gè)并發(fā)線程,以10和5 ms延遲點(diǎn)擊服務(wù)器。本教程說(shuō)明了該工具能夠用于對(duì)Web services的響應(yīng)時(shí)間進(jìn)行測(cè)量的原理。例如,利用JMeter腳本,可以查找客戶端的身份認(rèn)證和授權(quán)。所測(cè)試的應(yīng)用程序服務(wù)器和JMeter客戶端都本地安裝在同一個(gè)工作站,然而同樣的設(shè)置也可以用于測(cè)試遠(yuǎn)程服務(wù)器。

  所得到的結(jié)果和圖表還不能提供有價(jià)值的性能報(bào)告;它們只能說(shuō)明WebLogic Server對(duì)Web Services請(qǐng)求響應(yīng)時(shí)間的簡(jiǎn)單分布。要了解是否實(shí)現(xiàn)了優(yōu)化,應(yīng)當(dāng)在優(yōu)化前后針對(duì)兩個(gè)不同的服務(wù)器,或針對(duì)客戶端線程變量數(shù)的不同負(fù)載來(lái)運(yùn)行相同的負(fù)載測(cè)試。換句話說(shuō),只有比較的結(jié)果才具有實(shí)用價(jià)值,它能夠幫助了解服務(wù)器性能,進(jìn)而基于這些評(píng)測(cè)做出判斷。

參考資料

查看Jakarta Apache JMeter —— 二進(jìn)制發(fā)行版下載和指南。
在Dev2Dev中的產(chǎn)品中心訪問(wèn) WebLogic Server (中文版)。
有關(guān)創(chuàng)建Web services的詳細(xì)信息,請(qǐng)閱讀 Programming Web Services for WebLogic Server 指南(產(chǎn)品文檔)。
Matt Maccaux撰寫的 Approaches to Performance Testing (中文版,Dev2Dev,2005年12月)對(duì)測(cè)試作了全面介紹。

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