999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web應用的負載測試研究

2013-07-12 12:13:51張煥生劉春玲王靜
中國測試 2013年3期
關鍵詞:數據庫優化用戶

張煥生,劉春玲,王靜

(1.河北工程技術高等專科學校計算機系,河北滄州 061001;2.公安部第一研究所,北京 100048)

基于Web應用的負載測試研究

張煥生1,劉春玲1,王靜2

(1.河北工程技術高等??茖W校計算機系,河北滄州 061001;2.公安部第一研究所,北京 100048)

為保證Web系統在實際運行中提供良好可靠的性能,針對Web應用的復雜特點,提出基于訪問過程的負載測試方法。通過對用戶訪問過程進行劃分,綜合考慮影響測試結果的各種因素,并建立模型以模擬真實用戶,將該方法結合自動化測試工具應用在一個Web系統上,針對測試結果進行分析,提出優化方案。實驗表明:該方法能夠較準確地模擬Web應用的真實負載,找出瓶頸,提高系統性能。

Web應用;負載;訪問過程;聚類

0 引言

Web應用以其方便快捷、易于管理和維護等特點逐步深入到人們的生活中。因為業務量的不斷增大,一些熱門的Web站點在運行中頻繁發生數據延遲、服務中斷甚至癱瘓的事故,給用戶造成不便也給運營商帶來損失。因此,在Web應用投入使用之前,必須進行負載測試,考察各項度量指標,找出系統的瓶頸。但是,Web應用體系結構復雜、實現過程中多種技術的使用、Web用戶以及網絡的不確定性,都使得負載測試困難很大[1],而只有真正模擬了真實的用戶負載,測試結果才是準確可靠的,才能保證在實際運行中提供良好、可靠的性能,減少潛在的風險。針對這一問題,本文提出基于訪問過程的負載測試方法,綜合考慮影響測試結果的各種要素建立模型,較準確地模擬Web應用的真實負載,結合使用自動化測試工具LoadRunner進行組織和管理測試,能夠較快地收斂到被測試應用系統的負載承受能力和性能下降的轉折點,找出系統瓶頸,提出解決措施,從而提高系統的性能。

1 Web應用測試方案

由于Web應用的復雜特點,如何根據系統的使用方式和客戶端以及服務器端的各種特征信息來確定負載,使其接近于真實的用戶負載成為關鍵問題,本文提出了基于訪問過程的負載測試方法,見圖1。

該測試主要由以下2階段組成:

(1)采用基于訪問過程的負載測試方法初步確定Web應用的負載。建立真實有效的模型,充分考慮影響測試結果的若干因素,修正腳本。(2)由測試工具里面的負載產生器根據以上數據生成測試用例,并對某Web應用進行測試。利用性能監視器工具監視測試過程和結果,并反饋給測試者。

圖1 基于訪問過程的負載測試框架

1.1 基于訪問過程的負載劃分

把用戶對Web應用的訪問過程所經過的各個路徑以及完成這一路徑的不同方法叫做子過程。每個子過程可以分為更小的子過程,當子過程不能再分時,把它叫做一個基本訪問過程。根據這種思想把用戶對Web應用的整個訪問過程進行相對獨立的劃分,劃分出的若干個基本訪問過程作為虛擬用戶,初步分析這些虛擬用戶和實際使用中真實用戶給服務器施加的負載性質基本相同,進行初步的腳本錄制并保存。

例如用戶進行資源下載時,可把整個訪問過程做如圖2所示劃分。

1.2 服務器日志的聚類分析

對服務器日志的聚類分析[2]是在沒有先驗知識的情況下,將物理或抽象的對象集合劃分為類似的對象組成多個組,使同組中的對象具有最大的相似性,并進行標號。然后對簇進行處理分析,目的是確定各個訪問子過程的訪問頻率、持續時間以及百分比等要素,為設計測試用例提供依據。

圖2 訪問過程的劃分

