成功的 Web 應(yīng)用系統(tǒng)性能測試_第1頁
成功的 Web 應(yīng)用系統(tǒng)性能測試_第2頁
成功的 Web 應(yīng)用系統(tǒng)性能測試_第3頁
成功的 Web 應(yīng)用系統(tǒng)性能測試_第4頁
成功的 Web 應(yīng)用系統(tǒng)性能測試_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、成功的 Web 應(yīng)用系統(tǒng)性能測試性能測試是 Web 應(yīng)用系統(tǒng)的一項(xiàng)重要質(zhì)量保證措施。在現(xiàn)實(shí)中,很多 Web 性能測試項(xiàng)目由于性能測試需求定義不合理或不明確,導(dǎo)致性能測試項(xiàng)目不能達(dá)到預(yù)期目標(biāo)或進(jìn)度超期。本文針對 Web 應(yīng)用系統(tǒng)的技術(shù)架構(gòu)和系統(tǒng)使用特點(diǎn),探討如何有效實(shí)施性能測試過程,并重點(diǎn)介紹如何分析獲得合理的性能測試需求,最終對 Web 應(yīng)用系統(tǒng)性能進(jìn)行科學(xué)、準(zhǔn)確的評估。    1 引言    基于Web服務(wù)器的應(yīng)用系統(tǒng)由于提供瀏覽器界面而無須安裝,大大降低了系統(tǒng)部署和升級成本,得以普遍應(yīng)用。目前,很多企業(yè)的核心業(yè)

2、務(wù)系統(tǒng)均是Web應(yīng)用,但當(dāng)Web應(yīng)用的數(shù)據(jù)量和訪問用戶量日益增加,系統(tǒng)不得不面臨性能和可靠性方面的挑戰(zhàn)。因此,無論是Web應(yīng)用系統(tǒng)的開發(fā)商或最終用戶,都要求在上線前對系統(tǒng)進(jìn)行性能,科學(xué)評價系統(tǒng)的性能,從而降低系統(tǒng)上線后的性能風(fēng)險。    在很多性能測試項(xiàng)目中,由于不能合理定義系統(tǒng)的性能測試需求,不能建立和真實(shí)環(huán)境相符的負(fù)載模型,不能科學(xué)分析性能測試結(jié)果,導(dǎo)致性能測試項(xiàng)目持續(xù)時間很長或不能真正評價系統(tǒng)性能并提出性能改進(jìn)措施。    本文在總結(jié)許多Web應(yīng)用系統(tǒng)性能測試實(shí)踐經(jīng)驗(yàn)和教訓(xùn)的基礎(chǔ)上,從與性能測試工具無關(guān)的角度介紹Web應(yīng)用系統(tǒng)性

3、能測試的方法和實(shí)施過程,以及如何定義合理的性能測試需求。    1.1 術(shù)語定義    性能測試:通過模擬大量瀏覽器客戶端同時訪問Web服務(wù)器,獲得系統(tǒng)的性能數(shù)據(jù)。    虛擬用戶:模擬瀏覽器向Web服務(wù)器發(fā)送請求并接收響應(yīng)的一個進(jìn)程或線程。    響應(yīng)時間:瀏覽器向Web服務(wù)器提交一個請求到收到響應(yīng)之間的間隔時間。    思考時間:瀏覽器在收到響應(yīng)后到提交下一個請求之間的間隔時間。    請求成功率:Web服務(wù)器正

4、確處理的請求數(shù)量和接收到的請求數(shù)量的比。    吞吐量:單位時間內(nèi)Web服務(wù)器成功處理的HTTP頁面或HTTP請求數(shù)量。    在線用戶:用戶通過瀏覽器訪問登錄Web應(yīng)用系統(tǒng)后,并不退出該應(yīng)用系統(tǒng)。通常一個Web應(yīng)用服務(wù)器的在線用戶對應(yīng)Web應(yīng)用服務(wù)器的一個Session。    并發(fā)用戶數(shù):Web服務(wù)器在一段時間內(nèi)為處理瀏覽器請求而建立的HTTP連接數(shù)或生成的處理線程數(shù)。當(dāng)所有在線用戶發(fā)送HTTP請求的思考時間為零時,Web服務(wù)器的并發(fā)用戶數(shù)等于在線用戶數(shù)。1.2 Web應(yīng)用系統(tǒng)技術(shù)架構(gòu) &#

