負載測試—網站的“體能”測試 軟件測試
通常來說,負載測試可以采用手動和自動兩種方式。手動測試會遇到很多問題,如無法模擬太多用戶、測試者很難精確記錄相應時間、連續測試和重復測試的工作量特別大等。因此對于負載測試,手動方式通常用于初級的負載測試。目前,絕大多數的負載測試都是通過自動化工具完成的。
負載測試的相關問題
從網站內容上看,每個網站都有自己的客戶群和工作負載,不同網站其軟硬件結構差異也很大。下圖是一個網站的基本框架。
這種復雜性給負載測試帶來了很大的挑戰。一方面,由于一些設備的原因,有時我們不能直接進行負載測試,必須繞過某些設備,造成很大麻煩。另一方面,由于整個體系結構的復雜,也給尋找問題帶來了一定的困難。例如防火墻常常阻止負載測試的進行,因此通常需要對防火墻進行調整,讓它暫時支持負載測試; 有時服務器的應用程序采用加密方式與客戶端進行交互,在這種情況下,還需要更改服務器應用程序。因此,負載測試人員需要對整個網絡架構和應用系統非常熟悉。
另外,負載測試的成功與否,在很大程度上取決于自動化工具。在功能方面,主要考慮它所支持的協議、分析方式、監視目標種類等,以及該工具能否精確記錄、回放用戶的訪問情況。在性能方面,則主要考慮它模擬虛擬用戶的能力,例如在一定資源下可以模擬的用戶的數量和速度。
負載測試的過程
負載測試是一項非常復雜的工作,一次測試常常要持續幾天甚至幾周。因此,在進行一次負載測試前,必須做好充分的準備,可以按照以下幾個步驟來進行。
(1)系統分析
分析被測系統需要滿足什么要求,例如支持多少人在線、支持連續多長時間的訪問等。測試者的主要任務就是將系統的需求轉換成測試目標,對系統進行全面的分析和評估,并結合測試的實際環境和條件以確保測試目標和測試計劃的正確性。
(2)產生腳本
為了模擬多個用戶訪問服務器必須編寫腳本。簡單的腳本可以通過自動化工具提供的腳本編輯環境來編寫。復雜的腳本則通常是通過記錄單用戶的活動生成最初的腳本,再在此基礎上進行修改以保證該腳本可以支持多個用戶。其中最主要的修改是關于數據池的,因為不同用戶通常使用不同數據,例如用戶名和密碼等。因此,我們通常要將這些數據存儲在數據庫(或者數據池)中,以便在執行中被腳本程序調用。
(3)構造運行場景
有了腳本后,就可以通過一個場景來管理這些腳本的執行。場景是一個執行單位,可以通過場景來模擬一個工作負載。在場景中,我們將管理腳本的數量、執行次數、執行時間等,甚至還可以加上一些定時器、同步點等控制機制。另外,還可以將模擬用戶分配到不同的計算機上。
(4)運行場景
設置好場景后,就可以運行了。通常,在運行場景的同時還要啟動相關監控模塊,監控服務器性能、網絡狀態、Web服務器性能和數據庫性能等。自動化工具同時記錄了各種客戶端信息,包括相應時間、交易成功率等。
(5)分析報告
文章來源于領測軟件測試網 http://www.kjueaiud.com/