Web日志挖掘并不是簡單地把數據挖掘算法應用在Web日志上,在使用挖掘算法之前必須進行數據預處理,由3個階段完成:(1)數據清洗。將服務器日志中用戶訪問頁面的日期、持續時間、IP地址等有用條目保留并格式化,刪除與本文訪問過程無關的信息。(2)用戶session的確定[3]。利用session對象存儲的信息與用戶建立聯系,得到用戶session信息,并格式化。(3)為確定各種用戶訪問過程的信息,做如下處理:

當訪問Web服務器的是注冊用戶時表示為:{userID,{sessID,{<pageID,time>}}},是匿名用戶時表示為:{ip,{sessID,{<pageID,time>}}}。其中sessID是用戶的session ID,pageID是頁面的ID,time是訪問的時間。userID是注冊用戶ID,ip是用戶IP地址。

數據預處理后,本文采用BIRCH算法[3]進行聚類分析。分析結果用于建立模型。

1.3 建立模型修正腳本

為使測試最接近于真實負載,充分考慮影響測試結果的各種因素,建立真實有效的模型。

1.3.1 訪問過程建模

把用戶對Web應用的訪問進行建模。對Web應用的訪問實際上是用戶執行的一系列訪問子過程,但測試中不可能窮舉所有的這些過程。虛擬用戶只要模擬與實際負載相同的負載水平即可,例如把下載的整個過程,分為登錄/瀏覽/搜索/下載4個子過程。即用4個虛擬用戶模擬此訪問過程。

用戶的每一訪問過程通常帶給系統的負載壓力是不完全一樣的,為準確模擬實際用戶的訪問過程,需確定各負載的百分比。例如,瀏覽和下載兩個訪問過程差別就很大。瀏覽一般是靜態頁面,帶給服務器的負載壓力小。而下載一般需與數據庫甚至其他子系統通信,帶給服務器的壓力就大得多。用戶百分比等信息通過聚類分析得到。基于此,對錄制的測試腳本進行修正。

1.3.2 訪問延遲建模

不同的用戶通常在完成同樣的訪問時所表現出來的延遲時間是不同的。為了更真實地模擬真實用戶的訪問過程,必須對用戶進行分類,劃分的越細致,延遲模型的準確度就越高。為此采用了正態分布的數學模型[4],用戶延遲圖如圖3所示。根據該模型建立比較準確的用戶延遲數據,修正腳本。

圖3 正態分布的用戶延遲圖

1.3.3 訪問放棄建模

根據日志分析器提供的信息,確定頁面可接受的打開時間,一旦超時將得出用戶可能的放棄率。如當首屏響應時間小于5s時是比較優秀的,放棄率為0%,10 s以內是可以接受的,放棄率是25%,10 s以上用戶會選擇刷新或離開。

1.3.4 其他負載信息建模

借助日志分析器并利用AUT和WUS方法[5-6]收集負載信息。

(1)訪問分布表。記錄Web應用各訪問在一天中不同時段的吞吐率情況。

(2)訪問簡表。記錄各訪問在高峰階段和非高峰階段的吞吐率對數據庫和Web服務器負載情況以及操作失敗帶來的風險信息。

2 測試工具的選擇

Web應用實現過程中涉及到多種技術的使用,使得測試任務非常艱巨。選擇合適的自動化測試工具可以減少測試的時間和測試開銷[7]。目前Web應用測試工具眾多,其中常用的Web性能測試工具有:微軟的WAS、Rational Robot、Jmeter、LoadRunner、OpenSTA等。其中LoadRunner可以預測系統的行為和性能,適用于各種體系架構。它能模擬成千上萬個用戶并發,進行實時地性能檢測,支持的協議和技術非常廣泛,可以最大限度地縮短測試時間,優化性能[8]。基于此選用其作為測試工具。

3 負載測試的實施

現對一個綜合型IT網站進行測試。該網站主要提供用戶的注冊登錄、IT信息、交流空間(論壇、群或Blog)、資源下載或上傳、搜索、視頻等。測試流程如圖4所示。

3.1 測試計劃的制定

測試計劃主要包括測試目標、策略、工具(本文測試工具選用LoadRunner)、進度和測試資源等。

3.2 設計測試場景

設計測試場景的關鍵是使設計的負載能代表真實負載,一般按以下3原則:

圖4 負載測試流程

