【正文】
況等。 性能預備測試性能預備測試用于對系統(tǒng)建立直觀的認識,即在正式開始測試之前體驗性地使用SPGEcq客戶端的主要功能。根據用戶體驗,客戶端的所有操作均能在5秒之內完成,響應時間相對較長的是登錄過程。 測試計劃測試計劃階段需要分析用戶活動,確定系統(tǒng)的性能目標。 性能測試領域分析根據對該即時通信系統(tǒng)項目背景的了解,本性能測試要解決的主要問題為:驗證系統(tǒng)是否到了預期的性能指標,能否穩(wěn)定地在當前環(huán)境下運行。這些內容對應于“能力驗證”應用領域,可用壓力測試的方法對其進行性能測試。 用戶活動剖析與業(yè)務建模本研究所描述的即時通信系統(tǒng)的建模主要通過分析用戶活動來體現。在對用戶活動進行建模的過程中,得到了以下數據:(1)平均每天使用該系統(tǒng)的總用戶數約為(2)平均每個用戶的登錄會話時間為4小時,即平均每個用戶在8小時時間內有4個小時處于“使用系統(tǒng)”的狀態(tài)。根據以上數據,用公式()對并發(fā)用戶數進行計算:1604/8=80(人)有了這個參考數據就可以進行測試場景的設計。 確定性能目標本性能測試的應用領域已被確定為“能力驗證”。于是在確定性能目標時,主要圍繞這個方面來討論。最終確定的明確的性能需求如下:(1)系統(tǒng)能夠在高于實際系統(tǒng)運行壓力1倍的情況下,持續(xù)穩(wěn)定工作8小時:持續(xù)穩(wěn)定工作定義為在系統(tǒng)運行期間,系統(tǒng)的可用資源不會出現持續(xù)性減少,客戶端響應速度沒有顯著變化。(2)在發(fā)送消息響應時間要求5秒的情況下,找到系統(tǒng)能夠承受的最大用戶數量:該要求可以給用戶提供一個針對該即時通信系統(tǒng)可擴展性的參考。 性能需求描述 Performance Demand Description需求內容需求詳細描述系統(tǒng)能夠穩(wěn)定運行系統(tǒng)壓力條件:高于實際系統(tǒng)運行壓力1倍系統(tǒng)穩(wěn)定的判定條件:測試過程中,各應用進程的內存使用沒有明顯變化,響應時間和消息處理能力沒有明顯變化測試持續(xù)時間:8小時在消息響應時間要求5秒的情況下,找出系統(tǒng)能夠承受的最大用戶數量方法:以“響應時間大于5秒”作為負載測試的結束條件,獲得系統(tǒng)能夠承受的最大用戶數量對“能力驗證”應用領域來說,本測試需要關注的是消息的響應時間、各服務器的資源使用狀況,結合性能測試需求,性能目標可以定義如下:(1)在典型用戶數量要求的情況下,服務器CPU平均使用率不高于75%,內存使用率不高于75%;(2)在穩(wěn)定性測試的壓力情況下,服務器CPU平均使用率不高于95%,內存使用率不高于90%。 測試設計與開發(fā)對本即時通信系統(tǒng)性能測試而言,測試場景關注用戶接入系統(tǒng)的數量,以場景來體現性能測試的目的和目標。 測試環(huán)境設計本性能測試需要驗證即時通信系統(tǒng)在實際應用部署環(huán)境上的性能,因此,盡可能選擇接近實際生產的環(huán)境來進行測試。由于本測試的環(huán)境就是實際生產環(huán)境,因此在環(huán)境設計上,不需要考慮太多的內容。 測試環(huán)境 Test Environment設備硬件配置軟件設置數據庫服務器HP 8000服務器,磁盤陣列CPU 12*850MHz,24GB內存Asianux server MySQL 應用服務器HP 8000服務器,磁盤陣列CPU 12*850MHz,24GB內存SPGLinux serverOpenfire +Tomcat 性能測試控制臺PC機,160GB 硬盤CPU 2GHz,1GB 內存LoadRunner AnalysisMicrosoft Office Excel負載生產設備PC機,160GB 硬盤CPU 2GHz,1GB 內存Windows XPSPGLinux DesktopLoadRunner Agent。 測試場景設計,可以很容易地為本次測試給出需要的場景。根據上面給出的數據,設定的總并發(fā)用戶數為80。 典型測試場景 Typical Test Scenario場景名稱場景業(yè)務及比例分配測試指標性能計數器系統(tǒng)應用典型場景用戶分配:80用戶增長模式:每15秒增加4個迭代時間間隔:15分鐘運行時間:8小時消息響應時間小于5秒應用服務器的CPU使用率、內存使用率響應時間穩(wěn)定性測試場景用戶分配:典型應用場景用戶數的2倍測試持續(xù)時間:8小時測試過程中,各應用進程的內存使用沒有明顯變化測試過程中,響應時間和業(yè)務處理能力沒有明顯變化應用服務器的CPU使用率、內存使用率響應時間 即時通信系統(tǒng)性能測試評估測試執(zhí)行完成后,通過LoadRunner的Analysis模塊,可以對測試過程中得到的性能數據進行分析。 基礎性能分析。從該關聯圖可以看出,隨著運行用戶數量的階梯式地增長,應用系統(tǒng)性能的變化趨勢也很明顯。 運行虛擬用戶數——平均傳輸響應時間關聯曲線 Running Vusers—Average Transaction Response Time Correlation Curve,Vuser的數量從0至10增加時,各事務的性能表現基本保持穩(wěn)定;當Vuser的數量從10增至30時,事務的響應時間呈緩慢的線性增長狀態(tài);當Vuser的數量超過50時,事務的響應時間急劇增加。根據“性能下降曲線分析法”可以知道,50個用戶為“最佳狀態(tài)下的最大用戶并發(fā)數”。從圖中可以看到,當Vuser增長到50時,基本上所有事務的響應時間都在5秒以內,因此,根據需求和“性能下降曲線分析法”可以得出結論:(1)在“系統(tǒng)應用典型場景”條件下,被測系統(tǒng)在50個并發(fā)用戶的訪問情況下事務響應時間小于5秒。(2)Vuser為50是該系統(tǒng)性能表現的拐點。(3)“文件傳輸”事務是性能相對最差的事務。 建議和結論查看整個測試過程的每秒點擊數以及吞吐量的曲線。 每秒點擊數的曲線圖 The Curve Diagram of Hits per Second 吞吐量的曲線圖 The Curve Diagram of Throughput可以看到在7小時20分左右,吞吐量有一個明顯變低的趨勢,說明此時應用服務器已經遇到了瓶頸。在7小時25分系統(tǒng)的業(yè)務處理能力開始明顯變小,基本上達到預期運行8小時的穩(wěn)定性要求。如果要進一步確定系統(tǒng)的性能瓶頸,可以檢查是否由于應用服務器本身的吞吐量限制,從而決定進一步的調優(yōu)策略。因為需要關注的是實際運行系統(tǒng)的性能,所以客戶端軟件在其中扮演的角色非常重要??蛻舳烁鞴δ苣K的問題導致運行中整個即時通信系統(tǒng)的性能受到影響。在接下來的二次開發(fā)和調優(yōu)中,就要針對客戶端的功能模塊,特別是消息模塊和插件體系進行修改。結束語企業(yè)級即時通信軟件SPGEcq客戶端主要采用Java進行自主研發(fā),基于XMPP的Smack庫和Openfire應用服務器平臺。它減少了企業(yè)級即時通信費用,提高了企業(yè)整體的工作效率,促進了企業(yè)跨平臺軟件的正版化。該客戶端具有以下優(yōu)點:(1)開放源碼SPGEcq客戶端軟件的源代碼遵循GNU較寬松的公共許可證(GNU Lesser General Public License,LGPL),可向任何人提供開放式的訪問。它不僅更易于定制,而且也加強了企業(yè)在所有權環(huán)境下的獨立性。如先前所述,通過以開源許可證的方式來發(fā)布核心代碼和基本模塊,為開發(fā)者社區(qū)提供了一種能夠改善產品并開放給其他用戶使用的機會。鑒于開源代碼開放式訪問的特色,企業(yè)可以輕松并快速地按照自己的需要來定制解決方案,免去了外包定制的昂貴成本和必要性。正是開源的力量使得企業(yè)用戶可以享受到由個人開發(fā)、定制或整合的成果,加速推進基于國產軟件的正版化,通過軟件正版化帶動本國軟件產業(yè)的發(fā)展。(2)功能完善客戶端軟件涵蓋了當前即時通信軟件的基本功能,包括文件傳輸狀態(tài)通知、多用戶群組聊天、對方輸入通知、拼寫檢查等功能特性。它的插件機制允許使用ignite realtime社區(qū)所提供的不同插件。(3)跨平臺由于使用Java語言開發(fā),客戶端源代碼只需使用不同平臺下的打包工具打包后就能跨平臺運行,完全符合企業(yè)轉平臺實施的要求。致謝四年的學習生活即將結束?;厥状髮W生活,我最大的收獲是和其他人的合作。我感到自己力量的藐小,感到合作的重要性,同時也感到合作的快樂。也許當這個項目結束的時候,對我最重要的不是項目的結果,而是整個合作的過程。在這個項目的過程中,我得到了許許多多人的指導和幫助。首先,要感謝李超建老師提供給我這樣一個寶貴的實踐機會,使我能夠參與到這樣一個有意義的項目中。無論是在項目的進展過程中,還是在本文的選題、研究和撰寫的各個階段,都凝聚著他的嚴格要求和悉心指導。在這一年他來對項目的許多具體工作給予了詳細的指導,思想上給了我很多鼓勵,理論方面也提供了很多有益的指導。我要感謝云南省Linux公共服務技術支持中心技術處的所有人。本文中開發(fā)和測試環(huán)境能夠建立是他們大力配合的結果。另外,和他們的接觸使我加深了對中國開源產業(yè)界的了解。我要特別感謝實訓三個月一直無私的關懷和幫助我的同學讓我學到了很多做人的道理。最后我要感謝父母對我在學習和工作期間的關懷和鼓勵,我所有的成績中都有他們的心血。正是他們默默的支持使我能夠全力的投入到學習和工作中。 參考文獻[1] (EIM)軟件的研究與開發(fā)[D] .杭州:浙江工業(yè)大學,2008.[2] Jive Software. Openfire Documentation[DB/OL]. ,20090108.[3] Jabber Software Foundation. Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence[DB/OL]. ,2004.[4] [D].北京:清華大學,2001.[5] [D].蘇州:蘇州大學,2008. [6] E. M. Wong. Method for Estimating the Number of Concurrent Users[DB/OL].,20041014.[7] S. Barber. User experience, not metrics Part 10: Creating a degradation curve[DB/OL].,20040421.[8] [M].北京:清華大學出版社,2006.[9] [M].北京:國防工業(yè)出版社,2003.[10] Jive software. Smack API [DB/OL]. ,2006.[11] Mercury Interactive. LoadRunner Books Online[CP/DK].Mercury CD,20050725.[12] Cay S. Horstmann, Gray Cornell. Core Java[M].Santa Clara:Sun Microsystems,2008.[13] Free Software Foundation. GNU Lesser General Public License[DB/OL]., 1999.[14] [M].北京:科學出版社,2007.[15] [M].北京:清華大學出版社,2005.