王寶成
摘? ?要:網(wǎng)格軟件測(cè)試是網(wǎng)格研究中的重要組成部分,也是非常關(guān)鍵的技術(shù)。服務(wù)導(dǎo)向下的網(wǎng)格軟件測(cè)試正是其中的重點(diǎn),通過(guò)運(yùn)用SOA,采取積極有效的方法和措施,從網(wǎng)格服務(wù)測(cè)試、網(wǎng)格性能測(cè)試和網(wǎng)格軟件測(cè)試實(shí)施和管理3方面對(duì)測(cè)試環(huán)境進(jìn)行研究,并針對(duì)性地開(kāi)發(fā)出一個(gè)適用其中的測(cè)試工具。
關(guān)鍵詞:SOA;網(wǎng)格軟件;測(cè)試環(huán)境
面向服務(wù)的結(jié)構(gòu)(Service-Oriented Architecture,SOA)是一種具有集成性、可擴(kuò)展性、安全性的以關(guān)注服務(wù)為主的分布式體系結(jié)構(gòu),網(wǎng)格使之亦然,但其更多的作用在于資源的共享以及協(xié)同工作。為了達(dá)到兩者有效聯(lián)合的目的,Web服務(wù)應(yīng)運(yùn)而生,并且隨著分布式對(duì)象技術(shù)的逐漸應(yīng)用,更加推行了SOA的發(fā)展,Web服務(wù)的導(dǎo)向更進(jìn)一步地落實(shí)了網(wǎng)格軟件的測(cè)試進(jìn)步。因此,基于服務(wù)導(dǎo)向下的網(wǎng)格發(fā)現(xiàn)通過(guò)SOA的應(yīng)用,可以提供方便、快捷的平臺(tái)環(huán)境,調(diào)整相應(yīng)的網(wǎng)格解決方案的架構(gòu),實(shí)現(xiàn)有效性和透明性。然而,在這樣的優(yōu)勢(shì)下,難免還面臨著較多的分布式對(duì)象技術(shù)的問(wèn)題,因此,需要進(jìn)行相應(yīng)的理解和分析,逐步進(jìn)行改良與發(fā)展[1-2]。
1? ? 網(wǎng)格服務(wù)測(cè)試
目前,Web服務(wù)在市場(chǎng)上頗受追捧,因而網(wǎng)格服務(wù)測(cè)試能夠充分借鑒于此,并不斷有效地修訂和完善面向網(wǎng)格服務(wù)的基本準(zhǔn)則,實(shí)現(xiàn)網(wǎng)格服務(wù)測(cè)試的標(biāo)準(zhǔn)化和規(guī)范化。
為了達(dá)到請(qǐng)求期望的網(wǎng)格服務(wù)目的,需要對(duì)客戶端請(qǐng)求內(nèi)容進(jìn)行精準(zhǔn)的預(yù)測(cè),但代價(jià)極大,因?yàn)?,其?qǐng)求輸入功能所需要占用的空間內(nèi)存會(huì)比較多,要求能在較大范圍內(nèi)運(yùn)行檢驗(yàn)網(wǎng)絡(luò)服務(wù)的請(qǐng)求類(lèi)型和與之相關(guān)的參數(shù)內(nèi)容,就顯得格外地重要。網(wǎng)格服務(wù)測(cè)試的具體內(nèi)容包括以下幾個(gè)方面。
(1)請(qǐng)求級(jí):通過(guò)HTTP或SOAP連接測(cè)試用戶發(fā)送請(qǐng)求到相應(yīng)的服務(wù)器中,確定類(lèi)型和范圍,可以更好地接收到廣泛的請(qǐng)求,保證準(zhǔn)確性。
(2)應(yīng)答級(jí):通過(guò)檢查網(wǎng)絡(luò)服務(wù)的準(zhǔn)確性,采用手動(dòng)檢查或腳本分析等方式驗(yàn)證應(yīng)答消息的規(guī)范性,這樣一來(lái),在XML文檔中通過(guò)期望應(yīng)答比較文本間的差別,抽取特定的信息,執(zhí)行相應(yīng)的應(yīng)用測(cè)定。
但是采取這樣的請(qǐng)求類(lèi)型和分析驗(yàn)證應(yīng)答消息不能單單依賴腳本和手動(dòng)操作,這樣不能有效提高測(cè)試的準(zhǔn)確性和效率。因此,需要對(duì)其進(jìn)行調(diào)整和改變,使用網(wǎng)格服務(wù)測(cè)試工具,快速、便捷地形成有關(guān)于網(wǎng)格客戶測(cè)試的用例套件,發(fā)現(xiàn)相應(yīng)的方法和問(wèn)題,自行運(yùn)行基于SOA網(wǎng)絡(luò)模型開(kāi)發(fā)的網(wǎng)格服務(wù)測(cè)試用例,如圖1所示,最終生成測(cè)試結(jié)果,并用回歸測(cè)試予以驗(yàn)證,以保障用例的正常推行[3-4]。
2? ? 網(wǎng)格性能測(cè)試
為了驗(yàn)證在各種負(fù)載情況下的網(wǎng)絡(luò)服務(wù)性能,需要進(jìn)行包括請(qǐng)求提交和應(yīng)答驗(yàn)證兩項(xiàng)要求的多客戶網(wǎng)格服務(wù)測(cè)試。
圖1? 網(wǎng)格服務(wù)測(cè)試
通過(guò)運(yùn)行合理的性能測(cè)試,以監(jiān)視服務(wù)器的各項(xiàng)指標(biāo),同時(shí),要關(guān)注其響應(yīng)速率,要測(cè)試負(fù)載情況下各項(xiàng)能誘發(fā)網(wǎng)格服務(wù)功能障礙的情況,設(shè)置相應(yīng)的性能測(cè)試場(chǎng)景,實(shí)行網(wǎng)格性能的測(cè)試套件,主要場(chǎng)景包括Bell曲線、緩沖區(qū)測(cè)試、穩(wěn)定負(fù)載和線性增加等。結(jié)合不同的測(cè)試場(chǎng)景使用相應(yīng)的測(cè)試用例,支持遠(yuǎn)端連線服務(wù)器里的所有虛擬用戶,模擬并運(yùn)行極限和壓力測(cè)試等[5]。
網(wǎng)格性能測(cè)試通過(guò)模擬較多次數(shù)運(yùn)行網(wǎng)格服務(wù)的情況,找出相應(yīng)的問(wèn)題,性能測(cè)試的具體解決方案如下。
(1)多機(jī)測(cè)試:通過(guò)運(yùn)行虛擬用戶和多臺(tái)機(jī)器的網(wǎng)格軟件測(cè)試工具,具備更多數(shù)目的負(fù)載。
(2)定制場(chǎng)景:通過(guò)提供默認(rèn)或自建的負(fù)載測(cè)試場(chǎng)景,模擬可能存在的現(xiàn)實(shí)情況。
(3)監(jiān)視器:需要在負(fù)載情況下監(jiān)視相應(yīng)的系統(tǒng)資源,包括內(nèi)存耗用情況、CPU和請(qǐng)求反映時(shí)間等。
3? ? 網(wǎng)格軟件測(cè)試
由于一開(kāi)始的網(wǎng)格系統(tǒng)設(shè)計(jì)并沒(méi)有采用Web服務(wù)技術(shù),而采用的是諸如Grid Services等做法,無(wú)法體現(xiàn)SOA具有的可擴(kuò)展性和耦合性,并且平白地增添了系統(tǒng)運(yùn)行中的復(fù)雜性。
隨著Web服務(wù)的不斷進(jìn)步,出臺(tái)了有效的標(biāo)準(zhǔn)規(guī)范,以更好踐行SOA和網(wǎng)格技術(shù)的有效融合,并促進(jìn)了網(wǎng)格運(yùn)算、系統(tǒng)管理及Web服務(wù)的協(xié)調(diào)合作。目前,存在兩類(lèi)網(wǎng)格軟件測(cè)試程序的實(shí)現(xiàn)方式,即遷移基于Web服務(wù)的測(cè)試程序到網(wǎng)格系統(tǒng)中和開(kāi)發(fā)基于服務(wù)導(dǎo)向下的網(wǎng)格軟件測(cè)試程序。
因此,為了實(shí)現(xiàn)第二類(lèi)所呈現(xiàn)的部分,需要認(rèn)真思考SOA和網(wǎng)格技術(shù)和特征兩方面的內(nèi)容,體現(xiàn)其可擴(kuò)展性和相融性,將程序有效地遷移到服務(wù)導(dǎo)向下的模型中,更為細(xì)致地劃分成具細(xì)的Web服務(wù)單雙眼,實(shí)現(xiàn)網(wǎng)格節(jié)點(diǎn)的獨(dú)立工作,刪除單一且不必要的程序,重新記錄關(guān)于網(wǎng)格負(fù)載的重要信息,完成Web服務(wù)測(cè)試程序,向服務(wù)導(dǎo)向下網(wǎng)格系統(tǒng)的遷移發(fā)展,建立相應(yīng)的可執(zhí)行操作列表,操作具體步驟下的編譯次序,實(shí)現(xiàn)網(wǎng)格組件和節(jié)點(diǎn)之間的長(zhǎng)效通信,以此構(gòu)建基于服務(wù)導(dǎo)向下的網(wǎng)格軟件測(cè)試環(huán)境,并提供相應(yīng)的技術(shù)支持。
4? ? 網(wǎng)格軟件測(cè)試實(shí)施、管理和開(kāi)發(fā)
通過(guò)構(gòu)建一個(gè)有效的網(wǎng)格軟件測(cè)試環(huán)境,實(shí)現(xiàn)快捷、便利的測(cè)試用例維護(hù)管理。針對(duì)網(wǎng)格系統(tǒng)軟件中的系統(tǒng)應(yīng)用程序編程接口(Application Programming Interface,API)和與其匹配的網(wǎng)格服務(wù),提供相應(yīng)的插件系統(tǒng),具備全面統(tǒng)一的調(diào)用和管理功能,兼具可擴(kuò)展性和靈活性。根據(jù)具體的網(wǎng)格系統(tǒng)軟件擴(kuò)展其插件模塊,最大效度地保證該工具的體系結(jié)構(gòu),滿足各項(xiàng)系統(tǒng)需求。
實(shí)施測(cè)試工具系統(tǒng)中所包括的功能如下。
(1)項(xiàng)目管理功能:創(chuàng)建并操作有關(guān)于網(wǎng)格軟件測(cè)試項(xiàng)目的具體用例。
(2)用例管理功能:閱覽并顯示網(wǎng)格軟件系統(tǒng)測(cè)試和運(yùn)行多類(lèi)型的網(wǎng)格軟件測(cè)試用例,針對(duì)網(wǎng)格西永軟件中的API接口,運(yùn)行相應(yīng)的測(cè)試插件。
(3)用例執(zhí)行功能:通過(guò)輸入相關(guān)參數(shù),落實(shí)API的具體測(cè)試,讓執(zhí)行結(jié)果信息呈現(xiàn)在用戶面前。
(4)消息日志功能:查看關(guān)于測(cè)試工具的消息視圖,并以此記載與之相關(guān)的全部情況。
如今主要基于服務(wù)導(dǎo)向下的測(cè)試工具包括JUnit和TCPMonitor工具兩種。JUnit的操作更加方便簡(jiǎn)單,通過(guò)自動(dòng)化的運(yùn)行,積累相關(guān)的JUnit測(cè)試程序,減少失誤的發(fā)生。除此之外,JUnit還可以與編譯單元及集成開(kāi)發(fā)環(huán)境(Integrated Development Environment,IDE)單元有效集成,便于測(cè)試人員完成測(cè)試。但同樣地,它存在一定的不足:僅能支持同步測(cè)試,不能支持重現(xiàn)其他異步單元,再加上JUnit是一個(gè)黑箱測(cè)試平臺(tái),當(dāng)出現(xiàn)內(nèi)存泄漏或用戶并發(fā)數(shù)等問(wèn)題時(shí),無(wú)法繼續(xù)運(yùn)行測(cè)試,只會(huì)在一個(gè)Java虛擬機(jī)上進(jìn)行簡(jiǎn)單的操作,進(jìn)而缺乏效度。TCPMonitor工具通過(guò)調(diào)試并監(jiān)測(cè)關(guān)于Web服務(wù)的SOAP報(bào)文,分析HTTP Web服務(wù)會(huì)話,所生成的請(qǐng)求應(yīng)答報(bào)文以確定該功能的準(zhǔn)確性。但這些內(nèi)容只能通過(guò)簡(jiǎn)單腳本或手工代行,但其效率和自動(dòng)化特征難以保證。所以基于測(cè)試對(duì)象的考量,此類(lèi)工具僅限于Web服務(wù),而不能踐行網(wǎng)格服務(wù),存在一定的弊端。
針對(duì)這樣的特點(diǎn)和不足,根據(jù)細(xì)致的分析和理解,嘗試性地開(kāi)發(fā)出基于服務(wù)導(dǎo)向的網(wǎng)格軟件測(cè)試工具,具體包括以下特點(diǎn)。
(1)應(yīng)用Java技術(shù)完善JUnit結(jié)構(gòu),能夠跨越平臺(tái)的局限,實(shí)現(xiàn)多主機(jī)運(yùn)行情況下的遠(yuǎn)程Java虛擬機(jī)測(cè)試,具有異構(gòu)性和分布性的特征。
(2)通過(guò)實(shí)現(xiàn)JUnit的擴(kuò)展性,應(yīng)用有效插件,借此加載測(cè)試軟件,動(dòng)、靜態(tài)資源都可以進(jìn)行測(cè)試,靜態(tài)資源如HTML,動(dòng)態(tài)資源如Servlets、腳本、Web服務(wù)和Java對(duì)象等。
(3)通過(guò)模擬并發(fā)用戶,配置相應(yīng)的線程組,設(shè)置相關(guān)請(qǐng)求屬性,模擬更多的服務(wù)器、網(wǎng)路和軟件負(fù)載,全面測(cè)試網(wǎng)格軟件的性能。
(4)提供多樣化的可擴(kuò)展性能測(cè)試和相關(guān)的分析方案,形成一個(gè)測(cè)試計(jì)劃,保存為可定制用戶和可擴(kuò)展的XML格式,提供諸如圖片、表格等的分析工具,以此來(lái)更方便地得出相應(yīng)的結(jié)果。
(5)根據(jù)所得結(jié)果和相應(yīng)測(cè)試用例,以此發(fā)送請(qǐng)求給網(wǎng)格程序,并發(fā)揮準(zhǔn)確的驗(yàn)證功能,使之更具信度。
(6)通過(guò)分析測(cè)試數(shù)據(jù)和文件,進(jìn)行腳本的錄制和播放,再現(xiàn)與之匹配的測(cè)試場(chǎng)景,可以更好地維護(hù)測(cè)試用例。
5? ? 結(jié)語(yǔ)
本文通過(guò)對(duì)服務(wù)導(dǎo)向下的網(wǎng)格軟件測(cè)試環(huán)境的研究,發(fā)現(xiàn)其在網(wǎng)格服務(wù)測(cè)試、網(wǎng)格性能測(cè)試和網(wǎng)格軟件測(cè)試實(shí)施和管理3方面存在些許不足,并以此采取相應(yīng)的解決措施,開(kāi)發(fā)出新的、行之有效的測(cè)試工具。貼合Web服務(wù)的導(dǎo)向作用,構(gòu)建一個(gè)新的網(wǎng)格軟件測(cè)試環(huán)境,更加促進(jìn)SOA的完善和發(fā)展。
[參考文獻(xiàn)]
[1]朱英南,唐世翔,于琳瑤.網(wǎng)格軟件自動(dòng)化測(cè)試框架的研究與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2016(16):56.
[2]謝濤吉.科學(xué)計(jì)算網(wǎng)格環(huán)境信息服務(wù)擴(kuò)展研究[J].信息技術(shù)與信息化,2015(7):86-87.
[3]楊毅.一種基于網(wǎng)格優(yōu)化的空間數(shù)據(jù)訪問(wèn)與存儲(chǔ)研究[J].無(wú)線電通信技術(shù),2014(6):43-46.
[4]易小平.網(wǎng)格資源負(fù)載管理系統(tǒng)軟件測(cè)試方法研究[D].天津:天津理工大學(xué),2008.
[5]宋麗華,劉方愛(ài).基于WebService的網(wǎng)格服務(wù)功能的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(7):59-61.
Research on grid software testing environment based on service
Wang Baocheng
(China Academy of Information and Communications Technology, Beijing 100191, China)
Abstract:Grid software testing is an important part of grid research, and it is also a very key technology. Service-oriented grid software testing is one of the key points. By using SOA, to take active and effective methods and measures, the test environment is studied from three aspects: grid service testing, grid performance testing and grid software testing implementation and management, and a suitable testing tool is developed.
Key words:SOA; grid software; test environment