複製鏈接
請複製以下鏈接發送給好友

負載測試

鎖定
負載測試(Load testing),不限制軟件的運行資源,測試軟件的數據吞吐量上限,以發現設計上的錯誤或驗證系統的負載能力。在這種測試中,將使測試對象承擔不同的工作量,以評測和評估測試對象在不同工作量條件下的性能行為,以及持續正常運行的能力。
負載測試的目標是確定並確保系統在超出最大預期工作量的情況下仍能正常運行。此外,負載測試還要評估性能特徵。例如,響應時間、事務處理速率和其他與時間相關的方面。
中文名
負載測試
外文名
Load testing
目    標
確保系統正常運行
硬件配置
配置越高系統的性能會越好

負載測試容易混淆的其他測試

負載測試三分類定義

交叉負載測試 交叉負載測試
負載測試、壓力測試和性能測試的測試目的不同,但其手段和方法在一定程度上比較相似,通常會使用相同的測試環境和測試工具,而且都會監控系統所佔用資源的情況以及其它相應的性能指標,這也是造成人們容易產生概念混淆的主要原因。

負載測試運行環境

我們知道,軟件總是運行在一定的環境下,這種環境包括支撐軟件運行的軟硬件環境和影響軟件運行的外部條件。為了讓客户使用軟件系統感到滿意,必須確保系統運行良好,達到高安全、高可靠和高性能。其中,系統是否具有高性能的運行特徵,不僅取決於系統本身的設計和程序算法,而且取決於系統的運行環境。系統的運行環境會依賴於一些關鍵因素,例如:
系統架構,如分佈式服務器集羣還是集中式主機系統等。
硬件配置,如服務器的配置,CPU、內存等配置越高,系統的性能會越好。
網絡帶寬,隨着帶寬的提高,客户端訪問服務器的速度會有較大的改善。
支撐軟件的選定,如選定不同的數據庫管理系統Oracle、MySQL等)和web應用服務器(Tomcat、GlassFish、Jboss、WebLogic等),對應用系統的性能都有影響。
外部負載,同時有多少個用户連接、用户上載文件大小、數據庫中的記錄數等都會對系統的性能有影響。一般來説,系統負載越大,系統的性能會降低。
從上面可以看出,使系統的性能達到一個最好的狀態,不僅通過對處在特定環境下的系統進行測試以完成相關的驗證,而且往往要根據測試的結果,對系統的設計、代碼和配置等進行調整,提高系統的性能。許多時候,系統性能的改善是測試、調整、再測試、再調整、……一個持續改進的過程,這就是我們經常説的性能調優(performance tuning)。
在瞭解了這樣一個背景之後,就比較容易理解為什麼在性能測試中常常要談負載測試。從測試的目的出發、從用户的需求出發,就比較容易區分性能測試、負載測試和壓力測試。性能測試是為了獲得系統在某種特定的條件下(包括特定的負載條件下)的性能指標數據,而負載測試、壓力測試是為了發現軟件系統中所存在的問題,包括性能瓶頸、內存泄漏等。通過負載測試,也是為了獲得系統正常工作時所能承受的最大負載,這時負載測試就成為容量測試。通過壓力測試,可以知道在什麼極限情況下系統會崩潰、系統是否具有自我恢復性等,但更多的是為了確定系統的穩定性。

負載測試各區別定義

