發(fā)布時間:2020-07-20
負載測試是為一個應(yīng)用或系統(tǒng)盡可能地接近成品部署并在用戶群中創(chuàng)建的模擬環(huán)境。一個負載測試可以測量響應(yīng)時間,吞吐率和資源利用率,并確定應(yīng)用程序的性能瓶頸,假設(shè)性能瓶頸的出現(xiàn)低于負載峰值。
在這里,“低于負載峰值”再次簡單地表明,負載測試的參數(shù)落在壓力測試(根據(jù)定義,指測試系統(tǒng)在或超出最大負載時的運行狀況)范圍內(nèi)。負載測試可以發(fā)現(xiàn)系統(tǒng)延時,頁面加載問題,以及當多個用戶訪問一個應(yīng)用程序或高并發(fā)致使系統(tǒng)崩潰,這類問題在開發(fā)和測試環(huán)境中容易被忽視即便代碼已經(jīng)檢查了很多遍。成百上千人同時訪問軟件時,一些探測不到的問題可能會突然出現(xiàn)。
舉例來說,假設(shè)你正在開發(fā)一個新的在線投票平臺,并且希望它在負載高峰時段能承受每分鐘10,000次用戶提交請求。在開發(fā)軟件時,寫代碼階段你可能就執(zhí)行了單元測試,周期性回歸測試,以確保在新功能開發(fā)進程中沒有破壞已有的功能。但你在什么時候開始做大規(guī)模用戶測試?什么時候你開始測試程序接受成百上千的重疊字段項,表單提交和其他命令?
從技術(shù)角度講,在一個項目生產(chǎn)的末期,才會進行有真實用戶參與的能夠精確模擬系統(tǒng)性能的負載測試。這與汽車生產(chǎn)類似:你可以修復(fù)和測試引擎,但如果引擎沒有安裝,則不能測試汽車在道路上的表現(xiàn)。其實,在軟件開發(fā)項目中的早期,你就能以一個集中的方式來測試特定組件的負載,例如測試后端性能問題,同時用戶輸入,在延長的時間周期里輸入的耐力,或其他任何可以給系統(tǒng)施壓,造成延時,內(nèi)存泄漏或功能崩潰的方式。那就意味著你已經(jīng)進行了負載測試,只不過是以一種受限的形式,并且已經(jīng)在探索多用戶訪問對系統(tǒng)的影響了。在一個不完整的系統(tǒng)上進行少數(shù)用戶輸入測試,正確的負載測試需要一個幾乎完整的系統(tǒng),并且通常要求使用可以真實模擬數(shù)千用戶的測試工具。
但有一個對所有規(guī)則的例外。對互聯(lián)網(wǎng)應(yīng)用而言有一個很明確的多用戶問題,負載測試可以在系統(tǒng)上進行,而不必通過眾多用戶,因為多個用戶不是負載的唯一可能來源。有時負載可能是由大文件,大量的計算,甚至是弱網(wǎng)連接造成的。
負載測試工具和性能測試工具的最終目的一般總是為了降低風(fēng)險,無論是對于軟件成功功能的風(fēng)險,最終用戶感知的風(fēng)險,或?qū)镜拙€的風(fēng)險。當然,所有這三個是緊密交織在一起,所以,對于一個開發(fā)人員或測試人員知道它們是如何相互關(guān)聯(lián)的是很重要的。要敢于提出建議,如果你專注于減少中間標準,那么用戶感知和其他兩個因素通常會水到渠成。許多負載測試的問題歸根結(jié)底,更多的在于用戶感知,而非具體理想的頁面加載時間和其他技術(shù)統(tǒng)計數(shù)據(jù)。
換句話說,如果你不理解人類的心理、用戶的行為和反應(yīng),你就不可能實現(xiàn)一個很真實的負載測試,并且更糟的是,你可能會誤解測試結(jié)果。這就是為什么在執(zhí)行負載測試時盡可能地模擬真實的終端用戶體驗很重要的原因,重復(fù)模擬用戶在接近最大負載時訪問一個網(wǎng)站或應(yīng)用程序,分析測試結(jié)果,然后對系統(tǒng)進行相應(yīng)的,盡最大可能來減少用戶體驗中的不愉快因素。由于開發(fā)周期越來越短,軟件公司可以通過簡單地專注于特定的故障以使用戶體驗更平穩(wěn)和高效,而不是解決高負載情況下遇到的所有問題,這樣可以節(jié)省時間和金錢。
推薦閱讀:
如何做接口壓力測試?壓力測試報告應(yīng)該包含哪些結(jié)果?
全鏈路性能需求分析的要點是什么?和傳統(tǒng)線下性能測試有什么區(qū)別
性能測試和并發(fā)壓力的關(guān)系 性能測試中怎么設(shè)置并發(fā)數(shù)?
什么是WebSocket?有哪些支持WebSocket協(xié)議的壓力測試工具?
電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報價)。
您的信息已成功提交!
我們的客服人員稍后會與您聯(lián)系