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

基于多Agent的Web負載測試框架研究

2006-12-31 00:00:00張曉瑞張毅坤
計算機應用研究 2006年9期

摘要:提出了一種基于角色的多代理Web負載測試框架,其核心的三種角色代理均采用一種擴展的BDI代理模型。BDI代理中可動態加載能力組件的功能顯著地提高了Web測試的包容性和可擴展性。該框架描述了大量執行不同測試任務的Agent和Agent集,以及支持它們相互通信的Agent通用平臺。最后通過一個簡單的原型系統,對該模型的性能和可行性進行了驗證。

關鍵詞:MultiAgent; 擴展BDI; 能力組件; 擴展性

中圖法分類號:TP393文獻標識碼:A

文章編號:1001-3695(2006)09-0195-03

隨著Internet的推廣成熟,Web服務已經成為一個分布的、超媒體的軟件平臺,許多新的應用應運而生[1]。為了提高Web的服務質量,通常需要對Web應用軟件的質量和性能進行準確的評測。負載測試試圖通過模擬大量的用戶行為對待測Web應用生成一定的工作負載,從而確定系統的可擴展性和性能,檢測系統的瓶頸,使得Web應用能夠提供更好的服務。

與傳統的軟件相比,基于Web的應用出現了許多新的特征[2]。例如,Web應用通常運行在一個動態和開放的網絡環境中,信息的表現形式和執行平臺是多種多樣的。由于提供的服務不同,它們面向的用戶類型也千差萬別。目前,國內外研究機構已經對Web應用軟件的負載測試進行了大量研究,并開發了一些測試工具。但是現存的測試工具還存在很多不足,它們只能較好地滿足某些類型應用的需求[3]。隨著網絡技術的迅速發展,Web應用的進化周期變得越來越短,應用系統間的通信和協作也變得日益顯著。測試工具還需具有較好的擴展性和可移植性。鑒于以上問題,本文提出了一種基于多角色代理的負載測試框架。

1基于MultiAgent的負載測試框架

1.1基于角色的MultiAgent的負載測試框架

為了保證Web應用能夠為用戶提供更為高效的服務,對其進行有效的負載測試是必不可少的。負載測試的關鍵問題是如何模擬具有高度用戶等價性的典型負載。由于網絡環境中服務類型的多樣化和服務內容的不斷更新變化,測試方法和測試技術也需要進行動態調整。這就要求測試模型需具有較好的通用性和可擴展性。針對Web應用的分布性、異構性和動態性的特點,為了更好地模擬用戶行為,本文提出了一種通用的面向角色的多代理測試框架。

在本框架中,將大量用戶分為多個用戶群。用戶群的數量可以由測試人員自由配置。每個用戶群又包含了一些時間狀態,不同用戶群的狀態會隨著時間的變化而自動遷移。同時,一個用戶群的狀態遷移可能導致其他用戶群狀態的遷移,這就要求用戶群間能夠很好地通信和協作。該框架采用了分層的體系結構,即Agent集和嵌套的Agent集。不同層次的Agent集能夠動態協作來處理指定的任務。其結構如圖1所示。

整個測試任務被分解為許多子任務,由適當的Agent執行。根據Agent在測試過程中職責和權利的不同,將它們分為三種角色,即ManageAgent(MA)、ControlAgent(CA)和TaskAgent(TA)。通過Agent間的相互通信和協作,共同完成整個測試任務。三種代理均采用一種擴展的BDI(Belief,Desire,Intension)模型,并通過這種智能模型進行通信和協作,處理測試過程中用戶群內部與不同用戶群之間的各種事務。

本框架與以往測試框架相比,所有的測試任務均是由具有不同能力的Agent完成的。每個Agent是相對簡單的,而其整體卻是強有力且可擴展的。Agent能夠動態地進入和離開系統,最大程度地實現了系統的靈活性和可擴展性。相同角色的Agent可能具有相似的功能,但是由于其處理的信息格式和執行平臺不同,使用的測試方法和測試標準也有所差異。不同的Agent可以使用不同的編程語言實現,也可以在不同的計算機和系統平臺上執行。這使系統能夠靈活地集成不同的功能組件,提高了系統的可擴展性和其他性能。分級策略則能夠更好地控制整個測試過程。

