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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論