天天看點

什麼是性能測試(二)

《零成本web性能測試》第一章性能測試基礎總結和自己的了解

一、性能測試概念

  百度詞條定義:性能測試是通過自動化的測試工具模拟多種正常峰值及異常負載條件來對系統的各項性能名額進行測試。負載測試和壓力測試都屬于性能測試。通過負載測試,确定在各種工作負載下系統的性能,目标是當負載逐漸增加時,測試系統各項性能名額的變化情況。壓力測試是通過确定一個系統的瓶頸或者不能接受的性能點,來獲得系統提供的最大服務級别的測試。

  

    維基百科定義:在計算機領域,軟體性能測試被用來判斷計算機、網絡、軟體程式或者驅動的速度和效率。這一過程會在同一實驗環境下進行大量測試,以便于衡量系統功能的相應時長或者MIPS(每秒執行指令數目)等名額,其他系統特性,如可靠性、可量測試、互用性等,也可以用性能測試來衡量,性能測試通常與壓力測試一起進行。

    筆者了解:1、性能測試不僅是通過模拟器對系統進行負載和壓力測試,而且還包含異常測試,比如叢集中某一子產品停止運作,測試系統還能正常滿足一定使用者的使用。這是系統的性能測試。

       2、性能測試還包括對維護人員對系統維護的測試。筆者公司之前由于沒有預估峰值,營運人員搞了一個活動導緻叢集最頂部子產品崩潰,到伺服器可以正常使用花費了48小時,嚴重影響了公司運作。

二、性能測試的目的

  性能測試目的驗證軟體系統是否能夠達到使用者提供的性能名額,同時發現存在的性能瓶頸,最好起到優化的目的。

  1、評估系統的能力:主要從測試結果中的負荷和響應時間,并發使用者等資料驗證系統的各項名額達到使用者需求

  2、識别體系中的弱點:根據測試過程中的負荷或代碼走差方式找出系統的極端或繁瑣的代碼邏輯,進而找到體系中的瓶頸或薄弱地方

  3、系統調優:重複進行性能測試,驗證系統活動是否達到預期結果,進而進行改進

  4、檢測軟體中的問題:主要查找一些隐含的問題或者硬體引發的問題。主要方法大量的重複測試驗證

  5、驗證穩定性和可靠性:不但要驗證系統的穩定性和可靠性,還要驗證人為因素的穩定性。

三、性能測試分類

  1、負載測試::閑時負載量。通過測試系統在資源超負荷情況下的表現來發現設計上的錯誤或驗證系統的負載能力。目标是确定并確定系統在超出最大預期工作量的情況下仍能正常運作。還用來評估性能特征,如響應時長、事務處理速度等

  2、壓力測試:極限負載量。對系統不斷施加壓力的測試,判斷系統能提供的最大服務級别。例如測試一個web站點,經過不斷加壓判斷出達到多少使用者并發的時候服務響應失效。

  3、容量測試:支援的最大數量

四、性能測試名額

  系統名額:

    1、并發使用者數:某一實體時刻同時向系統送出請求的使用者數

    2、平均響應時間:系統處理事務的響應時間的平均值。事務的響應時間是從用戶端送出通路請求到用戶端接收到伺服器響應所消耗的時間。對于系統快速響應類頁面,一般響應時間小于2秒

    3、事務成功率:性能測試中,定義事務用于度量一個或者多個業務流程的性能名額,如使用者登入、儲存訂單、送出訂單操作均可定義為事務

    4、平均響應時間:對于用戶端使用者來說,最直覺的體驗就是通路該頁面快或者慢,即響應時間的長短。比如在持續并發性能測試過程中,客戶感覺通路應用很慢,監控到的平均響應時間也逐漸變長,這時就需要先借助于監控到的資源名額

   資源名額:

    1、CPU使用率:指使用者程序與系統程序消耗的CPU時間百分比,長時間情況下,一般可接受上限不超過85%

    2、記憶體使用率:記憶體使用率=(1-空閑記憶體/總記憶體大小)*100%,一般至少有10%可用記憶體,記憶體使用率可接受上限為85%

    3、磁盤I/O: 磁盤主要用于存取資料,是以當說到IO操作的時候,就會存在兩種相對應的操作,存資料的時候對應的是寫IO操作,取資料的時候對應的是讀IO操作,一般使用% Disk Time(磁盤用于讀寫操作所占用的時間百分比)度量磁盤讀寫性能

    4、網絡帶寬:一般使用計數器Bytes Total/sec來度量,Bytes Total/sec表示為發送和接收位元組的速率,包括幀字元在内。判斷網絡連接配接速度是否是瓶頸,可以用該計數器的值和目前網絡的帶寬比較

繼續閱讀