1.2擴展的BDI代理模型

BDI模型是一種基于哲學基礎的重要的Agent認知模型[4]。它提供了一套邏輯理論,通過信念、愿望和意圖三個主要的思維狀態來表示Agent的推理模型和推理策略。信念是Agent所處的環境信息、自身的信息和其他相關Agent信息的集合;愿望是Agent希望達到和希望保持的狀態;意圖用來描述Agent為達到某個愿望所作出的承諾,是規劃的邏輯抽象。規劃則是意圖的具體實現路徑,可以看作原子動作的集合。

純粹基于BDI的Agent模型很難滿足實時性要求高、需求變化迅速的Web負載測試系統的需求。本框架中的Agent采用了一種擴展的BDI模型[5],它在原有BDI模型的基礎上增加了可動態加載的能力組件。在系統設計和實現時,提供一些接口和標準元數據的定義。當新需求出現時,可以動態地創建Agent,并依據前面的定義,增加相應能力組的實現。這樣可以滿足需求的變化,且無須改動原有的系統。該模型對實時性和動態性要求很高的Web負載測試系統更加適合,使系統的開發和維護代價更低,并增加了系統的可擴展性和可重用性。

在本框架中,需要將系統中Agent的共同特征提取出來,定義一個基類Agent,其他Agent繼承基類Agent的結構。基類Agent=(B,D,I,Tr,Re,Ev,Pr,Co,Ca)。其中,B,D,I與BDI模型中的含義相同;Tr是觸發器,根據Agent信念和其所關心的環境的改變,形成所要執行事件的愿望;Re是感知機,通過標準格式的消息接收、感知外界環境輸入;Ev是評估器,評估執行感知機和觸發器送來的愿望所帶來的效用,確定該愿望的類型和優先級,并對愿望執行進行規劃,將規劃好的愿望放入意圖隊列;Pr是處理機,可以同時執行多個意圖隊列中的意圖;Co是通信組件,負責發送和接收Agent之間進行交互時的消息;Ca是能力組件,決定Agent的類型,Agent通過能力組件執行意圖。

利用擴展的BDI代理模型進行Web負載測試。首先根據測試需求用資源描述語言描述每個不同角色代理要達到的本地目標,由基類生成的Agent實例不具有任何能力組件,它需要根據自己的本地目標選擇定義相應的能力組件;然后,各Agent根據自身的信念狀態,產生相應的愿望和意圖狀態,執行一系列規劃。每個Agent只負責管理本地目標,當在不影響本地目標的情況下會與其他Agent進行協作。

1.3三種角色代理

1.3.1ManageAgent

MA層是負載測試框架中最核心的部分。它要對包括測試需求的獲取、測試腳本的生成、測試的執行、測試數據的收集和分析在內的整個測試過程進行配置和管理。

在本框架中,可以使用多種標準來劃分用戶群,不同的劃分標準產生的用戶群可能會有交叉。MA為了簡化測試過程,據此生成平行的用戶群測試腳本。

當測試開始時,MA會生成一個用戶界面,指導測試者按照一定的規程進行測試。首先測試人員需要設置測試需求和一系列目標用戶群的配置信息。測試需求主要包括測試服務器的數量、模擬用戶的數量及預期性能參數等常規參數;目標用戶群的配置信息包括本用戶群的特征信息和不同時間段用戶群的狀態信息。特征信息是指測試任務序列、文件的請求頻率、測試任務的迭代執行次數、用戶思考時間等參數;狀態信息主要是各用戶群用戶所占的比例。每類用戶群的配置信息被保存在一個配置文件中,然后MA會錄制以上用戶填寫的測試需求,針對每一個用戶群生成相應的測試腳本,保存在XML文件中。同時MA會根據目標用戶群的信息創建多個CA,由它們來具體監控和管理各個用戶群的測試任務。

