Web性能測試方案_第1頁
Web性能測試方案_第2頁
Web性能測試方案_第3頁
Web性能測試方案_第4頁
Web性能測試方案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Web性能測試方案1測試目的此處闡述本次性能測試的目的,包括必要性分析與擴展性描述。性能測試最主要的目的是檢驗當前系統(tǒng)所處的性能水平,驗證其性能是否能滿足未來應(yīng)用的需求,并進一步找出系統(tǒng)設(shè)計上的瓶頸,以期改善系統(tǒng)性能,到達用戶的要求。2測試范圍此處主要描述本次性能測試的技術(shù)及業(yè)務(wù)背景,以及性能測試的特點。編寫此方案的目的是為云應(yīng)用產(chǎn)品提供web性能測試的方法,因此方案內(nèi)容主要包括測試環(huán)境、測試工具、測試策略、測試指標與測試執(zhí)行等。2.1測試背景以云采業(yè)務(wù)為例,要滿足用戶在互聯(lián)網(wǎng)集中采購的要求,實際業(yè)務(wù)中通過云采平臺詢報價、下單的頻率較高,因此云采平臺的性能直接決定了業(yè)務(wù)處理的效率,并能夠支撐業(yè)務(wù)并發(fā)的壓力。例如:支撐100家企業(yè)用戶的集中訪問,以及業(yè)務(wù)處理要求。2.2性能度量指標響應(yīng)時間〔TTLB〕即“timetolastbyte〞,指的是從客戶端發(fā)起的一個請求開始,到客戶端接收到從效勞器端返回的響應(yīng)結(jié)束,這個過程所消耗的時間,響應(yīng)時間的單位一般為“秒〞或者“毫秒〞。響應(yīng)時間=網(wǎng)絡(luò)響應(yīng)時間+應(yīng)用程序響應(yīng)時間。響應(yīng)時間標準:序號時間度量標準結(jié)果1小于2s優(yōu)2介于2s-5s良3介于5s-8s一般4大于8s差事務(wù)能力TPS〔transactionpersecond〕效勞器每秒處理的事務(wù)數(shù);一個事務(wù)是指一個客戶機向效勞器發(fā)送請求然后效勞器做出反響的過程。客戶機在發(fā)送請求時開始計時,收到效勞器響應(yīng)后結(jié)束計時,一次來計算使用的時間和完成的事務(wù)個數(shù)。它是衡量系統(tǒng)處理能力的重要指標。并發(fā)用戶數(shù)同一時刻與效勞器進行交互的在線用戶數(shù)量。 吞吐率〔Throughput〕單位時間內(nèi)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,也可指單位時間內(nèi)處理的客戶端請求數(shù)量,是衡量網(wǎng)絡(luò)性能的重要指標。吞吐率=吞吐量/傳輸時間資源利用率這里主要指CPU利用率〔CPUutilization〕,內(nèi)存占用率。3測試內(nèi)容此處對性能測試整體方案進行描述,包括測試內(nèi)容以及關(guān)注的性能指標。Web性能測試內(nèi)容包含:壓力測試、負載測試、前端連接測試。3.1負載測試負載測試是為了測量Web系統(tǒng)在某一負載級別上的性能,以保證Web系統(tǒng)在需求范圍內(nèi)能正常工作。負載級別可以是某個時刻同時訪問Web系統(tǒng)的用戶數(shù)量,也可以是在線數(shù)據(jù)處理的數(shù)量。例如:Web應(yīng)用系統(tǒng)能允許多少個用戶同時在線?如果超過了這個數(shù)量,會出現(xiàn)什么現(xiàn)象?Web應(yīng)用系統(tǒng)能否處理大量用戶對同一個頁面的請求?負載測試應(yīng)該安排在Web系統(tǒng)發(fā)布以后,放在Internet上接受負載測試。3.2壓力測試在一定飽和狀態(tài)下系統(tǒng)的處理能力,在負載測試的根底上,繼續(xù)加壓到一定階段即是壓力測試。壓力測試通常設(shè)定cpu使用率到達75%以上,內(nèi)存使用率到達70%以上,用于測試系統(tǒng)在壓力環(huán)境下的穩(wěn)定性。進行壓力測試是指實際破壞一個Web應(yīng)用系統(tǒng),測試系統(tǒng)的反映。壓力測試是測試系統(tǒng)的限制和故障恢復(fù)能力,也就是測試Web應(yīng)用系統(tǒng)會不會崩潰,在什么情況下會崩潰。黑客常常提供錯誤的數(shù)據(jù)負載,直到Web應(yīng)用系統(tǒng)崩潰,接著當系統(tǒng)重新啟動時獲得存取權(quán)。3.3前端連接測試用戶連接到Web應(yīng)用系統(tǒng)的速度根據(jù)上網(wǎng)方式的變化而變化,他們或許是電話撥號,或是寬帶上網(wǎng)。當下載一個程序時,用戶可以等較長的時間,但如果僅僅訪問一個頁面就不會這樣。如果Web系統(tǒng)響應(yīng)時間太長〔例如超過5秒鐘〕,用戶就會因沒有耐心等待而離開。另外,有些頁面有超時的限制,如果響應(yīng)速度太慢,用戶可能還沒來得及瀏覽內(nèi)容,就需要重新登陸了。而且,連接速度太慢,還可能引起數(shù)據(jù)喪失,使用戶得不到真實的頁面。以上需要關(guān)注的前端性能指標,主要包含以下三個指標:3.3.1加載時間指標a.TimetoFirstImpression表示從用戶在瀏覽器鍵入URL按下回車鍵一刻開始,到頁面開始有反響〔用戶可以在頁面中看見一點點內(nèi)容〕為止。直觀信號就是網(wǎng)頁開始顯示title。b.TimetoonLoadEvent表示從頁面開始顯示內(nèi)容,到瀏覽器開始觸發(fā)OnLoad函數(shù)〔開始執(zhí)行js〕這一時間段。只有當初始的文本和所引用的對象加載完成,瀏覽器才開始觸發(fā)OnLoad函數(shù)c.TimetoFullyLoaded表示從上一時間段末到整個網(wǎng)頁完全加載完成〔所有OnLoad函數(shù)以及相關(guān)的動態(tài)資源加載完成〕。3.3.2資源情況指標網(wǎng)頁由初始的html文本中嵌入圖片以及通過XHR或者修改dom樹動態(tài)加載的內(nèi)容組成,css負責(zé)樣式,js負責(zé)行為。a.TotalNumberofRequests包括html網(wǎng)頁請求,css、js資源下載及其它網(wǎng)絡(luò)請求。優(yōu)化的目標之一是要盡量減少請求數(shù)。b.TotalNumberofHTTP300s/400s/500s表示返回狀態(tài)為300〔重定向〕、400〔客戶端錯誤〕、500〔效勞器端錯誤〕的http請求。盡量防止這些請求,以提高頁面load的時間。造成這些狀態(tài)的原因經(jīng)常是效勞器的實施、配置和部署問題。c.TotalSizeofWebSite構(gòu)成網(wǎng)頁元素總的大小。圖片或者js庫的增加都會對下載時間造成重要的影響。d.TotalSizeofImages/CSS/JSimage、css、js在網(wǎng)頁元素大小中占主要比例。e.TotalNumberofXHR(XMLHttpRequest)Requests通過js異步從效勞器端獲得數(shù)據(jù)的請求數(shù)。一些js框架提供了跟效勞器端的更新機器,就是XHR請求。通過配置可以減少XHR請求的數(shù)目。3.3.3網(wǎng)絡(luò)連接指標瀏覽器底層的網(wǎng)絡(luò)連接對資源的下載速度有很大影響。資源的下載過程分為很多階段。下面介紹這些階段以及瀏覽器、網(wǎng)絡(luò)、請求如何影響這些階段的時間。a.DNSTimedns查詢的時間。網(wǎng)頁請求會產(chǎn)生一次尋找該網(wǎng)頁資源所在主機的dns查詢。在同個域名進行網(wǎng)頁切換不會造成新的dns查詢。b.ConnectTime指瀏覽器和效勞器之間建立tcp/ip連接的時間,對于ssl連接包括握手的時間。網(wǎng)絡(luò)連接過慢、使用ssl、使用短連接而非常連接都是造成connecttime較多的原因。c.ServerTime指收到請求后效勞器邏輯處理的時間,d.TransferTime這一指標與瀏覽器和效勞器之間的連接速度相一致,通過減小傳輸內(nèi)容或使用cdn來降低TransferTime。e.WaitTime等待時間和同一個域中效勞資源的數(shù)量直接相關(guān)。每個域的瀏覽器的物理網(wǎng)絡(luò)的限制,導(dǎo)致資源等待可用的連接。減少資源的數(shù)量,或?qū)①Y源散布在不同的域,能將這一時間降低。平均等待時間的大小更能反映等待時間是否需要注意。f.NumberofDomains/SingleResourceDomains部署網(wǎng)站資源的域主機數(shù)量是很重要的,因為它影響的DNS,連接和等待時間。專門用戶資源下載的域是必要的,他將直接減少等待時間。應(yīng)防止單一的資源域,否那么你將為dns查詢以及資源下載付出昂貴的代價。4測試執(zhí)行此處包含性能測試的軟硬件環(huán)境準備,所需測試工具與測試步驟。4.1環(huán)境與數(shù)據(jù)準備4.1.1負載測試主機數(shù)量配置詳情操作系統(tǒng)數(shù)據(jù)庫中間件測試工具監(jiān)控工具4.1.2壓力測試主機數(shù)量配置詳情操作系統(tǒng)數(shù)據(jù)庫中間件測試工具監(jiān)控工具4.1.3前端連接測試略4.2測試步驟與測試結(jié)果輸出4.2.1負載測試測試工具JmeterApacheJMeter是Apache組織開發(fā)的基于Java的壓力測試工具,用于對軟件做壓力測試,它最初被設(shè)計用于Web應(yīng)用測試,但后來擴展到其他測試領(lǐng)域。它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java小效勞程序、CGI腳本、Java對象、數(shù)據(jù)庫、FTP效勞器等等。測試步驟1.建立測試方案啟動jmeter后,jmeter會自動生成一個空的測試方案,用戶可以基于該測試方案建立自己的測試方案。2.添加線程組一個性能測試請求負載是基于一個線程組完成的。一個測試方案必須有一個線程組。測試方案添加線程組非常簡單。在測試方案右鍵彈出下拉菜單(添加-->Threads(Users)>線程組)中選擇線程組即可。jmeter中每個測試方案至少需要包含一個線程組,當然也可以在一個方案中創(chuàng)立多個線程組,那么多個線程組之間又會怎樣的順序執(zhí)行(串行還是并行)?在測試方案下面多個線程是并行執(zhí)行的,也就是說這些線程組是同時被初始化并同時執(zhí)行線程組下的Sampler的。線程組主要包含三個參數(shù):線程數(shù)、準備時長(Ramp-UpPeriod(inseconds))、循環(huán)次數(shù)。線程數(shù):虛擬用戶數(shù)。一個虛擬用戶占用一個進程或線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個線程數(shù)。準備時長:設(shè)置的虛擬用戶數(shù)需要多長時間全部啟動。如果線程數(shù)為20,準備時長為10,那么需要10秒鐘啟動20個線程。也就是每秒鐘啟動2個線程。循環(huán)次數(shù):每個線程發(fā)送請求的次數(shù)。如果線程數(shù)為20,循環(huán)次數(shù)為100,那么每個線程發(fā)送100次請求??傉埱髷?shù)為20*100=2000。如果勾選了“永遠〞,那么所有線程會一直發(fā)送請求,一到選擇停止運行腳本。設(shè)置合理的線程數(shù)對于能否到達測試目標有決定性的影響。在本例中,要求得到網(wǎng)站首頁在20QPS負載情況下的響應(yīng)時間,如果如果線程數(shù)量設(shè)置的過小,那么很可能無法到達設(shè)定的QPS要求。另外,設(shè)置合理的循環(huán)次數(shù)也很重要,除了上面介紹的固定循環(huán)次數(shù)與永遠外;也可以靈巧的選擇設(shè)定測試運行時間。勾選“調(diào)度器〞,進行調(diào)度器配置。3.添加HTTP請求添加完成線程組后,在線程組上右鍵菜單(添加>Sampler>HTTP請求)選擇HTTP請求。對于jmeter來說,取樣器(Sampler)是與效勞器進行交互的單元。一個取樣器通常進行三局部的工作:向效勞器發(fā)送請求記錄效勞器的響應(yīng)數(shù)據(jù)記錄相應(yīng)時間信息4.設(shè)置QPS限制本次性能測試的目的是“了解云采首頁在負載到達20QPS時的響應(yīng)時間〞,因此需要控制向云采首頁發(fā)送請求的負載為20QPS。QPS:QueryPerSecond每秒查詢率。是一臺查詢效勞器每秒能夠處理的查詢次數(shù)。在因特網(wǎng)上,作為域名系統(tǒng)效勞器的機器的性能經(jīng)常用每秒查詢率來衡量。4.2.2壓力測試測試工具UAPRunnerUAPRunner是一款面向樹形數(shù)據(jù)結(jié)構(gòu),模擬用戶〔UAPRunner中表示為虛擬用戶〕通過瀏覽器訪問B/S架構(gòu)和UAP平臺系統(tǒng)的行為、實現(xiàn)向效勞器端發(fā)送請求及對效勞器端發(fā)回的響應(yīng)進行處理的工具。利用UAPRunner可以實現(xiàn)對Web輕量級和基于UAP平臺的性能負載測試,通過模擬上萬的用戶實施并發(fā)負載。測試步驟1.下載安裝uaprunner7:8080/gitlab/test-team/download/tree/master/UAPRUNNER2.配置UAPRunner3.錄制并生成腳本4.創(chuàng)立用例流、場景5.編輯事務(wù)6.參數(shù)化7.增加虛擬用戶8.查看測試結(jié)果9.壓力數(shù)據(jù):cpu使用率到達75%以上,內(nèi)存使用率到達70%以上,查看系統(tǒng)穩(wěn)定性〔事務(wù)響應(yīng)時間、事務(wù)通過率〕4.2.3前端連接測試測試工具WebPagetestWebPageTest是一款非常強大的Web頁面性能評測工具,已經(jīng)開源。在該網(wǎng)站輸入你的url,就會生成1個url加載的時間瀑布圖,對所有加載的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論