5、160;  Web應(yīng)用系統(tǒng)的前端為瀏覽器,后臺為Web服務(wù)器(如Apache,Microsoft Internet Information Server),瀏覽器和Web服務(wù)器之間的交互基于HTTP協(xié)議。HTTP協(xié)議本身是無連接的,Web服務(wù)器通過Session機(jī)制來建立一個瀏覽器所發(fā)出的先后連接之間的關(guān)聯(lián)。通過實(shí)驗(yàn)證明,當(dāng)瀏覽器客戶端在首次訪問Web服務(wù)器后,如果該瀏覽器客戶端不發(fā)送后續(xù)請求,服務(wù)器維持該瀏覽器客戶端的Session變量所消耗的系統(tǒng)資源非常小。    2 Web應(yīng)用系統(tǒng)性能測試過程    標(biāo)準(zhǔn)的Web應(yīng)用系

6、統(tǒng)性能測試過程包括確定性能測試需求,開發(fā)性能測試腳本,定義性能測試負(fù)載模型,執(zhí)行性能測試和形成性能測試報(bào)告。本章將分別介紹上述過程,并通過舉例說明如何完成每一環(huán)節(jié)。    2.1 確定性能測試需求    科學(xué)定義Web應(yīng)用系統(tǒng)性能測試需求對一個成功的性能測試非常重要。通常,Web應(yīng)用系統(tǒng)的性能測試需求有如下兩種描述方法。    2.1.1 基于在線用戶的性能測試需求     該需求描述方法主要基于Web應(yīng)用系統(tǒng)的在線用戶和響應(yīng)時間來度量系統(tǒng)性能。當(dāng)Web應(yīng)用系統(tǒng)在上線后所支持

7、的在線用戶數(shù)以及操作習(xí)慣(包括操作和請求之間的延遲)很容易獲得,如企業(yè)的內(nèi)部應(yīng)用系統(tǒng), 通常采用基于在線用戶的方式來描述性能測試需求。以提供網(wǎng)上購物的Web應(yīng)用系統(tǒng)為例,基于在線用戶的性能測試需求可描述為:10個在線用戶按正常操作速度訪問網(wǎng)上購物系統(tǒng)的下定單功能,下定單交易的成功率是100%,而且90%的下定單請求響應(yīng)時間不大于8秒;當(dāng)90%的請求響應(yīng)時間不大于用戶的最大容忍時間20秒時,系統(tǒng)能支持50個在線用戶。    2.1.2 基于吞吐量的性能測試需求     該需求描述方法主要基于Web應(yīng)用系統(tǒng)的吞吐量和響應(yīng)時間來度量系統(tǒng)性能

8、。當(dāng)Web應(yīng)用在上線后所支持的在線用戶無法確定,如基于Internet的網(wǎng)上購物系統(tǒng),可通過每天下定單的業(yè)務(wù)量直接計(jì)算其吞吐量,從而采取基于吞吐量的方式來描述性能測試需求。以網(wǎng)上購物系統(tǒng)為例,基于吞吐量的性能測試需求可描述為:網(wǎng)上購物系統(tǒng)在每分鐘內(nèi)需處理10筆下定單操作,交易成功率為100%,而且90%的請求響應(yīng)時間不大于8秒。    2.2 開發(fā)性能測試腳本    在確定Web應(yīng)用系統(tǒng)性能測試需求后,就要根據(jù)性能測試需求中確定的功能開發(fā)性能測試腳本。比如,針對前面定義的網(wǎng)上購物系統(tǒng)的性能測試需求,將開發(fā)下定單功能的性能測試腳本。性能

9、測試腳本是描述單個瀏覽器向Web服務(wù)器發(fā)送的HTTP請求序列。每個性能測試工具(如IBM Rational Performance Tester, LoadRunner)所提供的測試腳本語法是不同的。測試人員利用性能測試工具可從頭手工編寫測試腳本,也可以通過錄制瀏覽器和Web服務(wù)器之間的網(wǎng)絡(luò)通信數(shù)據(jù)而自動形成測試腳本。    任何性能測試工具都不能保證錄制形成的性能測試腳本的正確性,測試人員應(yīng)通過在單用戶下運(yùn)行性能測試腳本對其正確性進(jìn)行驗(yàn)證。測試腳本不正確的一個重要原因就是腳本的數(shù)據(jù)關(guān)聯(lián)不正確,也就是并沒完全建立一個測試請求和前面的響應(yīng)內(nèi)容之間的關(guān)聯(lián)。測試腳本HT

10、TP請求和響應(yīng)之間的數(shù)據(jù)關(guān)聯(lián)是否正確的一個重要標(biāo)準(zhǔn)是單用戶運(yùn)行腳本,腳本能完成期望的功能。    在完成性能測試腳本的數(shù)據(jù)關(guān)聯(lián)后,需要對腳本進(jìn)行參數(shù)化,也就是把腳本中的某些請求數(shù)據(jù)替換成變量,變量的值來于一個獨(dú)立的數(shù)據(jù)文件,從而保證在多虛擬用戶運(yùn)行腳本的情況下,每個虛擬用戶所提交的數(shù)據(jù)是不同的。    此外,為了測試Web應(yīng)用的可靠性,還需要對請求所收到的響應(yīng)進(jìn)行驗(yàn)證(比如驗(yàn)證響應(yīng)的HTTP返回碼或驗(yàn)證響應(yīng)的內(nèi)容),便于性能測試完成后統(tǒng)計(jì)請求成功率。    2.3 建立性能測試負(fù)載模型 