為了能夠更好地模擬用戶群的狀態遷移及其相互影響,MA還需要具有狀態遷移的評估和仲裁功能。一方面,它根據測試需求在某一時刻到來時及時地調整各用戶群的執行狀態,實施下一時間段的測試腳本;另一方面,它還能與測試人員進行交互,實時地響應來自外界的強制刺激(主要是測試人員由于某種原因突然改變測試計劃),或根據測試過程中的狀態參數,如系統中某一用戶群的數據流量或響應延遲到達某一臨界值等,對用戶的狀態進行評估,并對測試計劃進行適當調整,及時轉換相關用戶群的狀態,然后,MA會以消息的方式通知各個用戶群的CA。

測試結束時,MA從各個用戶群的CA處收集測試結果數據并加以分析,最后以圖表或文件等形式輸出結果。

1.3.2ControlAgent

CA層位于MA層的下方。它與其下層的TA相互協作來模擬某個用戶群的行為。

CA首先對MA層生成的本用戶群的測試腳本文件和配置文件進行解析,獲得自己的測試任務;然后CA將測試任務細化為多個子任務,如CA需要根據文件請求頻率、請求文檔類型和大小、用戶思考時間等參數,設計更為詳細的測試任務執行時間表以及每個子任務執行所需的能力和參數;最后,CA會根據Agent注冊表的內容按照一定的匹配關系將不同的子任務分派給最適合的TA來完成具體的操作,并將測試任務和參數以消息的方式傳遞給它們。

在測試的執行過程中,CA還需要不斷地從TA處獲取它們的執行狀態參數。當數據流量或響應延遲等性能參數到達某一臨界值時,CA要立即向MA發出警告信息。由MA對該用戶群的執行狀態作出評估和仲裁,對測試計劃進行適當調整,及時地轉換相關用戶群的狀態。

每個TA執行完當前的任務時,會將最后的測試數據提交給CA。由CA匯總本用戶群所有的測試數據并加以整理,然后繼續向上提交給MA,等待下一個測試任務。

1.3.3TaskAgent

TA層位于系統的最底層,執行最簡單的原子任務。由于Web平臺和應用系統中媒體及數據格式的多樣化,可能需要使用不同的算法,或是在不同的平臺上進行測試。這就使測試任務變得非常復雜。MultiAgent系統能夠提供一個可靠的途徑來解決這個問題。它可以創建不同的Agent,它們均具有相似功能,但是卻有不同的工作能力,因此可以被指定去測試不同類型的信息。如圖2所示,針對Web系統中提供的不同服務,創建不同的TA。它們分別采用不同的測試方法和技術生成不同類型的典型負載。

每個TA一旦被創建,首先需要將自身的能力以消息的方式提交給CA進行注冊,然后等待CA為其分派適當的任務。當TA收到來自CA的任務消息時,TA會根據消息中的測試參數,與待測服務器進行連接并自動生成一定數量的典型負載,在某一特定時刻同時向待測服務器發出請求。測試過程中,TA還需要將每一事務的處理時間、服務器狀態、連接是否失敗等狀態參數記錄下來提交給CA,以保證CA能實時地了解測試的執行狀況。測試任務完成后,TA會將所有的測試結果數據提交給其上層的CA,并自動撤銷。

2多代理間的通信及協同合作

由于Agent能夠在不同的操作系統上進行操作,它們需要在一個Agent平臺上通過消息機制相互通信,共同協作來完成測試任務。為了提高系統的互操作性和擴展性,我們將通信機制劃分為以下三層:①最底層是消息機制層。Agent通過一個建立在操作系統上的輕型Agent平臺傳遞消息,彼此通信。通常可以采用消息盒(Mbox)的概念來實現Agent間的通信。②中間層定義了消息的內容。它通常包括兩個部分,即測試任務和有關Agent自身的信息,如測試請求、測試結果、Agent執行測試任務的能力和資源需求等。③最高層是通信協議層。它定義了消息的格式與Agent間的協作序列。

