『壹』 如何使用loadrunner對伺服器進行性能測試
使用LR對資料庫進行性能測試,實際上有多種辦法,包括通過現有的資料庫協議進行CS模式的先錄制後執行的模式,以及通過socket方式向伺服器發包方式的測試方式。這些是常規書籍上介紹的比較簡單上手的測試方法,但是不具備通用性,受已有協議或socket編程方式的限制,所以需要更為通用的測試方法。
用java user的協議進行所有資料庫性能的測試工作:
Java user 不需要錄制,把所有的操作通過java語言進行實現,通過lr調用java的class進行加壓批量操作,這樣可以不關心被測系統是哪個資料庫,只要能夠通過jdbc進行訪問,就能實現性能測試。
一、測試環境准備
1. 被測伺服器准備,根據測試目的,搭建需要的資料庫伺服器,確保資料庫能夠正常訪問,正常操作;
2. Java代碼的准備,無論使用哪種IDE,只要能夠編寫訪問資料庫的class就可以,形式可以是j2se,也可以是j2ee,因為在操作時只使用class的部分方法,所以j2ee就可以了;
3. LR的腳本調試,把java的class導入到腳本調試模式,根據需要添加事務以及其他操作。
二、編寫資料庫訪問
1. 使用myeclipse,創建web project,創建如下圖的包目錄:
Java文件中包含各種訪問資料庫的方法。
需要注意的是,class中的方法必須是public static,否則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對資料庫進行訪問,因此要在java user中載入jdbc驅動。
運行時設置中,增加jdbc驅動,需要注意的是java user使用的本地jdk,需要至多1.6版本,若使用1.7版本,回放會有錯誤,這是jdk版本的問題。
操作完成之後,按F5或點擊運行,進行腳本回放,實際此時也對資料庫進行了操作,可以直接查詢對應的表,檢查功能是否正確。
三、執行性能測試
已經有了java user的腳本,和普通web性能測試一樣,設計場景、執行測試、收集報告、分析性能瓶頸即可。