1. 程式人生 > >使用Loadrunner測試資料庫效能

使用Loadrunner測試資料庫效能

使用LR對資料庫進行效能測試,實際上有多種辦法,包括通過現有的資料庫協議進行CS模式的先錄製後執行的模式,以及通過socket方式向伺服器發包方式的測試方式。這些是常規書籍上介紹的比較簡單上手的測試方法,但是不具備通用性,受已有協議或socket程式設計方式的限制,所以需要更為通用的測試方法。

使用Java user的協議進行所有資料庫效能的測試工作:

Javauser 不需要錄製,把所有的操作通過java語言進行實現,通過lr呼叫java的class進行加壓批量操作,這樣可以不關心被測系統是哪個資料庫,只要能夠通過jdbc進行訪問,就能實現效能測試。

一、測試環境準備

1.        被測伺服器準備,根據測試目的,搭建需要的資料庫伺服器,確保資料庫能夠正常訪問,正常操作;

2.        Java程式碼的準備,無論使用哪種IDE,只要能夠編寫訪問資料庫的class就可以,形式可以是j2se,也可以是j2ee,因為在操作時只使用class的部分方法,所以j2ee就可以了;

3.        LR的指令碼除錯,把java的class匯入到指令碼除錯模式,根據需要新增事務以及其他操作。

二、編寫資料庫訪問

1.        使用myeclipse,建立web project,建立如下圖的包目錄:

Java檔案中包含各種訪問資料庫的方法。

需要注意的是,class中的方法必須是publicstatic,否則LR中無法呼叫。由於建立的是j2ee程式,所以不用main函式,在web中就可以進行功能驗證。

確認class中的方法編寫完成,建立一個web.jsp檔案,如下:

匯入class

宣告類,並例項化,直接呼叫剛才編寫的3個方法,因為這3個方法是直接對資料庫進行操作,不需要實參,也沒有返回值,所以直接實現即可。

此時啟動web服務,在瀏覽器中輸入jsp的地址,直接重新整理頁面,就可以呼叫這3個方法,如果正確,就會對相應的表進行操作,如果不正確,則需要修改相應的程式碼。

2.        LR指令碼準備:

LR指令碼實際上就是對訪問程式碼的呼叫,關鍵在於需要根據測試場景劃分不同的指令碼佈局。

例如:在myEclipse裡,我們只編寫了一個class,其中包含三個方法,如果在執行效能測試時,這三個方法相互獨立,互不干涉,則最簡單的劃分方法是,建立三個java user,每個java user中包含一個方法,做三份指令碼,場景執行時分別進行呼叫。如果三個方法之間有相互關係,則需要根據實際情況,把有關聯的方法放在一起,具體情況可按實際靈活分配。

因為已經將class檔案進行編譯釋出了,所以可以在“java2postgres\WebRoot\WEB-INF\classes\com\lr\test”目錄中找到對應的class檔案,

複製這個檔案,找到LR的目錄:HP\LoadRunner\classes\com\lr\test\如果沒有資料夾,按相同的內容建立。

在LR指令碼中進行引包操作:

 

將需要執行的java類以及方法,放在action中,可根據實際測試情況和所需要驗證的內容,具體除錯程式碼。

在這裡可以像編寫普通LR指令碼一樣,新增事務或集合點等內容。

由於是通過JDBC對資料庫進行訪問,因此要在javauser中載入jdbc驅動。

執行時設定中,增加jdbc驅動,需要注意的是javauser使用的本地jdk,需要至多1.6版本,若使用1.7版本,回放會有錯誤,這是jdk版本的問題。

操作完成之後,按F5或點選執行,進行腳本回放,實際此時也對資料庫進行了操作,可以直接查詢對應的表,檢查功能是否正確。

三、執行效能測試

已經有了java user的指令碼,和普通web效能測試一樣,設計場景、執行測試、收集報告、分析效能瓶頸即可。