為了便于Agent的管理,需要為除底層外的每個Agent分配一個Agent注冊表,保存它們下層每個Agent的能力和性能的記錄。每一個Agent加入系統時要向其上層Agent注冊它的能力。當Agent發送一個消息給其上層的Agent時,它的意圖應該非常明顯:注冊其能力、提交測試工作請求或報告測試結果等。

本框架中的Agent均使用擴展的BDI模型,它們之間的交互就是改變代理的思維狀態[6]。通過告知、請求和響應等言語行為使Agent的信念、愿望和意圖發生變化。對某一次交互而言,接收方首先根據收到的信息形成新的信念狀態,并由此產生新的愿望、意圖狀態、激發行為或進一步的交互。在多個Agent之間進行多次交互后,可以形成群體承諾和聯合意圖,為多個Agent協作行為打下基礎。

3原型系統

為了驗證提出模型的可行性和性能,設計并實現了一個原型系統來測試Web應用的性能。如圖3所示,原型系統包括大量的Agent來執行相關的測試任務。這些Agent被分布在管理服務器、測試服務器和客戶端不同的計算機中。實際上,Agent能夠根據其特定的功能在任意時刻自由地移動和改變它們的位置。但是所有的Agent均不被允許進入被測系統,防止給被測系統引入新的可變因素,造成測試結果不準確。表1簡要地描述了實現的Agent及其功能。

該原型系統是使用Java語言進行開發的,并使用XML語言來定義測試腳本。Agent間的通信采用KQML語言描述,并利用XML進行封裝,通信協議則是在Speechat的基礎上開發的。首先根據上述的擴展BDI模型定義一個通用的基類Agent,采用RDFS來對能力組件進行定義,包括能力類型、能力ID、能力描述、動作列表等參數。可以使用RDF解析器對定義好的能力組件進行解析,從而進行選擇和編輯等操作。系統中所有其他Agent均是從基類Agent繼承而來的。初始化時不具有任何能力組件,其后根據自己的本地目標定義相應的能力組。

使用原型系統對西安理工大學軟件工程研究所的網站進行了簡單的測試。由于網站面向的用戶類型比較單一,我們只簡單地將用戶群分為學生、老師兩個部分,他們的訪問時間和訪問內容可能不同。網站提供了成員簡介、新聞專題、資料共享、FTP等服務。根據測試內容的不同,除了測試所需的常規Agent外,還創建了實現具體測試任務的TA,它們分別加載了具有測試靜態文本HTTP,NNTP,JDBC服務的能力組件。測試結果如表2所示。被測網站的最大承受能力為480個用戶左右,與預期的不超過500個用戶接近。

表2測試結果

為了測試原型系統的可擴展性,我們在原網站的基礎上增添了郵件服務的功能。這時,只需要在原型系統中加載測試MAIL的能力組件即可。首先使用RDF來描述MailAgent的能力,然后通過加載語句動態地加載郵件功能,而無須改動其他的組件。這樣大大簡化了系統的維護過程。

ClassLoaderloader=newCapabilityLoader(host,Mail);

