【關鍵詞】性能測試性能優化 DBA
隨著項目越來越大,性能問題層出不窮。如何做好性能測試成為測試人員經常討論的話題。很多時候,大家都在疑惑性能測試如何來做,性能標準從那里來,有沒有通用的標準,性能測試由誰來做,如何規劃。首先我們了解一下,什么是性能測試。性能測試的目的:通過性能測試了解系統的性能有沒有滿足需求,對于不滿足需求的模塊則通過測試發現可能的性能瓶頸,并進行相應的性能調優,從而達到最終用戶的要求。由于項目巨大,所以性能測試不僅僅是測試人員的事情,可能需要整個項目組的參與,而測試人員則更需要清晰的了解到性能測試分幾個階段,每個階段如何來做,需要協調那些資源?
在性能測試的每一個階段,性能測試的參與人是不一樣的,下面的圖就是不同階段的人員參與表。

性能測試人員圖
從上圖中可以看出,其實性能測試不是一個人可以搞定的事情,在需求階段,制定性能初步的標準則需要需求人員的協助,了解那些場景是重要的,大約有多少人用,有多大數據量;而在設計場景時不僅要從需求中設計出必需要測試的場景,有時候需要通過功能測試人員了解,他們在測試過程中那些場景運行的比較慢。而運行腳本時,則需要SA(System Administrator系統管理員,編者注),程序員幫你增加分析所需要的性能指標,而DBA(DataBase Administrator數據庫管理員,編者注)則增加數據庫監控的參數。在分析結果的階段則需要三者相互靈活的配合,當發現性能問題時,可能會根據程序員或DBA的要求,不斷的調整監控的參數,以便更精確的定位問題。而在優化階段,則是找出性能的瓶頸并優化,更需要多方的配合,不僅僅是測試。
在性能測試前期,也就是上圖的前三個階段,重點需要了解,系統有那一些重要的功能模塊,大約的用戶是多少,用戶的行為是如何分布的,每個模塊的使用頻度,大約的數據量,使用什么樣的硬件,系統穩定性的要求等等。當然需求人員不是專業的測試人員,這時專業性能測試人員就是跟據需求人員大致的描述或是文檔,提取出這些重要信息,建立系統模型。下面的一份表就是某個大型系統郵件模塊的數據模型:
序號 分類 項目 數據 單位
1 統計數據及經驗數據 A:總用戶數 5,000,000 個
2 B:激活用戶比例,每天訪問用戶數點總用戶數的比例 60%
3 C:每個激活用戶郵件數 50 封
4 D:每個用戶每天收到信數 8 封
5 E:每個用戶每天發送信數 6 封
6 F:系統高峰時間(小時) 4 小時
7 G:高峰時間內收發的郵件數占一天總郵件數 50%
8 H:每個用戶每天收發件次數 6 次
9 J:每封郵件大小平均為(K) 30 Kbyte
10 K1:據統計,使用WEBMAIL的用戶數百分比: 70%
11 K2:使用郵件客戶端軟件的用戶數百分比: 28%
12 K3:使用IMAP用戶數百分比: 2%
13 L:平均每通過web訪問一封信,大約要訪問頁面數為: 4 個
14 M:假定每個頁面大小約為 30 Kbyte
15 N:通過本系統向外轉送百分比 75%
16 O:發送給本系統的郵件百比分 25%
17 Q:系統峰值時CPU利用率 60%
18
19 處理能力計算 POP的處理能力=A*K2*B*D*G/(F*3600) 52.78 封/秒
20 POP流出系統量=(POP的處理能力*J) 1.58 Mbyte/s
21 HTTP的收信件處理能力=A*K1*B*D*G/(F*3600) 83 封/秒
22 HTTP的發信件處理能力=A*K1*B*D*G/(F*3600) 62.5 封/秒
23 HTTP流出系統量(平均頁面大小*頁面數* HTTP處理能力) 9.96 Mbyte/s
24 HTTP流入系統量(HTTP發信數*J) 1.88 Mbyte/s
25 SMTPIN(從其它系統收到郵件)=A*K2*B*D*G/(F*3600) 52.78 封/秒
26 SMTPCLIENT(客戶端發送系統)=A*B*E*G/(F*3600) 104.17 封/秒
27 SMTPOUT(發送到其它系統)=A*B*E*G*N/(F*3600) 78 封/秒
28 SMTP平均發信(SMTPIN+SMTPCLIENT+SMTPOUT) 134 封/秒
29 SMTP流入量=(SMTPIN+SMTPCLIENT)*J 4.68 Mbyte/s
30 SMTP流出量=(SMTPOUT*J) 2.03 Mbyte/s
31 高峰時期郵件平均流入量 6.56 Mbyte/s
32 高峰時期郵件平均流出量 13.57 Mbyte/s
33 高峰時期郵件平均總流量 20.13 Mbyte/s
34 系統帶寬要求(流量×8(含協議數據)) 160 Mbit/s
35
36 并發數計算 POP高峰并發數目=A*K2 * B*H*G/(F*3600) 次/秒 39.58 次/秒
37 SMTP高峰并發數目=A*B*(D+E)*G/(F*3600) 次/秒 183.06 次/秒
38 HTTP高峰并發數目=A*B* (D+E)*K*L*G*O/(F*3600)次/秒 145 次/秒
39 IMAP高峰并發數目=A*D*K3*B*I*G/(F*3600)次/秒 0.35 次/秒
某模塊數據模型圖
文章來源于領測軟件測試網 http://www.kjueaiud.com/