那麼,如何給負載測試、壓力測試下個定義呢?根據上述討論,我們可以給出如下的定義:
負載測試是模擬實際軟件系統所承受的負載條件的系統負荷,通過不斷加載(如逐漸增加模擬用户的數量)或其它加載方式來觀察不同負載下系統的響應時間和數據吞吐量、系統佔用的資源(如CPU、內存)等,以檢驗系統的行為和特性,以發現系統可能存在的性能瓶頸、內存泄漏、不能實時同步等問題。負載測試更多地體現了一種方法或一種技術。
壓力測試是在強負載(大數據量、大量併發用户等)下的測試,查看應用系統在峯值使用情況下操作行為,從而有效地發現系統的某項功能隱患、系統是否具有良好的容錯能力和可恢復能力。壓力測試分為高負載下的長時間(如24小時以上)的穩定性壓力測試和極限負載情況下導致系統崩潰的破壞性壓力測試。
壓力測試可以被看作是負載測試的一種,即高負載下的負載測試,或者説壓力測試採用負載測試技術。通過壓力測試,可以更快地發現內存泄漏問題,還可以更快地發現影響系統穩定性的問題。例如,在正常負載情況下,某些功能不能正常使用或系統出錯的概率比較低,可能一個月只出現一次,但在高負載(壓力測試)下,可能一天就出現,從而發現有缺陷的功能或其它系統問題。通過負載測試,可以證明這一點,某個電子商務網站的訂單提交功能,在10個併發用户時錯誤率是零,在50個併發用户時錯誤率是1%,而在200個併發用户時錯誤率是20%。
負載測試是為了發現系統的性能問題,負載測試需要通過系統性能特性或行為來發現問題,從而為性能改進提供幫助,從這個意義看,負載測試可以看作性能測試的一部分。但它們兩者的目的是不一樣的,負載測試是為了發現缺陷,而性能測試是為了獲取性能指標。因為性能測試過程中,也可以不調整負載,而是在同樣負載情況下改變系統的結構、改變算法、改變硬件配置等等來得到性能指標數據,從這個意義看,負載測試可以看作是性能測試所用的一種技術,即性能測試使用負載測試的技術、使用負載測試的工具。性能測試要獲得在不同的負載情況下的性能指標數據。
通過負載測試和壓力測試都可以獲得系統正常工作時的極限負載或最大容量。容量測試,自然也是採用負載測試技術來實現,而在破壞性的壓力測試中,容量的確可以看作是一種副產品——間接結果。

負載測試綜合概括

所述,負載測試、壓力測試和性能測試的概念可以概括如下:
負載測試是通過改變系統負載方式、增加負載等來發現系統中所存在的性能問題。負載測試是一種測試方法,可以為性能測試、壓力測試所採用。負載測試的加載方式也有很多種,可以根據測試需要來選擇。
性能測試是為獲取或驗證系統性能指標而進行測試。多數情況下,性能測試會在不同負載情況下進行。
壓力測試通常是在高負載情況下來對系統的穩定性進行測試,更有效地發現系統穩定性的隱患和系統在負載峯值的條件下功能隱患等。

負載測試負載測試的必要準備

  1. 什麼是你真正需要了解的?
  2. 確定用户數量
  3. 研究你的分析
  4. 組建你的團隊
  5. 準備你的瀏覽器
  6. 準備測試你的應用
  7. 預留時間分析結果
  8. 預留時間修改
  9. 計劃一個敏捷測試方法
如果你已經完成了絕大部分艱苦的工作。你已花時間作了準備,對你的應用作負載測試將有助於你持續改進你的產品和業務。

負載測試Apache 負載測試

1000個請求,每次10個,這個測試和下載的網頁大小有關係,幾K的網頁是快,要是下上M的文件當然慢了,至於keepalive是允許一個http連接開多個請求線程,這個參數是測試http裏面效率作為ISO 9126內部和外部質量的重要質量屬性之一,其含義是在規定條件下,相對於所用的資源的數量,軟件產品可提供適當性能的能力。資源可能包括其他軟件產品或系統的軟件和硬件配置,以及其他相關的資源(例如:打印紙、磁盤等)。
KeepAlive;MaxKeepAliveRequests;MaxKeepAliveRequests;KeepAliveTimeout;KeepAliveTimeout等選項設置數值的合理性的,你沒設置的話使用默認值,應該跟你的測試沒多大關係.
至於你想知道實用的情況怎樣,其實大多數瀏覽器應該不會用到keepalive方式的,即使是firefox也需要另外裝個插件才能多線程下載網頁,IE6是單線程的,IE7不知道,如果你要開http下載文件,你的機器一定要強,可以考慮把連接數等數值設大一些,windows下的apache不是很清楚了,我一直都在linux下做服務的.效率測試主要關注產品的時間和資源相關的特性。時間相關的特性是指在規定條件下,軟件產品執行其功能時,提供適當的響應和處理時間以及吞吐量的能力,例如:用户打開某個網頁需要等待的時間;資源相關的特性是指,在規定條件下,軟件產品執行其功能時,使用合適數量和類別的資源的能力,例如:用户在進行相關操作時,系統的內存和CPU的變化情況。  根據產品的時間特性和資源特性,效率測試可以包括不同的測試類型,例如:性能測試(Performance Test)、負載測試(Load Test)和壓力測試(Stress Test)。這三種效率測試類型,不僅在具體定義上面有不同的側重點,同時相互之間又是密切關聯的。