版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 從此與賭博絕緣的誓言
- 品質(zhì)維護(hù)保修承諾
- 不可撤銷保證書的信用
- 全方位提升企業(yè)管理服務(wù)合同
- 購銷合同模板示例含詳細(xì)說明
- 運(yùn)費(fèi)結(jié)算合同協(xié)議范本格式
- 簡單租賃協(xié)議樣本
- 購房合同糾紛法律狀
- 碎石購銷協(xié)議樣式
- 招標(biāo)文件封面設(shè)計(jì)規(guī)范的制定作用
- 支撐梁拆除安全協(xié)議書
- 2024-2030年中國充血性心力衰竭(CHF)治療設(shè)備行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 五年級道德與法治上冊說課稿《古代科技 耀我中華(第一課時) 》部編版
- 小學(xué)語文大單元設(shè)計(jì)論文
- Unit 6 教學(xué)教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版七年級英語上冊
- Visio商業(yè)圖表制作分析智慧樹知到期末考試答案章節(jié)答案2024年上海商學(xué)院
- 競爭性談判工作人員簽到表及競爭性談判方案
- 山東省淄博市張店區(qū)2023-2024學(xué)年九年級上學(xué)期1月期末化學(xué)試題(含解析)
- 廈門旅游課件
- 人工智能導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年哈爾濱工程大學(xué)
- 單位食堂供餐方案(2篇)
評論
0/150
提交評論