(1)應確定訪問過程的組合以反映真實情況。窮舉執行所有訪問過程是不現實的,經驗表明選擇執行80%左右是比較有效的,選擇執行率高、給Web服務器和數據庫服務器帶來較重負載的訪問?;诖诉x擇了7個訪問過程:注冊、登錄、瀏覽、搜索、論壇、視頻和下載作為測試基礎。

(2)測試的速度應反映真實用戶訪問的速度。針對日志分析、性能監測結果,得到負載訪問數量、平均訪問時間(或思考時間)等信息。

(3)確定綜合負載以反映真實的測試數據。設計一天某時段的訪問數為2 000,根據7個訪問過程,綜合考慮各模型信息,得到綜合負載,給出部分數據如表1所示。

3.3 開發測試腳本

首先根據訪問過程的劃分使用LoadRunner[9]的Virtual User Generator生成初步的測試腳本;然后根據各種模型修正腳本,用LoadRunner的Controller組織管理測試;最后對腳本進行反復調試和驗證,保證測試結果的準確性。

3.4 運行、分析和優化

運行測試場景、分析結果、優化系統需要反復進行。

運行時由輕負載(如5~20個虛擬用戶)到中等負載(如20%左右的負載)再到重負載(如100%的負載)甚至超負載(如120%的負載)分階段進行。運行測試場景時,發現通過逐漸增加用戶數進行并發用戶(都運行相同的行為腳本,比如登錄操作)數目測試[10],來模擬峰值負載的時候,當用戶達到1000時,系統的運行響應速度開始降低,出現部分錯誤,再繼續增加一定用戶數量,系統中活動的用戶數竟呈直線下降,并且服務器返回大量錯誤信息。這說明,此時系統出現性能瓶頸,需要更新服務器硬件或對系統進行其他優化。

表1 測試用例生成

系統響應時間可以精確地找到性能下降的轉折點。運行中收集到的性能數據可通過LoadRunner Analysis生成一系列直觀的圖表和報告,供分析人員處理。經分析發現視頻用戶數和文件下載用戶數,是造成系統延遲的最大操作,其次是登錄、瀏覽、論壇等,這些都是訪問數據庫較頻繁的操作,那么影響性能的瓶頸即可能來源于數據庫。需要對數據庫進行優化處理。

經測試分析,發現系統性能瓶頸主要來源于數據庫和服務器,對系統可以進行以下3個方面的優化處理:(1)對于系統中頻繁訪問數據庫但內容更新較小的應用,使用html靜態化實現,例如論壇的公用設置信息,會大量被前臺程序調用,但更新較少,因此將其進行靜態化處理,以避免大量的訪問數據庫請求;(2)為解決服務器資源的不足,擴充服務器內存,增大IIS緩存空間,設立獨立的圖片服務器,在圖片服務器和應用服務器上進行不同的配置優化,以保證系統的執行效率和高消耗;(3)數據庫瓶頸問題,使用數據庫集群和庫表散列的方式解決,將數據庫進行分離,不同的模塊對應不同的數據庫或表,再進一步對頁面或功能進行更小的數據庫或表散列,以保證使用低成本的數據庫同時提高了系統的性能。優化之后要重新運行測試場景以驗證優化的有效性。

4 結束語

基于訪問過程的負載測試方法,指出了保證測試成功的關鍵因素,能夠提高系統性能。但是在模型的建立過程中完善其他的影響因素以及廣泛實施到各種Web應用是日后的研究重點。

[1]耿彩鳳.網絡測試中的Web測試[J].遼寧大學學報,2005,32(3):272-274.

[2]Han J,Kamber M.數據挖掘概念與技術[M].北京:機械工業出版社,2007.

[3]鄭玲霞,李大學.基于用戶聚類分析的網站導航結構智能優化研究與實現[J].重慶郵電學院學報,2005,17(6):763-767.

[4]張江河,葛瑋,董云衛.Web應用的負載測試策略研究[J].微機發展,2003,15(2):35-37.

[5]梁晟,李明樹.一種模擬驅動的Web應用程序性能測試方法[J].計算機研究與發展,2003,40(7):1069-1075.

