從奧運訂票網站的癱瘓漫談性能測試-Zee

 

聲明:這裏只是拿奧運訂票網站的癱瘓做一個引子。並無其他商業目的。
 
 
性能測試如何對性能的保證
 
 
我們知道性能測試是對整個架構來說的。
而架構包括兩個方面,即:軟件和硬件。
硬件又包括很多內容,列舉如:主板、硬盤、內存、CPU、路由器、交換機、防火牆等等。
軟件也包括很多方面,列舉如:OS、application server、application、database、middleware,etc。
做性能測試,這些方面都是要考慮到的。才能對整體有很好的把握。性能測試做的才最有實質意義(此實質意義從技術角度來說)。
奧運訂票網站的癱瘓,顯然是大數據量的提交造成的。我們不用懷疑它功能上的實現。如果功能不能實現肯定不會上線的了。在上線之前他們肯定也是做了性能測試的。我們也不用懷疑他們的性能測試的有效性。
提交用戶的多少對性能的影響並不是二元一次的直線方程上升的。
我想在這一性能測試的過程中,任何一個環節的疏忽都有可能引起此結果。
 
第一,性能測試工程師的素質,必須嚴格要求。
 
所以我們在做性能測試的過程中,一定要充分把握這些環節。同時引入另一個問題:誰能把握得了這麼多環節?縱然一個擁有十幾年工作經驗的人來說,也不能保證在性能測試中可以把握每一個具體的細節。更何況人的知識體系都是有限的。所以,在做性能測試時,我們儘量把每個問題都細化。然後找相關的技術人員,即使做性能測試的人,對網絡、數據庫等都非常瞭解。也儘量把大家召到一起,共商性能問題。這樣可以減少一些一個人容易疏忽的問題。經常聽到有些公司讓一些沒有很長時間工作經驗的人去做性能測試,還有些初學者去做。這些都無非是做做幌子給客戶看看,說明我們公司有這樣的職位存在。但是他們的作用何在?如何體現出來?怎麼衡量?這是個很重要的問題。這些應該屬於性能測試度量範疇。
我爲這種形同虛設的職位感覺很不值。同時也爲某些公司對性能測試這一職位的態度,很痛心。如果希望在這一職位的人把這一職責做好,就應該去找有相應技能的人。而不應該把它當成拿給客戶看的幌子。
當然,這裏還要肯定一些性能測試工程師存在的不容忽視的價值。爲一些項目的潛在問題做出了很重要的性能測試,從而避免了龐大的損失。
我必須強調,性能測試工程師的技術深度,對性能測試的效果起着非常非常重要的作用。
 
第二,團隊的重要性也不容忽視。
 
在社會中生存無疑要接觸人,在一個項目中,我們也在接觸着自己的同事。團隊的氛圍我覺得可以直接影響工作的效率和效果。針對一些公司中開發和測試扯皮的事實,我覺得完全沒有必要。從目標上來說,一個團隊的目標只有一個:做出最好的產品。但是,存在責任推卸的最大問題,我覺得在於:崗位職責不明確。這一問題導致很多性能測試人員,感覺自己一直在打雜。可能很多其他測試人員也有此感覺。這一點,可能是由於測試行業是近幾年才飛速發展起來的原因。其實這是一個應該切忌浮躁的行業。技術行業,應該是踏實而沉穩的。並不像一些廣告中吹噓的那麼高深和前途無量。接着說團隊,職責劃分明確是非常重要的。接着還有計劃的合理性,很多公司的計劃都存在着嚴重的問題。有時是因爲項目時間不夠,
有時是因爲工作量的判斷不足,等等。有時聽人說存在這樣的事情:測試人員需要測試當天開發人員寫出來的代碼。這樣的話,上班時間,測試人員,沒什麼事做。而下班了就一直需要加班。這只是時間的不合理。其他的資源安排不合理的事件,也不一一例舉了。
這裏強調的是:團隊氛圍良好、職責明確和資源的合理安排。
 
第三,軟件應用系統的架構。
 
這一問題直接影響整個系統的性能,如果系統架構先天不良,系統根本用不着測試。這一點在前期的需求中肯定有明確描述。並於這一問題,並不是性能測試人員能夠解決的。但是,是性能測試人員必須關注的。一個成熟的架構,是我們應該考慮的。但是性能問題,也有可能出在架構上。做性能測試時需要注意。
 
其他技術因素不再一一列舉,以上是技術角度來說明性能測試。
 
 
其他因素對性能測試的影響
 
 
第一,   用戶需求。
 
我覺得用戶需求對性能測試的影響很大。因爲做性能測試就是爲了給用戶看。有時客戶會要求流程應該如何去走。這樣的流程可能對客戶來說是最好的。功能的實現也絲毫沒有問題。但是性能就會完全不一樣了。當所有用戶都蜂擁而至,我們最應該考慮的是什麼?系統不要癱瘓。寧願慢,也不要癱瘓。但是流程影響着性能,如果按客戶所要求的流程達不到客戶的性能需求,應該採用其他手段來平衡性能問題的時候,不要猶豫。性能測試工程師們大膽的提出自己的建議。當然,需要足夠的論證。
 
第二,領導們。
 
我覺得很多時候領導一句話的決策就影響着最終的結局。類似於:大領導拍腦袋,中領導拍胸脯,幹活的拍屁股。
也是沒有辦法呀。我在外做過一個項目,那個項目的領導就很理智。他讓我來做性能測試。他會和開發和測試一起商量如果制定策略。如果出了性能問題,責任劃分也很明確。立即就改。但是,有些領導的要求也確實無理了點。這樣的現象導致下面的測試沒有辦法做。
這一點是我們沒有辦法的,只能提建議上去了。
 
其他外界因素,這裏不再描述。
 
早上聽到有人說奧運訂票網站癱瘓,從一個技術人員的角度來想,還是比較驚訝的。難道是性能測試沒有做好?沒有重視性能測試的原因?或者是做了,並沒有模擬出實際的那麼多用戶量的數據量?在我平時做的性能測試中,如果我對某模塊做了性能測試,達到了多少用戶。我會充分分析性能測試的有效性。從而在寫報告的時候,更深入的分析問題。如果奧運訂票網站任一環節都在可控的範圍內,出現這樣的問題,就可以說是純意外了。
只是我覺得並不是純意外。
 
希望做性能測試的人,不要捨本逐末。
如對以上言論有任何異議,請直接留言。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章