11、0;  性能測試負(fù)載模型定義了測試工具如何向Web應(yīng)用系統(tǒng)提交請求,包括向Web應(yīng)用系統(tǒng)發(fā)送請求的虛擬用戶數(shù),每個虛擬用戶發(fā)送請求的速度和頻率。針對前面介紹的網(wǎng)上購物系統(tǒng)的性能測試需求,在性能測試工具中定義的性能測試負(fù)載模型應(yīng)包括如下信息:    虛擬用戶數(shù):性能測試不僅僅是執(zhí)行一次,而且每次執(zhí)行時虛擬用戶數(shù)也不固定,因此在性能測試負(fù)載模型中定義的虛擬用戶數(shù)將在測試執(zhí)行時進(jìn)行設(shè)置。    虛擬用戶發(fā)送請求的思考時間和迭代次數(shù):虛擬用戶發(fā)送請求的思考時間長短是決定Web應(yīng)用系統(tǒng)負(fù)載量的重要因素之一,而迭代次數(shù)將決定性能測試的執(zhí)

12、行持續(xù)時間。對基于在線用戶的性能測試需求,將基于錄制腳本時記錄的思考時間,而且由于現(xiàn)實(shí)中不同用戶訪問系統(tǒng)的思考時間不同,可把思考時間設(shè)置為在一定范圍內(nèi)的隨機(jī)值。對于基于吞吐量的性能測試需求,將把思考時間設(shè)置為零,此時Web應(yīng)用系統(tǒng)的在線用戶數(shù)量將等于并發(fā)用戶數(shù)。同時,為了避免性能測試壓力的隨機(jī)性,將增加請求的迭代次數(shù)來增加測試執(zhí)行持續(xù)時間,從而獲得系統(tǒng)在穩(wěn)定壓力下的性能數(shù)據(jù)。    虛擬用戶啟動模式:在現(xiàn)實(shí)中,Web應(yīng)用系統(tǒng)的用戶不太可能同時做相同的操作,因此為了讓W(xué)eb應(yīng)用系統(tǒng)所承擔(dān)的壓力隨時間均勻分布,建議虛擬用戶依次啟動,同時也避免大量用戶同時登錄造成系統(tǒng)阻

13、塞。以10個虛擬用戶模擬下定單為例,可設(shè)置每個虛擬用戶間隔30秒啟動,這樣10個虛擬用戶可在5分鐘后完成啟動,并保證10個虛擬用戶不會在同一時刻下定單,從而更符合實(shí)際情況。    2.4 執(zhí)行性能測試    執(zhí)行性能測試是指通過多次運(yùn)行性能測試負(fù)載模型,獲得系統(tǒng)的性能數(shù)據(jù)。在執(zhí)行過程中,需利用測試工具、操作系統(tǒng)、系統(tǒng)軟件(如Web Server或DB Server)提供的資源監(jiān)控手段對資源進(jìn)行監(jiān)控和分析,幫助發(fā)現(xiàn)資源瓶頸,并在系統(tǒng)層面進(jìn)行優(yōu)化。同時,還需對應(yīng)用進(jìn)行性能分析,幫助定位應(yīng)用代碼中的性能問題,切實(shí)解決系統(tǒng)的性能問題。2.5

14、形成性能測試報(bào)告    性能測試項(xiàng)目的最后階段就是向相關(guān)人員提交性能測試報(bào)告,匯報(bào)性能測試結(jié)果。在向相關(guān)人員匯報(bào)性能測試結(jié)果時,并不是性能測試報(bào)告越豐富、性能數(shù)據(jù)越多越好。好的性能測試報(bào)告是能準(zhǔn)確、簡單地傳遞性能測試結(jié)論,而不需太多的技術(shù)細(xì)節(jié)。    針對基于在線用戶數(shù)的性能測試需求,可通過下圖總結(jié)性能測試結(jié)論。其中橫軸是在線用戶數(shù),縱軸是響應(yīng)時間,如40在線用戶訪問網(wǎng)上購物系統(tǒng)時,90%的下定單請求響應(yīng)時間不超過10秒。    圖一:在線用戶數(shù)和響應(yīng)時間時間的趨勢圖   &