[6]孫鐵昆.Web應用系統的測試技術研究與實現[D].武漢:湖北大學,2006.

[7]路曉麗.Web應用軟件的測試技術研究[D].西安:西北大學,2006.

[8]李健.基于Web應用系統的性能測試技術研究[D].西安:西安電子科技大學,2010.

[9]尹文斌,鄭劍.基于LoadRunner的Web負載測試[J].江西理工大學學報,2008,29(4):13-15.

[10]談姝辰,尹軍.基于負載的Web性能測試研究與應用[J].現代電子技術,2007,253(14):139-142.

Load testing based on web app lication

ZHANG Huan-sheng1,LIU Chun-ling1,WANG Jing2
(1.Department of Computer,Hebei Engineering and Technical College,Cangzhou 061001,China;
2.The First Research Institute of Ministry of Public Security,Beijing 100048,China)

To ensure good and reliable performance of web system in actual operation,the authors proposed a load testmethod based on access process for complex Web application features.The access processes of users were divided and the models were built by considering the various factors to simulate the case of real users.And thismethod was combined with automated testing tool used in a web system to analyze the test results,and then optimization schemes were proposed.The experiment results show that it is able to more accurately simulate real load,find the bottlenecks,and improve system performance.

web application;load;access process;clustering

TP393.4;TP393.071;TP202+.7;TP391.9

A

1674-5124(2013)03-0096-04

2013-01-07;

:2013-03-01

張煥生(1978-),女,河北滄州市人,講師,碩士,主要從事計算機應用研究。

猜你喜歡
數據庫優化用戶
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 国产精品jizz在线观看软件| 久久久国产精品无码专区| 国产午夜精品鲁丝片| 在线免费不卡视频| 中文字幕有乳无码| 日本影院一区| 国产成人综合亚洲欧美在| 丰满人妻久久中文字幕| 精品国产福利在线| 在线观看精品自拍视频| 色哟哟色院91精品网站| 亚洲精品午夜无码电影网| 亚洲aⅴ天堂| 无码人中文字幕| 亚洲男人的天堂在线| 亚洲伊人电影| 亚洲欧美一区在线| 国产不卡国语在线| 九九九精品成人免费视频7| 精品福利国产| 操国产美女| 好紧好深好大乳无码中文字幕| 国产精品永久在线| 色婷婷成人| 成人国产免费| P尤物久久99国产综合精品| 国产成人1024精品| 欧美a√在线| 久久国产精品麻豆系列| 久久精品丝袜高跟鞋| 999精品色在线观看| 青青草91视频| 宅男噜噜噜66国产在线观看| 亚洲美女视频一区| 欧美一区精品| 日本手机在线视频| 三上悠亚一区二区| 国产第三区| 欧美成人日韩| 不卡无码h在线观看| 久久a毛片| 国产在线精品99一区不卡| а∨天堂一区中文字幕| 中文字幕色在线| 一级毛片在线免费视频| 无码国产伊人| 日韩东京热无码人妻| 99偷拍视频精品一区二区| 国产区免费精品视频| 国产午夜人做人免费视频中文| 最新国产精品第1页| a级毛片在线免费| 国产高潮流白浆视频| www精品久久| 国产亚洲欧美另类一区二区| 美女被操黄色视频网站| 亚洲综合亚洲国产尤物| 亚洲中文在线看视频一区| 永久在线精品免费视频观看| 久久亚洲美女精品国产精品| 日韩无码黄色| 欧美在线观看不卡| 日韩高清在线观看不卡一区二区| 97国产在线播放| 日本不卡视频在线| 国产精品开放后亚洲| 国产熟睡乱子伦视频网站| 欧美午夜在线播放| 亚洲大学生视频在线播放| 国产白浆在线观看| 九九九精品视频| 男女性色大片免费网站| 欧美 亚洲 日韩 国产| 2020国产精品视频| 国产福利在线免费| 欧美高清视频一区二区三区| 欧美日韩成人在线观看| 日本午夜影院| 久久久久人妻一区精品| 成人在线不卡视频| 国产成人精品综合| 亚洲人成网7777777国产|