軟件性能測試方案-性能測試準備

搜狗測試2019-07-04 11:24:44

性能測試目的
1
性能調優

開發人員對系統調優後,需要測試人員配合去做性能測試,驗證這次優化是否有效果。如果性能指標相比較之前的性能指標更好了,説明系統優化的有效果。反之説明調優不理想

2
新業務、新接口上線

系統從無到上線,驗證新系統的能力是否能夠滿足某段時間系統使用要求,否則當高峯期來臨,系統可能會崩潰。

3
驗證系統穩定性

做性能測試經常跑一兩個小時或者幾十分鐘就可以了,但系統的穩定性,系統能否長期穩定的工作,這個是不夠的。系統出現的穩定性問題,一般有內存泄漏、連接數泄漏、死鎖、遊標不夠用等,這些問題短時間內可能不會暴露出來。為了驗證系統穩定性,一般用性能峯值併發數(即系統支持的最大併發數)*7天*24小時,系統的吞吐量,平均響應時間等各項性能指標均正常則認為系統穩定性是ok的。根據系統的重要程度,可以適當調整運行的時間,但至少要壓測一個晚上的時間。

4
驗證系統架構是否存在瓶頸

同一系統,架構師會提供不同的架構方案。那麼不同的設計方案到底哪個好,我們可以通過性能測試驗證不同方案的性能,其次瞭解系統大概達到什麼量級的併發後系統就會出現問題,瞭解系統架構在達到性能峯值時哪塊會出現瓶頸,幫助開發針對性地進行系統調優工作。

性能測試範圍定義

一般考慮的點有如下幾點:


- 系統中被頻繁使用的功能、調用的接口等

- 系統中涉及大量數據庫讀、寫的功能

- 大量讀寫系統緩存部分的功能,驗證緩存是否生效

總得來説應該將用户訪問量大的,頻繁操作數據庫的,系統核心功能這些地方考慮到性能測試範圍內。


性能測試原則


3+1原則(指量、全、深+快)


主要對性能測試設計、測試執行以及數據分析。


量:包括業務量(業務類型),負荷量(系統處理的流量),配置量(軟件配置和硬件配置),用户量(靜態用户和動態用户),時間量(測試的時間)。


全:主要是針對測試用例而言。測試用例理你包括預置條件,測試步驟和預期結果三部分,這個“全”重點針對預置條件和測試步驟的測試結果觀察和數據而言。


深:一是對系統地瞭解要深,二是對缺陷的分析要深。


快:一是測試經驗的固化,避免測試設計,觀察等遺漏。將經驗固化成模板或工具便於經驗的傳承,減少測試的重複和遺漏;二是性能測試的自動化,包括性能測試環境構建和測試執行以及測試分析的自動化,自動化對性能測試效率的提升價值更大。

2-5-10原則


主要針對響應時間。簡單説,就是當用户能夠在2秒以內得到響應時,會感覺系統的響應很快;當用户在2-5秒之間得到響應時,會感覺系統的響應速度還可以;當用户在5-10秒以內得到響應時,會感覺系統的響應速度很慢,但是還可以接受;而當用户在超過10秒後仍然無法得到響應時,會感覺系統糟透了,或者認為系統已經失去響應,而選擇離開這個Web站點,或者發起第二次請求。

80/20原則


用於減少風險,抓住重點進行更多的測試:80/20原則即帕累托法則(Pareto Principle),用户80%的時間在使用軟件產品中20%的功能。“重點測試”就是測試這20%的功能,而其他80%的功能屬於優先級低的測試範圍,佔測試20%的資源。


實例:對測試強度估算

基本概念:每個工作日80%的業務在20%的時間內完成。

例如:每天工作8個小時,那麼每天80%的業務在8*20%=1.6小時內完成。


例如:去年全年處理業務約100萬筆,其中,15%的業務處理中,每筆業務需對應用服務器提交7次請求;70%的業務處理中,每筆業務需對應用服務器提交5次請求;其餘15%的業務處理中,每筆業務對應用服務器提交3次請求。根據以往的統計結果,每年的業務增量為15%,考慮到今後3年業務發展的需要,測試需按現有業務量的兩倍進行。

強度估算如下:

每年的總請求數為:

(100*15%*7+100*70%*5+100*15%*3)*2=1000萬次/年

每天的請求數為:

1000/160=6.25萬/天

每秒請求數:(62500×80%)/(8*20%*3600)=8.68次/秒

性能測試環境搭建

保證性能測試與真實生產環境的一致性,具體從以下三方面看:

1
硬件環境

    如服務器的型號,是否與其它應用程序共享此服務器,是否在集羣環境下,是否通過BIGIP進行負載均衡,客户使用的硬件配置情況,使用的交換機型號,網絡傳輸速率。

2
軟件環境

版本一致性

    包括操作系統、數據庫、中間件的版本,被測系統的版本。


配置一致性

    系統(操作系統/數據庫/中間件/被測試系統)參數的配置一致,這些系統參數的配置有可能對系統造成巨大的影響。所以,除了保證測試環境與真實環境所使用的軟件版本一致,也要關注其參數的配置是否一致。

3
使用場景的一致性

基礎數據的一致性

    包括預測的業務數據量,以及數據類型的分配。很簡單的一個列子,一個系統的數據庫只有10條數據和一條數據庫裏幾千萬條數據,我們在對其進行性能測試時,得到的性能指標可能會有非常大的差別。

為了保證每次測試環境的更加一致性,磁盤的使用情況以及磁盤的碎片情況也會或多或少地影響的性能。


使用模式的一致性

    儘量模擬真實場景下用户的使用情況,其實,我們在做性能測試前期的需求分析,其主要目的也就是為了更真實的模擬用户的使用情況。



https://hk.wxwenku.com/d/201069891