軟件性能測試實戰總結

發表于:2009-03-23來源:作者:點擊數: 標簽:性能測試實戰軟件
其中省掉了復雜的測試編碼過程和描述語言 2.1項目背景 人力資源上線初期,由于全省40多個電業局臨時決定同時集中使用人力資源系統,這是 開發 初期沒有想到的事情,所以用戶剛剛使用就反映整個系統速度很慢,項目組和公司領導層高度重視這個事情,可是究竟慢
其中省掉了復雜的測試編碼過程和描述語言

2.1項目背景
        人力資源上線初期,由于全省40多個電業局臨時決定同時集中使用人力資源系統,這是開發初期沒有想到的事情,所以用戶剛剛使用就反映整個系統速度很慢,項目組和公司領導層高度重視這個事情,可是究竟慢在什么地方呢?是什么原因引起的慢,面對一個這么龐大而復雜的系統,要想找到真正的原因是很難辦到的事情,大家都在懷疑和猜測著?是硬件問題?還是應用服務器慢?還是數據庫服務器慢呢?圍繞這一系列的疑問,性能測試工作緊張又有條不紊的展開了,而測試組擔負著性能測試的主要重擔,于是安排舒文林負責這個事情。


2.2測試流程

        測試組接到任務過后,進行一系列的思考,確定了將整個系統逐步分解的測試辦法,就是先將系統分成幾個大塊,應用服務器,數據庫服務器,客戶端程序;然后再將服務器拆成硬件和軟件;然后逐步將應用軟件劃分成若干邏輯層,測試組舒文林經過和項目組溝通過后,首先找幾個最慢的功能登陸,分頁,人員子集編輯信息,組織機構查詢。通過80人摸擬以上操作同時訪問人力資源系統,在這樣的情況下,我們發現壓力主要集中在數據庫服務器上,值得慶興的是,通過觀察應用服務器CPU,內存,磁盤,網絡等資源,一切正常,所以我們排除了應用服務器引起慢的可能,把注意力集中在數據庫服務器上。

        再觀察數據庫服務器時,我們發現CPU一直處于100%,磁盤I/O很慢,每秒在283K左右。于是直接想到的是換硬件,開發組決定更換磁盤陣列卡,將數據庫服務器改成IBM的高檔小型機。這樣性能得到了一定的提升,但過了不久,用戶又開始有意見了 ,那說明我們現在的系統性能還沒有達到用戶的要求,公司領導層再次組織進行性能測試,說的是一定要挖掘深層次的原因。

        于是測試組又派出了舒文林負責人力資源項目的性能測試,此時項目組要到了驗收的時候了,這不免無形中給測試組增加了很大的壓力, 這個時候Sybase工程師也來了,怎么辦呢?還是老辦法吧,不過這次我們是先從功能作為分解點,先找到最慢的功能,一個一個的測試/首先找到的是登陸,我們把登陸功能按照程序邏輯拆分成若干小的功能,及顯示登陸頁面,權限驗證,加載主菜單、主畫面等,結果發現登陸功能最慢的是加載主菜單和權限驗證這兩塊,消耗了整個登陸功能大部份的時間,那就給開發人員找到了優化的地方,通過使用高速緩存,建立數據庫索引,優化SQL,優化程序等技術手段過后,登陸功能性能提升了一半;最大支持用戶數也由120增加到了200,接下來按照老辦法,開始分頁功能的測試,由于Sybase使用分頁必須使用臨時表,先將要分頁的數據放到臨時表,頁面顯示層再從臨時表里面取出數據填充到客戶端顯示,


        還是先用80個用戶同時使用該系統分頁,并重復迭帶多次,這個時候CPU長時間飽和,客戶端時間很滿,達到70秒,先記錄作為基準測試。
        再看數據庫的各種指標,我們發現數據庫有嚴重的阻塞,終于有了根本性的發現。Sybase工程師想到通過綁定多個臨時表,并通過ASE的同步機制來保持同步,這樣阻塞問題緩解了,響應時間也由70秒降到了30秒。但是當用戶數增加到120的時候,數據庫CPU又是100%,系統又慢了下來,而且系統其它功能也都慢了下來,我們分析了一下,覺得通過增加多個臨時表和多個臨時庫,這樣會不會帶來額外的CPU開銷呢?肯定會的,但這個開銷究竟有好大呢?這是一個還沒有確定的問題?如果CPU開銷小了,系統性能肯定會好起來,因為目前就CPU是個瓶勁。

        這個時候,Sybase工程師說他們已經做到最優化了,而開發人員也覺得他們該做的都做了,那為什么現在系統還慢呢?憑我的經驗,我覺得這筆開銷很大,但我又無法證明這一點,Sybase工程師承認這需要額外的CPU和內存開銷,但究竟多大,也是一個疑問。為了弄清楚這個問題,我們選在在同一臺計算機上將分頁的功能做一個比較,我們拋開應用服務器,通過直接測試分頁腳本,來比較各自的性能。采取在該服務器上全新安裝操作系統和必要的軟件,做成Ghost恢復文件。

        然后分別測試Sybase和Oracle,首先安裝Sybase產品,進行測試后,然后用Ghost恢復系統到初始化環境,安裝Oracle,采用和Sybase相同的測試案例進行測試, 并將oracle和Sybase調整到最優化,最后將兩個測試結果匯總,測試過程忽略不計,結論是Sybase進行翻頁CPU是100,而oracle是25%,Oracle分頁由于有ROWNUM字段,所以不需要使用臨時表,響應時間都在40秒左右,因為我們找的計算機很普通,所以時間長了點,所以我們得出Sybase使用臨時表分頁消耗CPU很大的結論,人力資源系統性能的測試和研究在以后的歷程中,任務將會更加艱巨,我們完全有信心克服困難,戰勝困難,因為我們已經積累了很多經驗。待續。。。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97