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

自定義取樣器

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

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

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

測試數(shù)據(jù)庫

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

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

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

結(jié)束語

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

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

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

參考資料

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

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