Leo Yeh's Blog

系統測試 Performance (1)

教學目標

初步了解針對系統進行效能測試的基本概念。

重點概念

首先目前軟體和系統越來越複雜的情況下效能測試已經成為系統測試最重要的衡量標準之一,同時效能測試需要很強的技術能力和綜合分析問題的能力。此外在進行效能測試之前,我們最好先了解相關的專有名詞,分別為:

  1. 同時在線人數:主要是針對網站應用程式伺服器或資料庫伺服器是否因為使用者操作產生影響,也就是在同一時間與伺服器進行互動操作的在線使用者人數。此外若一個系統期望使用者為 1000 人,則在 100 個以內的同時在線人數的條件下測試系統的回應時間和每秒鐘系統能夠處理的交易數理應就能滿足效能的需求。
  2. 請求回應時間:主要是針對從客戶端發出請求至得到回應的整個過程的時間,其中主要包括網路回應時間和網站應用程式與系統回應時間,請求回應時間的單位一般為秒或毫秒。
  3. 交易回應時間:主要是針對特定業務交易行為的回應時間,其主要是由一系列的請求所組成。
  4. 資料輸出量:主要是指在一次效能測試過程中網路上傳輸的資料流量總和,並且輸出量/傳輸時間=輸出率,主要是指在單位時間內網路上傳輸資料流量,也就是單位時間內能夠處理客戶端請求數,其是個衡量網路傳輸效能的重要指標,通常以位元組/秒、請求數/秒、頁面數/秒、…等指標進行衡量。當然我們也能夠從業務角度以每秒交易量,也就是指每秒鐘系統能夠處理的交易數,以利衡量系統業務處理能力的重要指標。
  5. 資源利用率:主要是針對不同系統資源的使用程度,像是伺服器的 CPU、記憶體、磁碟、…等利用率,其主要就是分析系統效能關鍵的指標,更進一步以此為依據改善效能。

接著系統效能測試有許多不同的類型,分別為:

  1. 配置設定測試:主要是透過測試找出系統各項資源的最適當的效能設定,以利評估系統正式環境參數配置設定的重要參考資訊。
  2. 負載壓力測試:主要是針對系統不斷增加負載,直到效能指標達到極限,重點在於系統在較大負載下長時間持續增加負載的情況,以利找出系統的瓶頸,以利評估系統正式環境參數優化和最大服務等級。
  3. 穩定可靠測試:主要是為了測試系統在異常情況下的處理能力,以及系統在一定壓力下長時間執行之後是否穩定可,以利評估系統是否能夠長時間穩定提供可靠的服務。
  4. 大量資料測試:主要是針對資料量進行測試,以利評估系統正式環境的資料達到不同資料量時的效能。
  5. 同時在線測試:主要是用於測試同一時間內多個使用者同時存取同一個系統、同一模組、同一業務功能和同一資料記錄時是否存效能問題,以利評估系統正式環境能夠同時服務多少個使用者操作。

再來效能測試已經不是簡單提供硬體配置就能夠提高效能,因為若軟體本身存在效能問題,則再多的資源也會不夠使用,像是記憶體外洩的問題就會隨著時間的增加,記憶體最終會被耗盡,最後將會導致系統崩潰。所以若客戶對於效能要求較高時,則提高硬體配置之外,更需、從資料庫,伺服器、作業系統和軟體進行優化。此外若是的資料庫中的資料表設計不合理,像是大量資料儲存在一個資料表中,此時將會導致當同時在線人數過多時,資料庫伺服器無法即時處理使用者請求,最後被迫停止提供系統服務。當然針對演算法問題、記憶體外洩、低效能 SQL 查詢、…等問題,皆應該修正軟體中的程式解決問題。

最後效能調整主要是為了系統進行優化,對於效能測試中發現的問題,通常是由效能資料庫管理師、系統管理員、開發人員、…等相關資訊人員共同解決,主要有五個步驟,分別為:

  1. 確認問題:主要確認系統是否存在問題,並且針對問題進行正確定義,以利找出系統瓶頸點,通常我們能夠從應用程式程式碼、資料庫設定、作業系統設定、硬體配置和網路配置這五大方面確認問題。同時更需針對使用情況進行調查,像是是否聽到使用者的抱怨、是否特定操作的回應時間隨著使用時間越來越長、是否 CPU 使用率很低而 I/O 使用率很高、…等問題。
  2. 確認原因:主要確認問題發生的根本原因,通常會需要涉及有關作業系統、資料庫、網路和程式開發等許多方面的專業知識與經驗,並且廣泛的收集記錄檔資訊,以利進行分析找出根本原因,像是問題影響是客戶端或伺服器、問題影響是回應時間或業務輸出量、問題影響是所有使用者或特定使用者、問題影響是所有模組或特定模組、問題影響是系統資源不足或硬體配置不足、…等系統相關問題,以利針對系統瓶頸有更深入的了解,更進一步分析出真正的原因。
  3. 確認調整目標和解決方案:主要確認調整目標和設計解決方案,確認目標的主要目的在於確認何時停止調整系統,避免工作將永無止盡,通常根據系統不同的特點調整目標將會有所不同,主要有提高系統輸出量、縮短回應時間和服務更多在線使用者三大方面的調整目標。
  4. 測試解決方案:主要當針對調整目標執行解決方案之後,就會針對解決方案進行測試,此時測試人員可以使用之前的操作情境進行測試,驗證系統是否解決了效能問題。建議測試解決方案儘可能在仿真的測試環境下進行測試,避免直接在正式環境進行測試,除非評估了測試的風險,並且有對應的備份還原方案。
  5. 分析調整結果:主要針對解決方案進行調整結果的分析,主要考慮系統調整是否達到或超出預期目標和系統效能是否整體改善或犧牲部分效能解決問題。最後若是達到預期的調整目標,則效能調整工作完成,否則需要重複上述的相關步驟。

相關資源

⬅️ Go back