摘要:無論你已經(jīng)進行過多少輪測試,一旦你的應(yīng)用程序已接近完成,那么只有一個辦法知道你的軟件是否可以滿足真實用戶群的實際需求,它就是負載測試。你可以使用負載測試工具來完成這項工作。
介紹
任何軟件開發(fā)項目接近完成的時候,它可能已經(jīng)通過無數(shù)次測試了,特別是在測試和開發(fā)同時發(fā)生的敏捷測試環(huán)境下。無論你已經(jīng)進行過多少輪測試,一旦你的應(yīng)用程序已接近完成,那么只有一個辦法知道你的軟件是否可以滿足真實用戶群的實際需求,它就是負載測試。你可以使用負載測試工具來完成這項工作。負載測試是指給軟件、應(yīng)用程序或網(wǎng)站加上模擬的需求,以測試其在不同的環(huán)境下的運行狀態(tài)的過程。
負載測試和性能測試
作為大家最了解且最常見的一種性能測試類型,負載測試即包括將常規(guī)壓力施加到軟件應(yīng)用或 IT 系統(tǒng),去看它們是否在正常條件下可以按照預期執(zhí)行。相對于施壓更大,更殘酷的壓力測試,負載測試確保了在給定參數(shù)范圍內(nèi),程序或系統(tǒng)不超過其預期設(shè)計的處理能力,而壓力測試是有關(guān)超載的事情,直到系統(tǒng)崩潰,應(yīng)用不能運行或不太可能出現(xiàn)的負載場景。這兩種測試方法在驗證給定的前端軟件如一個網(wǎng)站、后端系統(tǒng)如托管該網(wǎng)站的Apache 服務(wù)器是否能夠很好的處理真實負載起著重要的作用。壓力測試故意誘導失敗,這樣你就可以分析所涉及的突破點的風險,然后,也許你會選擇調(diào)整方案,使它們更優(yōu)雅地被打破。壓力測試對于應(yīng)對突發(fā)情況做準備,以及確定給定系統(tǒng)性能承載能力上限是很有價值的。但是,當涉及到簡單地確保軟件應(yīng)用程序或物理網(wǎng)絡(luò)在一般情況下可以承載用戶請求和操作,負載測試是完成任務(wù)的正確方法。
當然,應(yīng)該指出的是,如果你的應(yīng)用程序沒有做好預期,那么這意味著發(fā)布前的負載測試,在它發(fā)布后將變成一次壓力測試。閱讀我們的負載測試最佳實踐來避免這些常見陷阱。一旦負載啟動引發(fā)崩潰,從那一刻起,根據(jù)定義,就變成了壓力測試。這是負載測試和壓力測試經(jīng)常被混淆的主要原因,因為完全相同的測試在某些情況下可能會從負載測試變成壓力測試。
了解負載測試
負載測試是為一個應(yīng)用或系統(tǒng)盡可能地接近成品部署并在用戶群中創(chuàng)建的模擬環(huán)境。通過利用專業(yè)的測試軟件,負載測試可以讓開發(fā)團隊來回答這樣的問題“我的系統(tǒng)在這些環(huán)境下按照預期運行了嗎?”,“它的性能足夠好嗎?”正如微軟應(yīng)用性能測試指南所說:一個負載測試可以測量響應(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)類似:你可以修復和測試引擎,但如果引擎沒有安裝,則不能測試汽車在道路上的表現(xiàn)。其實,在軟件開發(fā)項目中的早期,你就能以一個集中的方式來測試特定組件的負載,例如測試后端性能問題,同時用戶輸入,在延長的時間周期里輸入的耐力,或其他任何可以給系統(tǒng)施壓,造成延時,內(nèi)存泄漏或功能崩潰的方式。那就意味著你已經(jīng)進行了負載測試,只不過是以一種受限的形式,并且已經(jīng)在探索多用戶訪問對系統(tǒng)的影響了。在一個不完整的系統(tǒng)上進行少數(shù)用戶輸入測試,性能測試專家 Scott Barber ,上述微軟資源的合著者之一,更愿意稱其為“多用戶功能測試?!痹俅螐娬{(diào),正確的負載測試需要一個幾乎完整的系統(tǒng),并且通常要求使用可以真實模擬數(shù)千用戶的測試軟件。
但有一個對所有規(guī)則的例外。對互聯(lián)網(wǎng)應(yīng)用而言有一個很明確的多用戶問題,從智能電話的 GPS 應(yīng)用,到在線多人視頻游戲,負載測試可以在系統(tǒng)上進行,而不必通過眾多用戶,因為多個用戶不是負載的唯一可能來源。有時負載可能是由大文件,大量的計算,甚至是弱網(wǎng)連接造成的。想想在 Acrobat 中打開 PDF ,或在 Photoshop 中打開一個 PSD 。系統(tǒng)遇到壓力時負載便產(chǎn)生。執(zhí)行打開文件的速度夠快嗎?如果文件過大,會使應(yīng)用程序崩潰嗎?你用什么標準來判斷你的應(yīng)用打開文件的“速度夠快”?能打開文件是可以接受的,但如果需要5分鐘呢?誰制定了系統(tǒng)的理想承載能力的標準,又依據(jù)什么呢?負載測試人員繪制的用戶的主觀偏好和系統(tǒng)的目標功能之間的界限又在哪里呢?
要成為一個優(yōu)秀的負載測試人員并能分析負載測試結(jié)果,往往還需要具備超過軟件工程和測試專業(yè)知識的東西,要深諳用戶體驗。
**負載測試的未來:了解用戶的真實想法
負載測試工具和性能測試工具的最終目的一般總是為了降低風險**,無論是對于軟件成功功能的風險,最終用戶感知的風險,或?qū)镜拙€的風險。當然,所有這三個是緊密交織在一起,所以,對于一個開發(fā)人員或測試人員知道它們是如何相互關(guān)聯(lián)的是很重要的。要敢于提出建議,如果你專注于減少中間標準,那么用戶感知和其他兩個因素通常會水到渠成。許多負載測試的問題歸根結(jié)底,更多的在于用戶感知,而非具體理想的頁面加載時間和其他技術(shù)統(tǒng)計數(shù)據(jù)。
實際上,雖然反復進行負載測試通常需要專門的軟件,但由于人為復雜因素的存在,數(shù)據(jù)解讀并不會像看起來那么簡單。例如,如果有人來到一個只加載文本的網(wǎng)站,那么用戶期待它立即加載,即便是一兩秒鐘的加載時間也是很難容忍的,但如果他們期望加載嵌入的視頻,那么用戶對響應(yīng)時間將更寬容。寬帶時代的到來,我們已經(jīng)逐漸習慣接收這些。隨著心理學對用戶體驗要素更深入的探索,發(fā)現(xiàn)了很多微妙的細節(jié),實際上人們更傾向于網(wǎng)站內(nèi)訪問速度均勻一致的緩慢,例如,整體加載速度較快,但有內(nèi)部速度不一致的心理。因此,沒有這種心理層面的認知,真正了解用戶的愿望和期望,再多的負載測試數(shù)據(jù)也不會以最大的感知效果來自動幫你改進軟件。
換句話說,如果你不理解人類的心理、用戶的行為和反應(yīng),你就不可能實現(xiàn)一個很真實的負載測試,并且更糟的是,你可能會誤解測試結(jié)果。這就是為什么在執(zhí)行負載測試時盡可能地模擬真實的終端用戶體驗很重要的原因,重復模擬用戶在接近最大負載時訪問一個網(wǎng)站或應(yīng)用程序,分析測試結(jié)果,然后對系統(tǒng)進行相應(yīng)的,盡最大可能來減少用戶體驗中的不愉快因素。由于開發(fā)周期越來越短,軟件公司可以通過簡單地專注于特定的故障以使用戶體驗更平穩(wěn)和高效,而不是解決高負載情況下遇到的所有問題,這樣可以節(jié)省時間和金錢。
本文由 OneAPM 張宇編譯自 SMARTBEAR 網(wǎng)站的文章《 What is LOAD TESTING ?》
本文轉(zhuǎn)自 OneAPM 官方博客
原文鏈接:https://smartbear.com/learn/performance-testing/what-is-load-testing/
點擊此處,免費申請 OneAPM 云端壓力性能測試軟件試用
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/8729.html
摘要:在技術(shù)上微信小游戲和小程序的區(qū)別是什么開發(fā)商在開發(fā)一款小游戲的時候通常會遇到什么問題怎么去規(guī)避和解決,來自騰訊游戲云資深架構(gòu)師余國良,將會給我們帶來微信小游戲架構(gòu)設(shè)計與開發(fā)方向。 轉(zhuǎn)載來源:云加社區(qū)原作者:余國良 小游戲自發(fā)布以來,微信平臺上已經(jīng)出現(xiàn)了不少現(xiàn)象級的小游戲,包括跳一跳。在技術(shù)上微信小游戲和小程序的區(qū)別是什么?開發(fā)商在開發(fā)一款小游戲的時候通常會遇到什么問題?怎么去規(guī)避和解...
摘要:在技術(shù)上微信小游戲和小程序的區(qū)別是什么開發(fā)商在開發(fā)一款小游戲的時候通常會遇到什么問題怎么去規(guī)避和解決,來自騰訊游戲云資深架構(gòu)師余國良,將會給我們帶來微信小游戲架構(gòu)設(shè)計與開發(fā)方向。 轉(zhuǎn)載來源:云加社區(qū)原作者:余國良 小游戲自發(fā)布以來,微信平臺上已經(jīng)出現(xiàn)了不少現(xiàn)象級的小游戲,包括跳一跳。在技術(shù)上微信小游戲和小程序的區(qū)別是什么?開發(fā)商在開發(fā)一款小游戲的時候通常會遇到什么問題?怎么去規(guī)避和解...
摘要:在技術(shù)上微信小游戲和小程序的區(qū)別是什么開發(fā)商在開發(fā)一款小游戲的時候通常會遇到什么問題怎么去規(guī)避和解決,來自騰訊游戲云資深架構(gòu)師余國良,將會給我們帶來微信小游戲架構(gòu)設(shè)計與開發(fā)方向。 轉(zhuǎn)載來源:云加社區(qū)原作者:余國良 小游戲自發(fā)布以來,微信平臺上已經(jīng)出現(xiàn)了不少現(xiàn)象級的小游戲,包括跳一跳。在技術(shù)上微信小游戲和小程序的區(qū)別是什么?開發(fā)商在開發(fā)一款小游戲的時候通常會遇到什么問題?怎么去規(guī)避和解...
摘要:深入淺出容器云系列文章是由時速云出品,本文是第二篇,歡迎大家不吝賜教。容器服務(wù)是一種高度可擴展的高性能容器管理服務(wù),服務(wù)于應(yīng)用的完整生命周期。存儲卷容器服務(wù)支持有狀態(tài)和無狀態(tài)服務(wù)。當容器重新部署時也會隨著容器在不同主機之間遷移。 導語:隨著以Docker為代表的容器技術(shù)在國內(nèi)的迅速發(fā)展,容器云也逐漸被廣大開發(fā)者所熟知,但容器云(CaaS)相比傳統(tǒng)的云主機(IaaS)在實際應(yīng)用中還存在著...
摘要:的核心是以容器為中心的管理環(huán)境。命名空間提供了名稱范圍。換句話說,確?;蛲惤M始終可用。用于管理有狀態(tài)應(yīng)用程序,它管理一組的部署和擴展,并提供有關(guān)這些的排序和唯一性的保證。 條分縷析帶你充分理解Kubernetes的各個細節(jié)與部分:它是什么,它如何解決容器編排問題,它包含哪些你必須掌握的關(guān)鍵對象,以及如何快速上手部署使用Kubernetes。 showImg(https://segme...
閱讀 1720·2021-11-17 09:33
閱讀 3565·2021-11-16 11:40
閱讀 3081·2019-08-30 11:23
閱讀 1080·2019-08-29 16:36
閱讀 2494·2019-08-29 13:23
閱讀 1772·2019-08-29 12:59
閱讀 1580·2019-08-29 12:42
閱讀 2008·2019-08-28 18:22