LoadRunner JAVA Vuser協議開發效能測試指令碼
引言: 最近效能測試專案中,尤其在測試應用系統介面時,經常用到JAVA VUSER這個協議,請見以下文章,希望對有需要的同學們提供幫助與支援!
眾所周知,Java語言是一門非常適合網路開發的語言,用 Java語言進行效能測試指令碼開發將會大大提高測試開發效率。LoadRunner中提供了對Java虛擬使用者的支援。Java虛擬使用者依託於JDK,這大大擴充了LoadRunner的指令碼開發功能。測試人員既可以用Java虛擬使用者來測試基於Java的應用系統的效能,又可以使用Java語言的強大開發指令碼功能來測試其他平臺的系統效能。
本章將和讀者一起探索LoadRunner的Java世界,重點討論如何開發Java自定義的虛擬使用者指令碼。本章主要內容如下:
n 認識Java虛擬使用者
n Java指令碼開發基礎
n Java演算法測試案例
7.1 認識Java虛擬使用者
7.1.1 Java虛擬使用者協議
Java虛擬使用者指令碼主要有Java Vuser、Corba-Java、RMI-Java、EJB等型別。這些型別的虛擬使用者指令碼均可以用Java語言來手工編寫。下面將對各類Java虛擬使用者簡單地進行介紹。
Java Vuser
Java Vuser是自定義的Java虛擬使用者指令碼,指令碼中可以使用標準的Java語言。這種虛擬使用者不可以錄製,只能採用純手工編寫,其適用範圍和C Vuser一樣,非常廣泛。
本章主要探討Java Vuser的開發方法。
Corba-Java
Corba-Java型別的虛擬使用者主要用來測試用Java編寫的、使用Corba應用程式或小程式的效能,使用者可以先執行VuGen錄製的指令碼,然後使用標準的Java庫函式以及LoadRunner特有的Java方法來增強該指令碼。
RMI-Java
RMI-Java 虛擬使用者適用於測試RMI(遠端方法呼叫)Java應用程式或小程式。選擇RMI-Java 使用者進行錄製,VuGen可以建立對應的Java指令碼。完成錄製後,可以使用JDK或自定義類,通過標準的Java程式碼來增強或修改指令碼,還可以通過特定於LoadRunner的Java方法增強該指令碼。
EJB
EJB虛擬使用者專門用於測試Enterprise Java Beans物件。採用EJB協議,VuGen會自動建立指令碼以測試EJB功能,無需錄製或程式設計,這和標準的Java Vuser明顯不同。
在使用EJB協議型別的虛擬使用者生成指令碼前,需要指定 JNDI屬性和關於應用程式伺服器的其他資訊。LoadRunner的EJB檢測器首先掃描應用程式伺服器並確定哪些EJB可用;接著選擇要測試的 EJB,LoadRunner將生成要測試每個EJB方法的指令碼,併為每個方法建立事務,便於度量其效能並找出問題。
需要注意的是,建立EJB虛擬使用者測試指令碼必須在應用程式伺服器主機上安裝LoadRunner EJB檢測器,而且檢測器必須處於活動狀態。EJB檢測器是一個獨立的代理程式,必須將其安裝在要掃描查詢EJB的每一臺計算機上。安裝EJB檢測器前,計算機上還需要安裝有效的JDK環境。
本書中將以Java Vuser為例來講解Java虛擬使用者的開發和使用方法。Corba-Java、RMI-Java、EJB、Jacada Vuser等型別的虛擬使用者使用方法可以參考LoadRunner的聯機幫助手冊,但是其手工指令碼的開發方法與Java Vuser是一樣的。
在“新建虛擬使用者”對話方塊中的“自定義”或“全部協議”類別下選擇“Java Vuser”即可建立空的Java Vuser指令碼,如圖7-1所示。
在自動生成的指令碼中,vuser_init、 vuser_end部分沒有任何內容,Actions部分生成的指令碼如圖7-2所示。對於Java型別的虛擬使用者,可以編輯Actions類,而 init、end部分則不可以進行編輯。在Actions類中,有三個方法init、action和end,通常在init方法中編寫初始化程式碼、在 action方法中編寫業務流程、在end方法中編寫諸如釋放資源之類的程式碼。
Java Vuser指令碼中可以放置任何標準Java程式碼,這也是Java虛擬使用者的魅力所在。
7.1.2 Java虛擬使用者適用範圍
LoadRunner完全支援C語言,原則上可以用C語言實現任何想要錄製的功能。但是C語言的特點決定了這樣做是不現實的:一是效能測試指令碼開發成本非常高;二是很多企業的測試人員開發基礎不好。因此,效能測試開發多選用C++、C#、Java等面嚮物件語言——因為這類語言既有成熟的整合開發工具,又有龐大的類庫來支撐,測試指令碼開發速度會更快。下一章將重點介紹如何用.NET來開發效能測試指令碼。
Java虛擬使用者適用範圍非常廣,歸納起來主要有兩大類:一類是不太適合錄製的業務功能點的效能測試,例如網頁上Http檔案的下載過程、視訊播放等;另一類是基於Java語言開發的應用系統的效能測試,這類應用更適合採用Java虛擬使用者進行測試。
用Java Vuser實現無法錄製的測試需求
這類測試需求往往關注於對伺服器產生的壓力,重點測試在一定壓力下伺服器的負載情況,為評估、部署、調優系統提供參考。在這類測試工作中,Java的作用僅是一門語言,用於輔助測試人員完成測試程式的開發。
在效能測試工作中,不能錄製的測試點很多,主要有以下幾類:
l 含有控制元件的Web應用
在Web應用中,很多包含一些外掛的瀏覽器應用經常不能錄製。這類應用往往涉及很多協議,因此錄製起來不是特別方便。
對於這類應用,可以用Java語言呼叫其功能來完成使用者行為的模擬。
l 一些和媒體播放、檔案下載等相關的應用
媒體播放或檔案下載等過程的錄製往往不容易控制,如果是應用基於P2P的協議,則會更加複雜。因此,這類測試只能由測試人員開發虛擬使用者指令碼來完成。
用Java Vuser測試基於Java語言的應用系統效能
相比前面,基於Java語言開發的應用系統,在效能測試中採用Java虛擬使用者更顯得“門當戶對”。這類虛擬使用者主要應用在下面兩類測試中:
l 核心演算法或業務的執行效率
對銀行、電信等大型的基於J2EE的架構應用系統中,開發階段的效能測試是必不可少的。為了降低後期遇到效能問題的風險,往往在開發階段進行一些核心業務的效能測試。這些核心業務或要求較高的執行效率,或者要求支援較多使用者的併發。因此,可以利用Java Vuser來測試這些業務的執行效率。
l Java應用中不能錄製的業務模組
很多時候,一些J2EE架構的業務系統用 LoadRunner錄製起來不是特別方便,例如一些Java智慧客戶端程式。這時可以手工編寫測試程式碼,完成測試任務。與非Java應用相比,Java 應用中不能錄製的業務功能更適合採用Java虛擬使用者,因為可以直接對一些方法進行呼叫。
由於Java語言的強大功能,Java虛擬使用者的應用遠不止上面這些,讀者可以慢慢挖掘。
眾所周知,Java語言是一門非常適合網路開發的語言,用 Java語言進行效能測試指令碼開發將會大大提高測試開發效率。LoadRunner中提供了對Java虛擬使用者的支援。Java虛擬使用者依託於JDK,這大大擴充了LoadRunner的指令碼開發功能。測試人員既可以用Java虛擬使用者來測試基於Java的應用系統的效能,又可以使用Java語言的強大開發指令碼功能來測試其他平臺的系統效能。
本章將和讀者一起探索LoadRunner的Java世界,重點討論如何開發Java自定義的虛擬使用者指令碼。本章主要內容如下:
n 認識Java虛擬使用者
n Java指令碼開發基礎
n Java演算法測試案例
7.1 認識Java虛擬使用者
7.1.1 Java虛擬使用者協議
Java虛擬使用者指令碼主要有Java Vuser、Corba-Java、RMI-Java、EJB等型別。這些型別的虛擬使用者指令碼均可以用Java語言來手工編寫。下面將對各類Java虛擬使用者簡單地進行介紹。
Java Vuser
Java Vuser是自定義的Java虛擬使用者指令碼,指令碼中可以使用標準的Java語言。這種虛擬使用者不可以錄製,只能採用純手工編寫,其適用範圍和C Vuser一樣,非常廣泛。
本章主要探討Java Vuser的開發方法。
Corba-Java
Corba-Java型別的虛擬使用者主要用來測試用Java編寫的、使用Corba應用程式或小程式的效能,使用者可以先執行VuGen錄製的指令碼,然後使用標準的Java庫函式以及LoadRunner特有的Java方法來增強該指令碼。
RMI-Java
RMI-Java 虛擬使用者適用於測試RMI(遠端方法呼叫)Java應用程式或小程式。選擇RMI-Java 使用者進行錄製,VuGen可以建立對應的Java指令碼。完成錄製後,可以使用JDK或自定義類,通過標準的Java程式碼來增強或修改指令碼,還可以通過特定於LoadRunner的Java方法增強該指令碼。
EJB
EJB虛擬使用者專門用於測試Enterprise Java Beans物件。採用EJB協議,VuGen會自動建立指令碼以測試EJB功能,無需錄製或程式設計,這和標準的Java Vuser明顯不同。
在使用EJB協議型別的虛擬使用者生成指令碼前,需要指定 JNDI屬性和關於應用程式伺服器的其他資訊。LoadRunner的EJB檢測器首先掃描應用程式伺服器並確定哪些EJB可用;接著選擇要測試的 EJB,LoadRunner將生成要測試每個EJB方法的指令碼,併為每個方法建立事務,便於度量其效能並找出問題。
需要注意的是,建立EJB虛擬使用者測試指令碼必須在應用程式伺服器主機上安裝LoadRunner EJB檢測器,而且檢測器必須處於活動狀態。EJB檢測器是一個獨立的代理程式,必須將其安裝在要掃描查詢EJB的每一臺計算機上。安裝EJB檢測器前,計算機上還需要安裝有效的JDK環境。
本書中將以Java Vuser為例來講解Java虛擬使用者的開發和使用方法。Corba-Java、RMI-Java、EJB、Jacada Vuser等型別的虛擬使用者使用方法可以參考LoadRunner的聯機幫助手冊,但是其手工指令碼的開發方法與Java Vuser是一樣的。
在“新建虛擬使用者”對話方塊中的“自定義”或“全部協議”類別下選擇“Java Vuser”即可建立空的Java Vuser指令碼,如圖7-1所示。
在自動生成的指令碼中,vuser_init、 vuser_end部分沒有任何內容,Actions部分生成的指令碼如圖7-2所示。對於Java型別的虛擬使用者,可以編輯Actions類,而 init、end部分則不可以進行編輯。在Actions類中,有三個方法init、action和end,通常在init方法中編寫初始化程式碼、在 action方法中編寫業務流程、在end方法中編寫諸如釋放資源之類的程式碼。
Java Vuser指令碼中可以放置任何標準Java程式碼,這也是Java虛擬使用者的魅力所在。
7.1.2 Java虛擬使用者適用範圍
LoadRunner完全支援C語言,原則上可以用C語言實現任何想要錄製的功能。但是C語言的特點決定了這樣做是不現實的:一是效能測試指令碼開發成本非常高;二是很多企業的測試人員開發基礎不好。因此,效能測試開發多選用C++、C#、Java等面嚮物件語言——因為這類語言既有成熟的整合開發工具,又有龐大的類庫來支撐,測試指令碼開發速度會更快。下一章將重點介紹如何用.NET來開發效能測試指令碼。
Java虛擬使用者適用範圍非常廣,歸納起來主要有兩大類:一類是不太適合錄製的業務功能點的效能測試,例如網頁上Http檔案的下載過程、視訊播放等;另一類是基於Java語言開發的應用系統的效能測試,這類應用更適合採用Java虛擬使用者進行測試。
用Java Vuser實現無法錄製的測試需求
這類測試需求往往關注於對伺服器產生的壓力,重點測試在一定壓力下伺服器的負載情況,為評估、部署、調優系統提供參考。在這類測試工作中,Java的作用僅是一門語言,用於輔助測試人員完成測試程式的開發。
在效能測試工作中,不能錄製的測試點很多,主要有以下幾類:
l 含有控制元件的Web應用
在Web應用中,很多包含一些外掛的瀏覽器應用經常不能錄製。這類應用往往涉及很多協議,因此錄製起來不是特別方便。
對於這類應用,可以用Java語言呼叫其功能來完成使用者行為的模擬。
l 一些和媒體播放、檔案下載等相關的應用
媒體播放或檔案下載等過程的錄製往往不容易控制,如果是應用基於P2P的協議,則會更加複雜。因此,這類測試只能由測試人員開發虛擬使用者指令碼來完成。
用Java Vuser測試基於Java語言的應用系統效能
相比前面,基於Java語言開發的應用系統,在效能測試中採用Java虛擬使用者更顯得“門當戶對”。這類虛擬使用者主要應用在下面兩類測試中:
l 核心演算法或業務的執行效率
對銀行、電信等大型的基於J2EE的架構應用系統中,開發階段的效能測試是必不可少的。為了降低後期遇到效能問題的風險,往往在開發階段進行一些核心業務的效能測試。這些核心業務或要求較高的執行效率,或者要求支援較多使用者的併發。因此,可以利用Java Vuser來測試這些業務的執行效率。
l Java應用中不能錄製的業務模組
很多時候,一些J2EE架構的業務系統用 LoadRunner錄製起來不是特別方便,例如一些Java智慧客戶端程式。這時可以手工編寫測試程式碼,完成測試任務。與非Java應用相比,Java 應用中不能錄製的業務功能更適合採用Java虛擬使用者,因為可以直接對一些方法進行呼叫。
由於Java語言的強大功能,Java虛擬使用者的應用遠不止上面這些,讀者可以慢慢挖掘。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1384/viewspace-615950/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Jmeter TCP協議效能測試JMeterTCP協議
- 使用Loadrunner進行效能測試
- iOS17 效能測試指令碼iOS指令碼
- Appium iOS 測試指令碼開發實戰APPiOS指令碼
- [python] request 介面測試自動化指令碼轉化為 [locust] 效能測試指令碼Python指令碼
- LoadRunner編寫Socket協議指令碼方法(XML/16進位制報文data.ws格式)協議指令碼XML
- DDS協議解讀及測試開發實踐協議
- 如何學習效能測試?LoadRunner小技巧集錦
- 搬瓦工 VPS 效能一鍵測試指令碼指令碼
- 如何用 JMeter 編寫效能測試指令碼?JMeter指令碼
- 效能測試——壓測工具locust——指令碼初步編寫指令碼
- 測試開發之自動化篇-Appium指令碼開發APP指令碼
- [JPT_05] 效能測試-指令碼開發(登入&隨機購買業務)指令碼隨機
- 測試開發之網路篇-常用服務協議協議
- 測試開發之效能篇-效能測試設計
- Shell指令碼 | 效能測試之啟動時間指令碼
- 使用LoadRunner執行專案效能測試之實操指南
- 效能測試工具LoadRunner你所不知道的內幕
- loadrunner12.6快速實戰之透過抓包來獲取app測試指令碼APP指令碼
- 測試開發之效能篇-JMeter介面測試JMeter
- 效能測試學習筆記:Loadrunner如何進行引數化?筆記
- JMeter做效能測試(1)-效能壓測指令碼的生成以及完善和增強JMeter指令碼
- PYTHON測試指令碼Python指令碼
- LoadRunner測試結果分析(1)
- 效能測試常用工具對比:Jmeter與LoadRunner的異同JMeter
- 影片直播原始碼開發中的流媒體協議:rtmp協議原始碼協議
- 為 java 開發者設計的效能測試框架,用於壓測+測試報告生成Java框架測試報告
- 軟體測試學習教程——LoadRunner實現介面測試
- Jmeter效能測試:高併發分散式效能測試JMeter分散式
- 濤思資料 TDengine 徵稿— 利用python指令碼做TDengine效能測試Python指令碼
- 效能測試必知必會:Shell指令碼設計實踐指南指令碼
- web自動化測試框架-02 快速開發用例文件指令碼Web框架指令碼
- 測試開發之自動化篇-使用Selenium IDE錄製指令碼IDE指令碼
- 阿里雲效能測試服務 PTS 新面貌 - 壓測協議、施壓能力全新升級阿里協議
- 軟體測試學習教程—【效能測試】Webtour系統Jmeter指令碼錄製及編輯WebJMeter指令碼
- Loadrunner效能指標分析指標
- java 效能測試框架工具-junitperfJava框架
- 【效能測試】效能測試各知識第1篇:效能測試大綱【附程式碼文件】
- 介面測試(apipost、jmeter和python指令碼)——測試工具APIJMeterPython指令碼