15、#160; 針對基于吞吐量的性能測試需求,可通過下圖的曲線來描述性能測試結(jié)果。以網(wǎng)上購物系統(tǒng)為例,下圖描述下定單的并發(fā)用戶、下定單響應(yīng)時間以及吞吐量(服務(wù)器每秒處理定單筆數(shù))之間的關(guān)系,從而快速判斷系統(tǒng)是否能滿足性能測試需求。從下圖中可看出,并發(fā)用戶增加,請求的響應(yīng)時間也增加。服務(wù)器的吞吐量是先隨并發(fā)用戶數(shù)增加而增加,當(dāng)吞吐量到達(dá)一定峰值后,再增加并發(fā)用戶數(shù),吞吐量會減少。原因在于當(dāng)并發(fā)用戶數(shù)少時,向Web服務(wù)器提交的請求量不大,服務(wù)器處理能力還有富余,所以吞吐量逐步增大;但當(dāng)并發(fā)用戶數(shù)超過某一值時,由于向服務(wù)器提交的請求太多,造成服務(wù)器阻塞,反而導(dǎo)致吞吐量減少。  

16、60; 圖二:響應(yīng)時間、吞吐量和并發(fā)用戶數(shù)的趨勢圖3 如何獲取合理的性能測試需求    前一章介紹了Web應(yīng)用系統(tǒng)的性能測試過程,確定性能測試需求是整個性能測試的起點(diǎn)和成功的重要因素。性能測試需求定義得過高,雖然確保系統(tǒng)上線后能滿足性能需求,但可能會造成硬件資源的浪費(fèi);性能測試需求定義得過低,系統(tǒng)上線后可能會出現(xiàn)性能問題。如何通過分析系統(tǒng)上線后可能的用戶訪問行為,來獲得合理的性能測試需求指標(biāo)呢?    假設(shè)現(xiàn)有一個基于Web的辦公自動化系統(tǒng)(簡稱OA系統(tǒng)),該系統(tǒng)提供公文收發(fā)和查詢功能。在部署該系統(tǒng)前,將對該系統(tǒng)進(jìn)行性能測試。下面將詳

17、細(xì)介紹如何分析該OA系統(tǒng)的使用情況,定義合理的性能測試需求。    3.1 如何獲得OA系統(tǒng)的在線用戶數(shù)量    在線用戶數(shù)量是指在特定時間區(qū)間內(nèi),有多少用戶訪問Web應(yīng)用系統(tǒng)(對應(yīng)到Web服務(wù)器的Session數(shù)),根據(jù)系統(tǒng)可能訪問用戶數(shù)以及每個用戶訪問系統(tǒng)的時間長短來確定。    對于將要部署的OA系統(tǒng),通過分析獲得該系統(tǒng)有8000個注冊用戶,基本上所有的用戶每天(8小時工作時間)都會訪問OA系統(tǒng),平均在線時間(從登錄OA系統(tǒng)到退出OA系統(tǒng)之間的時間間隔,也可以是多次在線時間的合計(jì))為12分鐘,那么該

18、OA系統(tǒng)的平均在線數(shù)(也就是Web應(yīng)用Session變量數(shù))為200個(8000 * 0.2 / 8),假設(shè)峰值在線用戶數(shù)是平均在線用戶數(shù)的3倍(該倍數(shù)可根據(jù)實(shí)際情況調(diào)整),則性能測試需求的在線用戶數(shù)為600。    3.2 如何確定OA系統(tǒng)的性能測試用例    由于時間和資源限制,不可能對Web應(yīng)用系統(tǒng)的所有功能進(jìn)行性能測試,而是從業(yè)務(wù)的角度(如某一功能操作的用戶多)和技術(shù)的角度(如某一功能雖然訪問用戶不多,但內(nèi)部處理邏輯復(fù)雜或處理數(shù)據(jù)量大)來選擇Web應(yīng)用系統(tǒng)的特定功能作為性能測試用例。    以O(shè)A系統(tǒng)為例,由于所有用戶都經(jīng)常公文查詢功能,因此確定的性能測試用例為公文查詢。    3.3 如何確定OA系統(tǒng)的響應(yīng)時間    響應(yīng)時間的快慢直接影響了系統(tǒng)使用用戶的滿意度,采用平均響應(yīng)時間來描述系統(tǒng)系統(tǒng)性能測試需求是不科學(xué)的,因?yàn)闊o法直接和客戶的滿意度掛鉤。而且,在做性能測試,如果某一請求的響應(yīng)時間過長或過短,將導(dǎo)致平均響應(yīng)時間和實(shí)際情況偏離。    以O(shè)A系統(tǒng)為例,定義的響應(yīng)時間需求為:90%(該百分比和要求的系統(tǒng)用戶滿意度相關(guān))的查詢請求

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論