性能測試筆記之二:忘掉性能測試方法分類

性能測試筆記之二:忘掉性能測試方法分類

來自專欄 性能測試

閱讀性能測試書籍或者查閱測試資料時常聽到驗收性能測試、壓力測試、負載測試、可靠性測試等各種測試方法,有些說它們互不相關,也有些說都是性能測試的一種,下面來看看具體的各種方法。

驗收性能測試:通過模擬生產運行的業務壓力量和使用場景組合,測試系統性能是否滿足生產要求,這種測試方法就是在特定的運行條件下驗證系統的能力狀態,看看系統是否達到我們預期的要求。也就是說測試之前我們已經確定了性能的目標。

負載測試:在被測系統上不斷增加壓力,直到性能指標超過預定的指標或者某種資源使用已經達到飽和狀態。設定一個預期的性能指標,然後不斷加壓不斷接近性能指標,確定加壓量,這種方法一般用於確定系統處理極限。

壓力測試:指測試系統在一定飽和狀態下,系統能夠處理的會話能力,判斷系統是否會出現錯誤。檢查被測系統在特定壓力情況下的性能表現,多用於測試系統的穩定性,使被測系統處在一定壓力下,檢查被測系統的運行情況。

配置測試:這裡的配置測試有別於功能測試中的配置測試,我們知道功能測試中的配置測試一般指被測軟體與硬體及外設的兼容性,性能中的配置測試指通過對被測系統軟硬體環境的調整,了解各種不同環境對系統性能影響的程度,從而找出系統各項資源的最優分配。從這裡可以看出進行配置測試前應對被測系統的性能狀態有初步了解,以便在配置測試結果分析過程中有基線參考。

可靠性測試:通過給被測系統載入一定的業務壓力,讓應用持續運行一段時間,測試系統在這種條件下是否穩定運行。

失效恢複測試:針對有冗餘備份和負載均衡的系統測試的,用來檢驗系統局部發生故障,用戶是否能夠繼續使用系統以及用戶將會受到多大影響。

Web前端性能測試:之所以這裡把web前端性能測試獨立出來,前面介紹的幾種性能測試方法主要是針對伺服器或者說被測系統的,而前端性能基本與並發用戶數甚至系統無關,主要取決於瀏覽器的載入展現以及前端頁面的組織方式,關注點多是頁面響應時間,這個會在後期詳細講解。

好了,上面把各種性能測試測試大概介紹了一下(不要被這些定義給迷惑了),可能有些你不認為是性能測試的一種,至於是還是不是,我感覺爭論這個沒有意義(細心的會發現壓力測試其實和可靠性測試沒有太大的區別或者說可以合併),記得一個前輩說過:不要一定要給你的測試定義黑盒白盒還是灰盒,沒有意義,等你忘掉這些把測試串通後即使給你一個馬桶也照樣可以測試。之所以劃分各種測試方法,不是讓我們一定給要測試的任務一個悅耳的定義,而是讓我們在進行性能測試前要明確我們測試的目的,想得到或者想驗證什麼。

我們一般性能測試的目的無非就以下幾種:

能力驗證:系統在A條件下是否具有B能力

規劃能力:應該如何使系統具有我們要求的能力,如系統如何滿足不斷增長的用戶。

性能調優:如何使系統達到最優狀態,環境部署,軟硬體等等

缺陷發現:測試最直接的目的就是發現bug,這個沒有好爭論的

性能基準比較:這個多用于敏捷測試中,我沒有做過敏捷測試就不多做介紹了,感興趣的直接問度娘好了。

明確實際性能測試中的測試目的,可以確定使用哪種測試方法(虛的),關鍵是測試策略選擇以及測試執行。

下面說說我在實際工作中所做的性能測試和穩定性測試:

性能測試:實際項目中所做的性能測試多是以能力驗證為測試目的,也可以理解為採用性能驗證測試方法,開發定一個指標,如並發上傳1000條報警信息,看看報警伺服器能否正常接收處理並上傳給MQ至資料庫,報警伺服器是否異常,資源消耗是否正常,需注意的有:CPU佔用率,內存佔用率,GDI,分頁數,句柄數等等。

使用的測試工具也是公司內部提供的測試工具,性能測試時間多是一天(我們公司性能測試時間應該算比較長的了,女朋友公司性能測試多是1小時或者更短,不同的用戶需求設置不同的測試條件),性能測試多是第一個Build執行,我們知道如性能出問題了多是架構設計問題,屬於比較嚴重的問題,以儘早確定被測系統的架構設計是否有問題及時修改。其它步驟由於涉及到具體的項目這裡就不做具體介紹了。(由於用戶對產品的性能指標要求不是很嚴格,實際測試中也是測試個大致值,性能測試過程和數據的收集也沒有書本上或者大蝦們說的那麼複雜難搞,在這裡還是要提醒大家性能測試一定要明確測試目的)

穩定性測試:穩定性測試多是在被測系統比較穩定後進行,一般在第2或者3個Build進行。看語義就可以看出與性能測試的本質區別,時間長短問題,跟上面介紹到的可靠性測試和壓力測試有點類似,在特定條件下,長時間運行被測系統,查看被測系統是否正常,如內存使用情況,CPU,句柄數,響應時間以及其它資源消耗是否有明顯的變化,是否有波動。實際測試中如穩定性測試時間不夠可以考慮增加壓力縮短測試時間的策略,但是這中方法有一定的風險,最好在有經驗的同事指導下進行。以上是自己對性能測試各方法的一點看法和個人的實際測試簡單概述,總結一句話就是:不要被各種性能測試方法所迷惑,明確自己項目性能測試目的。

推薦閱讀:

LoadRunner設置檢查點的幾種方法介紹
性能測試入門——LoadRunner使用初探
食堂就餐與性能測試分析
LoadRunner 使用虛擬IP測試流程配置

TAG:性能測試 | 軟體測試 | LoadRunner |