国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法

      文檔序號(hào):7629395閱讀:217來源:國知局
      專利名稱:一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,特別是一種通過虛擬Web服務(wù)容器,對(duì)Web服務(wù)自動(dòng)化測(cè)試的方法。
      背景技術(shù)
      Web服務(wù)(Web Service)是近十年里IT領(lǐng)域出現(xiàn)的新技術(shù)之一,它是構(gòu)建互聯(lián)網(wǎng)分布式系統(tǒng)的基本部件,并正在成為企業(yè)應(yīng)用集成(EnterpriseApplication Integration,簡稱EAI)的有效平臺(tái)。萬維網(wǎng)聯(lián)盟(World WideWeb Consortium,簡稱W3C)對(duì)其定義為“Web服務(wù)是一種通過統(tǒng)一資源標(biāo)識(shí)(Uniform Resource Identifier,簡稱URI)的軟件應(yīng)用,其接口及綁定形式可以通過可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,簡稱XML)定義、描述和檢索,并能通過XML消息及互聯(lián)網(wǎng)協(xié)議完成與其他應(yīng)用的直接交互”。不僅越來越多的企業(yè)之間通過Web服務(wù)進(jìn)行業(yè)務(wù)往來,而且越來越多的企業(yè)內(nèi)部也開始使用Web服務(wù)來構(gòu)建協(xié)同工作的分布式系統(tǒng)。Web服務(wù)是具有一定功能的程序,對(duì)其測(cè)試是為了檢驗(yàn)服務(wù)的功能是否達(dá)到了涉及的要求。對(duì)于Web服務(wù),一般而言其它企業(yè)是無法獲知其源代碼的,只能通過服務(wù)的Web服務(wù)描述文件(Web Service Description Language,簡稱WSDL)生成一個(gè)客戶端對(duì)服務(wù)進(jìn)行測(cè)試。這就造成了Web服務(wù)軟件測(cè)試技術(shù)基本上還停留在對(duì)單個(gè)Web服務(wù)的測(cè)試上,沒有對(duì)整個(gè)Web服務(wù)體系的集成測(cè)試。當(dāng)面對(duì)多個(gè)Web服務(wù)組成的協(xié)同工作系統(tǒng)時(shí),這些測(cè)試技術(shù)僅能看到某一個(gè)服務(wù)的執(zhí)行結(jié)果,而對(duì)于該服務(wù)執(zhí)行過程中所調(diào)用的其它服務(wù)卻一無所知。
      Altava公司的xmlspy提供對(duì)WSDL文件和簡單對(duì)象訪問協(xié)議(SimpleObject Access Protocol,簡稱SOAP,是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議)消息的測(cè)試;CapeScience公司的Nettool提供對(duì)SOAP消息的截獲檢查和轉(zhuǎn)發(fā)功能。無論是xmlspy還是Nettool都僅僅是對(duì)單個(gè)SOAP消息的考慮,沒有全面進(jìn)行集成測(cè)試的概念。而實(shí)際上Web服務(wù)組合而成的Web軟件越來越強(qiáng)調(diào)Web服務(wù)之間的協(xié)作,Web服務(wù)的調(diào)用過程可能引發(fā)消息和通訊等錯(cuò)誤,因此如何測(cè)試Web服務(wù)間的交互關(guān)系,對(duì)Web服務(wù)軟件進(jìn)行總體測(cè)試很重要。
      一個(gè)由Web服務(wù)組成的分布式系統(tǒng),服務(wù)會(huì)部署在不同的機(jī)器上。服務(wù)不僅供客戶端來調(diào)用,同時(shí)它自己也會(huì)作為客戶端,對(duì)其它一個(gè)或多個(gè)服務(wù)進(jìn)行調(diào)用。由于Web服務(wù)運(yùn)行在不同的機(jī)器上,給系統(tǒng)集成測(cè)試和調(diào)試造成了很大的難度。主要體現(xiàn)以下幾點(diǎn)1、必須先啟動(dòng)Web服務(wù)容器,部署服務(wù)后進(jìn)行測(cè)試。服務(wù)修改后又得重復(fù)這個(gè)步驟。這個(gè)過程很難實(shí)現(xiàn)自動(dòng)化,當(dāng)服務(wù)要部署到多個(gè)容器時(shí),難度更大。
      2、當(dāng)許多Web服務(wù)要部署時(shí),不僅會(huì)花費(fèi)大量人力,而需要很多的硬件設(shè)施,測(cè)試成本很高。
      3、當(dāng)多個(gè)Web服務(wù)之間有相互調(diào)用關(guān)系時(shí),這樣的系統(tǒng)很難調(diào)試,經(jīng)測(cè)試發(fā)現(xiàn)錯(cuò)誤后,錯(cuò)誤的根源會(huì)很難跟蹤。
      4、Web服務(wù)之間交換的SOAP消息無法得到有效地記錄,這樣造成Web服務(wù)間的交互關(guān)系、依賴關(guān)系、調(diào)用的時(shí)間序列不易確定。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的不足,提出一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,只需要編寫一個(gè)測(cè)試用例就可以完成對(duì)一個(gè)Web服務(wù)或多個(gè)具有協(xié)作關(guān)系的Web服務(wù)的功能測(cè)試,少了人工部署Web服務(wù)的步驟,從而實(shí)現(xiàn)自動(dòng)化。
      為實(shí)現(xiàn)上述目的,本發(fā)明提出了一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中執(zhí)行以下步驟步驟1、執(zhí)行用戶編寫的測(cè)試用例;步驟2、建立系統(tǒng)資源監(jiān)視模塊,監(jiān)視系統(tǒng)資源的讀寫;步驟3、建立并啟動(dòng)代理服務(wù)器,將系統(tǒng)內(nèi)的所有網(wǎng)絡(luò)連接都設(shè)置為通過代理服務(wù)器來中轉(zhuǎn);步驟4、JAVA虛擬機(jī)根據(jù)測(cè)試用例中的服務(wù)部署代碼,來建立虛擬Web服務(wù)容器,并在該虛擬Web服務(wù)容器中部署服務(wù);步驟5、執(zhí)行測(cè)試用例中的測(cè)試驗(yàn)證代碼,啟動(dòng)一個(gè)調(diào)用Web服務(wù)的客戶端,該客戶端建立網(wǎng)絡(luò)連接對(duì)服務(wù)進(jìn)行調(diào)用,調(diào)用請(qǐng)求由代理服務(wù)器接收、并傳遞給虛擬Web服務(wù)容器進(jìn)行處理,然后將Web服務(wù)調(diào)用的結(jié)果返回給該客戶端;步驟6、執(zhí)行測(cè)試驗(yàn)證代碼測(cè)試其返回值;步驟7、輸出測(cè)試結(jié)果;步驟8、結(jié)束測(cè)試。
      該方法具有以下優(yōu)點(diǎn)1、Web服務(wù)的實(shí)現(xiàn)代碼不需要修改就可以既運(yùn)行在真實(shí)環(huán)境里,也可以運(yùn)行在虛擬的測(cè)試環(huán)境里;2、可以將真實(shí)環(huán)境和虛擬環(huán)境組合在一起進(jìn)行測(cè)試,將一部分服務(wù)部署在真實(shí)環(huán)境里,另一部分服務(wù)部署在虛擬環(huán)境里;3、由于所有的網(wǎng)絡(luò)連接必須通過網(wǎng)絡(luò)監(jiān)控模塊,客戶端和服務(wù)以及服務(wù)和服務(wù)間傳輸?shù)腟OAP消息都可以被記錄下來,以便驗(yàn)證其正確性;4、可以模擬網(wǎng)絡(luò)連接中的延時(shí)和突然中斷,控制傳輸速率以便測(cè)試服務(wù)在非正常情況下運(yùn)行時(shí)的功能正確性;5、可以監(jiān)控系統(tǒng)內(nèi)所有Web服務(wù)的運(yùn)行情況,比如某一時(shí)刻,哪些服務(wù)在運(yùn)行,有多少個(gè)實(shí)例在運(yùn)行,服務(wù)間調(diào)用的時(shí)間序列等等;
      6、所有Web服務(wù)運(yùn)行在同一進(jìn)程里,可以使用傳統(tǒng)的軟件調(diào)試方法來找出引起系統(tǒng)出錯(cuò)的根源,這要比在不同的機(jī)器上進(jìn)行聯(lián)合調(diào)試要容易的多;7、Web服務(wù)的集成測(cè)試只需要使用一臺(tái)計(jì)算機(jī),盡管待測(cè)系統(tǒng)最終還是會(huì)在真實(shí)的環(huán)境下測(cè)試,但是該方法還是能有效地找出待測(cè)系統(tǒng)中存在的問題,大幅度減少真實(shí)環(huán)境下的測(cè)試次數(shù),達(dá)到降低測(cè)試成本的目的。
      下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。


      圖1為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的流程圖;圖2為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例的流程圖;圖3為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例中虛擬容器的建立方法的流程圖;圖4為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例步驟中代理服務(wù)器接收和處理方法的流程圖;圖5為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例中運(yùn)行服務(wù)對(duì)象時(shí)需要讀系統(tǒng)資源的流程圖;圖6為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例中運(yùn)行服務(wù)對(duì)象時(shí)需要寫系統(tǒng)資源的流程圖。
      具體實(shí)施例方式
      本發(fā)明提出了一種能夠自動(dòng)化部署、測(cè)試服務(wù),并對(duì)服務(wù)進(jìn)行有效跟蹤的方法。
      如圖1所示,為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的流程圖,具體執(zhí)行以下步驟步驟101、執(zhí)行用戶編寫的測(cè)試用例;步驟102、建立系統(tǒng)資源監(jiān)視模塊,監(jiān)視系統(tǒng)資源的讀寫;
      步驟103、建立并啟動(dòng)代理服務(wù)器,將系統(tǒng)內(nèi)的所有網(wǎng)絡(luò)連接都設(shè)置為通過代理服務(wù)器來中轉(zhuǎn);步驟104、JAVA虛擬機(jī)根據(jù)測(cè)試用例中的服務(wù)部署代碼,來建立虛擬Web服務(wù)容器,并在該虛擬Web服務(wù)容器中部署服務(wù);步驟105、執(zhí)行測(cè)試用例中的測(cè)試驗(yàn)證代碼,啟動(dòng)一個(gè)調(diào)用Web服務(wù)的客戶端,該客戶端建立網(wǎng)絡(luò)連接對(duì)服務(wù)進(jìn)行調(diào)用,調(diào)用請(qǐng)求由代理服務(wù)器接收、并傳遞給虛擬Web服務(wù)容器進(jìn)行處理,然后將Web服務(wù)調(diào)用的結(jié)果返回給該客戶端;步驟106、執(zhí)行測(cè)試驗(yàn)證代碼測(cè)試其返回值;步驟107、輸出測(cè)試結(jié)果;步驟108、結(jié)束測(cè)試。
      該方法為每個(gè)虛擬容器維護(hù)一個(gè)獨(dú)立的運(yùn)行環(huán)境和一些資源,使得虛擬容器不互相干擾。
      如圖2所示,為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例的流程圖,具體執(zhí)行以下步驟步驟201、執(zhí)行用戶編寫的測(cè)試用例,該測(cè)試用例是一系列為了實(shí)現(xiàn)測(cè)試目的的代碼,具體包括服務(wù)部署代碼和測(cè)試驗(yàn)證代碼,服務(wù)部署代碼用于指定要建立哪些虛擬容器,以及在其中要部署哪些Web服務(wù),即描述一個(gè)Web服務(wù)環(huán)境,測(cè)試驗(yàn)證代碼用于建立一個(gè)客戶端,來對(duì)測(cè)試環(huán)境中部署的服務(wù)進(jìn)行調(diào)用,并對(duì)其返回值進(jìn)行驗(yàn)證,驗(yàn)證結(jié)果就是整個(gè)測(cè)試用例的執(zhí)行結(jié)果;步驟202、建立系統(tǒng)資源監(jiān)視模塊,監(jiān)視系統(tǒng)資源的讀寫;步驟203、建立并啟動(dòng)代理服務(wù)器,設(shè)置系統(tǒng)內(nèi)的所有網(wǎng)絡(luò)連接都通過代理服務(wù)器來中轉(zhuǎn),測(cè)試過程中所有的TCP網(wǎng)絡(luò)連接都會(huì)通過這個(gè)代理服務(wù)器來轉(zhuǎn)發(fā),不僅包括客戶端與服務(wù)間,而且包括服務(wù)與服務(wù)間的連接;通過此模塊可以有效地監(jiān)控客戶端與Web服務(wù)、Web服務(wù)與Web服務(wù)間的SOAP報(bào)文的傳輸情況以及對(duì)報(bào)文的有效性進(jìn)行驗(yàn)證;同時(shí)在轉(zhuǎn)發(fā)過程中,可以控制轉(zhuǎn)發(fā)速率,以便測(cè)試Web服務(wù)在低帶寬情況下的運(yùn)行狀況;步驟204、JAVA虛擬機(jī)根據(jù)測(cè)試用例中的服務(wù)部署代碼,來建立虛擬容器,并在其中部署服務(wù),虛擬Web服務(wù)容器,也就是虛擬容器,是整個(gè)測(cè)試系統(tǒng)的核心,它是Web服務(wù)的運(yùn)行環(huán)境,在真實(shí)環(huán)境下,相同的Web服務(wù)會(huì)在不同的容器里運(yùn)行,這些服務(wù)之間不可能相互干擾,同時(shí)Web容器也都會(huì)有一些私有的屬性和資源,其它的容器是無法讀取得;虛擬容器需要來模擬這些真實(shí)的情況,做到運(yùn)行時(shí)容器之間互不干擾和服務(wù)之間互不干擾,真實(shí)的容器獨(dú)占一個(gè)虛擬機(jī),它擁有所有的系統(tǒng)資源,對(duì)這些資源的修改不會(huì)干擾到其它容器,然而虛擬容器是多個(gè)容器共占一個(gè)虛擬機(jī),需要將這些資源分配給不同的虛擬容器,并做到對(duì)這些資源修改不會(huì)改變其它容器的資源狀態(tài);步驟205、執(zhí)行測(cè)試驗(yàn)證代碼,啟動(dòng)一個(gè)調(diào)用Web服務(wù)的客戶端,該客戶端會(huì)建立網(wǎng)絡(luò)連接對(duì)服務(wù)進(jìn)行調(diào)用,調(diào)用請(qǐng)求由所述代理服務(wù)器接收、并傳遞給虛擬Web服務(wù)容器處理,然后將結(jié)果返回給該客戶端;步驟106、Web服務(wù)調(diào)用返回后,執(zhí)行測(cè)試驗(yàn)證代碼測(cè)試其返回值;步驟207、輸出測(cè)試結(jié)果;步驟208、結(jié)束測(cè)試;其中,如圖3所示,為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例步驟204中虛擬容器的具體建立方法的流程圖,包括以下步驟步驟2041、建立一個(gè)虛擬容器,為其分配一個(gè)唯一的標(biāo)識(shí);步驟2042、建立一個(gè)線程組,設(shè)置其標(biāo)識(shí)為虛擬容器的標(biāo)識(shí);步驟2043、建立一個(gè)屬于線程組的線程;步驟2044、啟動(dòng)線程,來運(yùn)行虛擬容器,并初始化屬于該虛擬容器的資源。
      如圖4所示,為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例步驟205中代理服務(wù)器接收和處理方法的流程圖,包括以下步驟步驟2050、代理服務(wù)器接收到調(diào)用請(qǐng)求;
      步驟2051、代理服務(wù)器判斷調(diào)用是否需要監(jiān)視,如果是,則執(zhí)行步驟2052;否則執(zhí)行步驟2053;步驟2052、系統(tǒng)資源監(jiān)視模塊開始監(jiān)視網(wǎng)絡(luò)傳輸;步驟2053、代理服務(wù)器判斷是否有需要訪問的虛擬容器,如果是,則執(zhí)行步驟2054;否則建立新的網(wǎng)絡(luò)連接將調(diào)用請(qǐng)求轉(zhuǎn)發(fā)給真實(shí)的容器,由真實(shí)的容器來處理該請(qǐng)求;步驟2054、代理服務(wù)器將調(diào)用請(qǐng)求交給虛擬容器處理;步驟2055、虛擬容器判斷是否存在調(diào)用請(qǐng)求的服務(wù)對(duì)象,服務(wù)對(duì)象對(duì)應(yīng)一個(gè)Web服務(wù),它用來執(zhí)行Web服務(wù),如果是,執(zhí)行步驟2058;否則執(zhí)行步驟2056;步驟2056、虛擬容器判斷調(diào)用請(qǐng)求的服務(wù)是否已經(jīng)部署,如果是,則執(zhí)行步驟2057;否則生成錯(cuò)誤響應(yīng),執(zhí)行步驟2059;步驟2057、虛擬容器創(chuàng)建服務(wù)對(duì)象;步驟2058、虛擬容器將調(diào)用請(qǐng)求交給服務(wù)對(duì)象處理,運(yùn)行該服務(wù)對(duì)象,并生成響應(yīng);步驟2059、代理服務(wù)器將響應(yīng)返回給客戶端。
      如圖5所示,為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例步驟2058中,在運(yùn)行服務(wù)對(duì)象的過程中,如果需要讀系統(tǒng)資源的流程圖,這里的資源在Java體系中指的是系統(tǒng)屬性(它有一個(gè)名字和一個(gè)值)??梢栽贘ava虛擬機(jī)里建立系統(tǒng)屬性并為其指定值。相同名字的系統(tǒng)屬性,虛擬機(jī)里只有一份。對(duì)于不同的真正Web服務(wù)容器,它們運(yùn)行在各自獨(dú)立的Java虛擬機(jī)里,它們以及在它們里面運(yùn)行的服務(wù)對(duì)系統(tǒng)屬性的讀寫不會(huì)造成其它容器的系統(tǒng)屬性的改變?,F(xiàn)在多個(gè)虛擬容器運(yùn)行在同一個(gè)Java虛擬機(jī)里,通過本發(fā)明提供的方法可以讓虛擬容器讀寫各自系統(tǒng)資源,做到互不干擾,具體執(zhí)行以下步驟步驟20581、系統(tǒng)資源監(jiān)視模塊監(jiān)視到資源的讀取,獲取當(dāng)前線程的所屬線程組,根據(jù)其標(biāo)識(shí)查找對(duì)應(yīng)的虛擬容器;
      步驟20582、系統(tǒng)資源監(jiān)視模塊判斷是否存在該虛擬容器,如果是,執(zhí)行步驟20583;否則執(zhí)行步驟20584;步驟20583、系統(tǒng)資源監(jiān)視模塊判斷虛擬容器是否存在該資源,如果是,執(zhí)行步驟20585;否則執(zhí)行步驟20584;步驟20584、系統(tǒng)資源監(jiān)視模塊判斷Java虛擬機(jī)是否存在該資源,如果是,執(zhí)行步驟20585;否則返回空值;步驟20585、系統(tǒng)資源監(jiān)視模塊返回資源的值。
      如圖6所示,為本發(fā)明實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試方法的實(shí)施例步驟2058中,在運(yùn)行服務(wù)對(duì)象的過程中,如果需要寫系統(tǒng)資源的流程圖,具體執(zhí)行以下步驟步驟20581’、系統(tǒng)資源監(jiān)視模塊監(jiān)視到資源的寫入,獲取當(dāng)前線程的所屬線程組,根據(jù)其標(biāo)識(shí)查找對(duì)應(yīng)的虛擬容器;步驟20582’、系統(tǒng)資源監(jiān)視模塊判斷是否存在該虛擬容器,如果是,執(zhí)行步驟20583’;否則執(zhí)行步驟20584’;步驟20583’、系統(tǒng)資源監(jiān)視模塊判斷所述虛擬容器是否存在該資源,如果是,執(zhí)行步驟20587’;否則執(zhí)行步驟20585’;步驟20584’、系統(tǒng)資源監(jiān)視模塊判斷Java虛擬機(jī)是否存在該資源,如果是,執(zhí)行步驟20587’;否則執(zhí)行步驟20586’;步驟20585’、在虛擬容器里新建該資源,執(zhí)行步驟20587’;步驟20586’、在Java虛擬機(jī)里新建該資源,執(zhí)行步驟20587’;步驟20587’、寫入該資源的值。
      最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
      權(quán)利要求
      1.一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中執(zhí)行以下步驟步驟1、執(zhí)行用戶編寫的測(cè)試用例;步驟2、建立系統(tǒng)資源監(jiān)視模塊,監(jiān)視系統(tǒng)資源的讀寫;步驟3、建立并啟動(dòng)代理服務(wù)器,將系統(tǒng)內(nèi)的所有網(wǎng)絡(luò)連接都設(shè)置為通過代理服務(wù)器來中轉(zhuǎn);步驟4、JAVA虛擬機(jī)根據(jù)所述測(cè)試用例中的服務(wù)部署代碼,來建立虛擬Web服務(wù)容器,并在該虛擬Web服務(wù)容器中部署服務(wù);步驟5、執(zhí)行所述測(cè)試用例中的測(cè)試驗(yàn)證代碼,啟動(dòng)一個(gè)調(diào)用Web服務(wù)的客戶端,該客戶端建立網(wǎng)絡(luò)連接對(duì)服務(wù)進(jìn)行調(diào)用,調(diào)用請(qǐng)求由所述代理服務(wù)器接收、并傳遞給虛擬Web服務(wù)容器進(jìn)行處理,然后將Web服務(wù)調(diào)用的結(jié)果返回給該客戶端;步驟6、執(zhí)行所述測(cè)試驗(yàn)證代碼測(cè)試其返回值;步驟7、輸出測(cè)試結(jié)果;步驟8、結(jié)束測(cè)試。
      2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中所述步驟1中的測(cè)試用例是一系列為了實(shí)現(xiàn)測(cè)試目的的代碼,具體包括服務(wù)部署代碼和測(cè)試驗(yàn)證代碼。
      3.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中步驟4中所述虛擬容器的具體建立過程,包括以下步驟步驟41、建立一個(gè)虛擬容器,為其分配一個(gè)唯一的標(biāo)識(shí);步驟42、建立一個(gè)線程組,設(shè)置其標(biāo)識(shí)為所述虛擬容器的標(biāo)識(shí);步驟43、建立一個(gè)屬于所述線程組的線程;步驟44、啟動(dòng)所述線程,來運(yùn)行所述虛擬容器,并初始化屬于該虛擬容器的資源。
      4.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中步驟5中所述代理服務(wù)器接收和處理的具體流程為步驟50、所述代理服務(wù)器接收到所述調(diào)用請(qǐng)求;步驟51、代理服務(wù)器判斷所述調(diào)用是否需要監(jiān)視,如果是,則執(zhí)行步驟52;否則執(zhí)行步驟53;步驟52、所述系統(tǒng)資源監(jiān)視模塊開始監(jiān)視網(wǎng)絡(luò)傳輸;步驟53、代理服務(wù)器判斷是否有需要訪問的虛擬容器,如果是,則執(zhí)行步驟54;否則建立新的網(wǎng)絡(luò)連接將所述調(diào)用請(qǐng)求轉(zhuǎn)發(fā)給真實(shí)的容器,由真實(shí)的容器來處理該請(qǐng)求;步驟54、所述代理服務(wù)器將所述調(diào)用請(qǐng)求交給所述虛擬容器處理;步驟55、所述虛擬容器判斷是否存在所述調(diào)用請(qǐng)求的服務(wù)對(duì)象,如果是,執(zhí)行步驟58;否則執(zhí)行步驟56;步驟56、所述虛擬容器判斷所述調(diào)用請(qǐng)求的服務(wù)是否已經(jīng)部署,如果是,則執(zhí)行步驟57;否則生成錯(cuò)誤響應(yīng),執(zhí)行步驟59;步驟57、所述虛擬容器創(chuàng)建所述服務(wù)對(duì)象;步驟58、所述虛擬容器將所述調(diào)用請(qǐng)求交給服務(wù)對(duì)象處理,運(yùn)行該服務(wù)對(duì)象,并生成響應(yīng);步驟59、所述代理服務(wù)器將所述響應(yīng)返回給所述客戶端。
      5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中所述58中,在運(yùn)行所述服務(wù)對(duì)象的過程中,如果需要讀系統(tǒng)資源,則執(zhí)行以下步驟步驟581、系統(tǒng)資源監(jiān)視模塊監(jiān)視到資源的讀取,獲取當(dāng)前線程的所屬線程組,根據(jù)其標(biāo)識(shí)查找對(duì)應(yīng)的虛擬容器;步驟582、系統(tǒng)資源監(jiān)視模塊判斷是否存在所述虛擬容器,如果是,執(zhí)行步驟583;否則執(zhí)行步驟584;步驟583、系統(tǒng)資源監(jiān)視模塊判斷所述虛擬容器是否存在所述資源,如果是,執(zhí)行步驟585;否則執(zhí)行步驟584;步驟584、系統(tǒng)資源監(jiān)視模塊判斷所述Java虛擬機(jī)是否存在所述資源,如果是,執(zhí)行步驟585;否則返回空值;步驟585、系統(tǒng)資源監(jiān)視模塊返回所述資源的值。
      6.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,其中所述58中,在運(yùn)行所述服務(wù)對(duì)象的過程中,如果需要寫系統(tǒng)資源,則執(zhí)行以下步驟步驟581’、系統(tǒng)資源監(jiān)視模塊監(jiān)視到資源的寫入,獲取當(dāng)前線程的所屬線程組,根據(jù)其標(biāo)識(shí)查找對(duì)應(yīng)的虛擬容器;步驟582’、系統(tǒng)資源監(jiān)視模塊判斷是否存在所述虛擬容器,如果是,執(zhí)行步驟583’;否則執(zhí)行步驟584’;步驟583’、系統(tǒng)資源監(jiān)視模塊判斷所述虛擬容器是否存在所述資源,如果是,執(zhí)行步驟587’;否則執(zhí)行步驟585’;步驟584’、系統(tǒng)資源監(jiān)視模塊判斷所述Java虛擬機(jī)是否存在所述資源,如果是,執(zhí)行步驟587’;否則執(zhí)行步驟586’;步驟585’、在虛擬容器里新建所述資源,執(zhí)行步驟587’;步驟586’、在Java虛擬機(jī)里新建所述資源,執(zhí)行步驟587’;步驟587’、寫入所述資源的值。
      全文摘要
      本發(fā)明涉及一種實(shí)現(xiàn)Web服務(wù)自動(dòng)化測(cè)試的方法,包括執(zhí)行測(cè)試用例;建立系統(tǒng)資源監(jiān)視模塊,監(jiān)視資源的讀寫;建立并啟動(dòng)代理服務(wù)器,將系統(tǒng)內(nèi)的所有網(wǎng)絡(luò)連接都設(shè)置為通過代理服務(wù)器來中轉(zhuǎn);JAVA虛擬機(jī)根據(jù)測(cè)試用例中的服務(wù)部署代碼,來建立虛擬Web服務(wù)容器,并在該容器中部署服務(wù);執(zhí)行測(cè)試驗(yàn)證代碼,啟動(dòng)一個(gè)調(diào)用Web服務(wù)的客戶端,該客戶端建立網(wǎng)絡(luò)連接對(duì)服務(wù)進(jìn)行調(diào)用,調(diào)用請(qǐng)求由代理服務(wù)器接收、并傳遞給虛擬Web服務(wù)容器進(jìn)行處理,然后將調(diào)用的結(jié)果返回給該客戶端;執(zhí)行測(cè)試驗(yàn)證代碼測(cè)試其返回值;輸出測(cè)試結(jié)果。該方法只需要編寫一個(gè)測(cè)試用例就可以完成Web服務(wù)的測(cè)試,少了人工進(jìn)行Web服務(wù)部署的步驟,從而實(shí)現(xiàn)自動(dòng)化。
      文檔編號(hào)H04L12/26GK1791037SQ20051013253
      公開日2006年6月21日 申請(qǐng)日期2005年12月26日 優(yōu)先權(quán)日2005年12月26日
      發(fā)明者懷進(jìn)鵬, 胡春明, 李翔, 唐鵬, 劉哲, 王麗鳳 申請(qǐng)人:北京航空航天大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1