ObjectmailAgent=loader.loadClass(\"MailAgent\",true).newInstance();

MailAgent.getDeclaredMethod(\"register\",1).invoke(mailAgent,1);

4結論

本文提出了一種基于多代理的負載測試框架,詳細說明了系統設計和實現的關鍵技術,并設計了一個適用Agent間通信的通用平臺。該框架中所有的Agent使用一種擴展的BDI模型,可以動態地加載能力組件到自己的代碼中,因而可以執行不同的動作、完成不同的功能,使整個系統的包容性和擴展性得到了顯著的提高,大大降低了系統開發和維護所需的時間及費用。由于MAS使用Java開發,因此可以很方便地將其應用移植到其他的操作平臺上。實驗證明Agent技術非常適合測試實時性和動態性很高的Web系統。

在框架的實現過程中,還有一些問題需要進一步完善,如各Agent的協作、通信以及沖突的消解策略均是亟待解決的問題。隨著多Agent技術、人工智能技術不斷發展和進步,該框架會越來越完善,它會為Web應用提供更為成熟的測試方法和工具。

參考文獻:

[1]Hong Zhu.Cooperative Agent Approach to Quality Assurance and Testing Web Software[C].Proc. of the 28th Annual International Computer Software and Applications Conference,2004.110-113.

[2]Crowder R,Wills G,Hall W. Hypermedia Information Management:A New Paradigm[C].Proceedings of the 3rd International Conference on Management Innovation in Manufacture,1998.329-334.

[3]David Kung.An Agent-based Framework for Testing Web Applica-tions[C].Proceedings of the 28th Annual International Computer Software and Applications Conference,2004.174-177.

[4]康小強,石純一.基于BDI的多Agent交互[J].計算機學報,1999,22(11):1166-1171.

[5]趙新宇,林作銓.基于Agent的供應鏈模型[J].計算機科學,2004,8(31):16-21.

[6]劉新宇,洪炳镕.基于BDI框架的多Agent動態協作模型與應用研究[J].計算機研究與發展,2002,39(7):797801.

作者簡介:

張曉瑞(1979),女,河南人,碩士研究生,主要研究方向為軟件測試;

張毅坤(1958),男,陜西人,教授,主要研究方向為軟件工程。

主站蜘蛛池模板: h视频在线播放| 国产午夜福利片在线观看| 麻豆精品国产自产在线| 全部无卡免费的毛片在线看| 久久特级毛片| 亚洲成人精品久久| 婷婷色丁香综合激情| 丰满人妻一区二区三区视频| 日韩黄色在线| 一级全黄毛片| 国产美女精品人人做人人爽| 国产69精品久久久久妇女| 欧美色视频在线| 日韩亚洲高清一区二区| 精品午夜国产福利观看| 精品第一国产综合精品Aⅴ| 996免费视频国产在线播放| 日韩精品一区二区三区大桥未久 | 免费观看三级毛片| 激情视频综合网| 爆乳熟妇一区二区三区| 久久青青草原亚洲av无码| 天堂成人av| 欧美国产视频| 国产波多野结衣中文在线播放| 国产亚洲精品自在线| 国产剧情无码视频在线观看| 久久精品国产一区二区小说| 91原创视频在线| 国产精品女熟高潮视频| 国产区在线看| 99这里只有精品在线| 国产精品30p| 四虎影视无码永久免费观看| 中文字幕av无码不卡免费 | 青青国产视频| 久热中文字幕在线| 狠狠色香婷婷久久亚洲精品| 免费国产一级 片内射老| 91麻豆久久久| 国产凹凸一区在线观看视频| 亚洲伊人久久精品影院| 尤物视频一区| 99热线精品大全在线观看| 国产网友愉拍精品| 久久精品国产电影| 在线观看视频99| 国产自在线拍| 操国产美女| 欧美a在线视频| 一级成人欧美一区在线观看 | 成人亚洲天堂| 红杏AV在线无码| 欧美成人aⅴ| 国产第八页| 精品久久久久久成人AV| 久久性妇女精品免费| 91美女视频在线观看| 亚洲无限乱码| 欧美一区中文字幕| 日本五区在线不卡精品| 久久国产精品麻豆系列| 99久久性生片| 白浆视频在线观看| 国产欧美网站| 久久公开视频| 孕妇高潮太爽了在线观看免费| 久久永久视频| 欧美啪啪一区| 一级香蕉人体视频| 国产91视频观看| 99精品久久精品| 狠狠色噜噜狠狠狠狠色综合久 | 国模在线视频一区二区三区| a级毛片免费在线观看| 女人爽到高潮免费视频大全| 午夜激情婷婷| 色噜噜狠狠色综合网图区| 亚洲天堂网在线播放| 国产免费久久精品99re不卡| 尤物视频一区| 特级做a爰片毛片免费69|