現在效能測試一個比較火的話題,究其原因是因為現在很多公司都要求測試人員會做效能測試,所以今天小編就來普及下效能測試的幾種分類和其特點。
關於效能測試有幾個名詞:效能測試、負載測試、壓力測試、併發測試,很多人都是混合使用,或者有時壓力測試,有時叫併發測試。這些名詞除了非測試人員分不清楚之外,甚至很多專業測試人員也對這些名詞會搞迷糊。下面就從來詳細說說這些名詞之間的區別和特點。
1、軟體效能測試的概念:
效能測試方法是通過模擬生產執行的業務壓力量和使用場景組合,來測試系統的效能是否滿足軟體的效能要求。通俗地說,這種方法就是要在特定的執行條件下驗證軟體系統的處理能力。
1)效能測試的特點:
(1)效能測試方法的主要目的是驗證軟體系統是否有系統具有預期的能力。
(2)效能測試方法要事先了解被測試系統的具體使用場景,並具有確定的效能目標。
(3)效能測試方法要求在已經確定的環境下執行。
也就是說,效能測試是對系統效能已經有一定了解的前提下,並對需求有明確的目標,且在已經確定的環境下進行的一種測試。
2、效能負載測試
通過在被測軟體系統上不斷實施加壓,直到效能指標達到極限狀態,例如“響應時間”超過預定指標或都某種資源已經達到飽和狀態。
1)負載測試的特點:
(1)負載測試方法的主要目的是找到系統處理能力的極限何在。
(2)負載測試方法需要在已知的測試環境下進行,通常也需要考慮被測試系統的業務壓力量和典型場景、使得測試結果具有業務 上的實際意義。
(3)負載測試方法一般用來了解系統的效能容量,或是配合效能調優來使用。
也就是說,負載測試是對一個系統持續不斷的加壓,觀察軟體在什麼時候已經超出“預期要求”或系統崩潰。 3、效能壓力測試(也叫強度測試)
效能壓力測試是測試軟體系統在一定飽和狀態下,例如CPU、記憶體在飽和使用情況下,系統能夠處理的會話能力,以及系統是否會出現錯誤現象。
1)壓力測試的特點:
(1)壓力測試方法的主要目的是檢查系統處於壓力效能下時,軟體應用的具體表現。
(2)壓力測試方法一般通過模擬負載測試等方法,使得系統的資源使用達到較高的水平。
(3)壓力測試方法一般用於測試系統的穩定性。
也就是說,壓力測試是讓系統處在很大強度的壓力之下,看系統是否穩定,注意觀察哪個地方會出現問題。
4、效能併發測試
效能併發測試通過模擬使用者併發訪問,測試多使用者併發訪問同一個軟體、同一個模組或者資料記錄時是否存在死鎖或其者性它的效能問題。
1)併發測試的特點:
(1)併發測試方法的主要目的是發現系統中可能隱藏併發訪問時的問題。
(2)併發測試方法主要關注系統可能存在的併發問題,例如系統中的記憶體洩漏、執行緒鎖和資源並用方面的問題。
(3)併發測試方法可以在開發的各個階段使用,不過是需要相關的測試工具的配合和支援。
也就是說,併發測試關注點是多個使用者同時(併發)對一個模組或操作行為進行加壓的一種測試。
5、效能配置測試
效能配置測試是通過對被測系統的軟/硬體環境的調整,瞭解各種不同方法對軟體系統的效能影響的程度,從而找到系統各項資源的最優分配原則。
1)配置測試的特點:
(1)配置測試方法的主要目的是瞭解各種不同因素對系統效能影響的程度,從而判斷出最值得進行的調優操作。
(2)配置測試方法一般在對系統效能狀況有初步瞭解後才進行。
(3)配置測試方法一般用於效能調優和軟體處理能力的規劃。
也就是說,配置測試關注點是“微調”,通過對軟硬體的不斷調整,找出軟體系統的最佳狀態,使軟體系統達到一個最穩定的狀態。 6、效能可靠性測試 效能可靠性測試是在給系統載入一定業務壓力的情況下,使系統執行一段時間,以此檢測系統是否穩定。 1)可靠性測試的特點:
(1)可靠性測試方法的主要目的是驗證軟體系統是否支援長期穩定的執行。
(2)可靠性測試方法需要在壓力下持續一段時間的執行。
(3)可靠性測試過程中需要關注系統的執行狀況如何。
也就是說,這種測試的關注點是“穩定”,不需要給系統太大的壓力,只要系統能夠長期處於一個穩定的狀態即可。
除了上面的幾種分類效能測試,還有一種是失效性測試,就是系統區域性發生問題時,其它模組是否可以正常的執行。這個在極少數情況下才會要求進行測試。使用到的情況比較少。 效能測試的分類已經介紹完了,但我們在做效能測試過程中真的能把它們區分的很清楚嗎?你能嚴格區分出你這次的測試到底是併發測試還是壓力測試呢?如下舉例來說明下這個區分。 拿運動員來說,對於練過幾年時間的體育運動員來說,如果參加很多體育專案,其實不論最後參加哪項運動,最終要考核他的就兩方面:爆發力和持久耐力。而我們在做效能測試時主要關注的也是這兩方面的效能。
1)爆發力: 拿一個舉重選手來說,他的能力特點在重量上,因為你只要能舉起成功三秒就算你成功了,關鍵是看你能舉起一個多大的重量。
2)持久耐力: 拿一個馬拉松運動員來說,你的百米速度跑得再快也沒用,關鍵是在長達40公里遠的路程中,第一個跑到終點的人才是贏家。
從上面的舉例中回到效能測試話題上,爆發力就是系統能承受的最大壓力,可能軟體系統剛開始承受的壓力很大,但過半個小時之後就掛掉了。持久耐力就是這個軟體系統在長時間處於壓力下的穩定性,如軟體系統很穩定,執行了幾十年都不用重啟伺服器,那麼最後就是看系統有沒系統瓶頸(短板),並對其進行系統調優即可。
End,今天主要是普及下軟體效能測試的分類和其特點的描述,希望能讓還對軟體效能測試還比較迷糊的同學們一個觀點明確的幫助。
如果大家還有測試方面的問題歡迎一起交流學習:672899761。