Web服務負載雲測試方法和裝置的製作方法
2023-05-31 00:32:21 4
專利名稱:Web服務負載雲測試方法和裝置的製作方法
技術領域:
本發明涉及計算機網絡技術,尤其涉及一種Web服務負載雲測試方法和裝置,屬於服務負載測試技術領域。
背景技術:
近年來,隨著網際網路技術的不斷發展,網絡上聚集了越來越多的資源,不僅包含豐富的計算、存儲等物理資源,還有大量的軟體、服務資源,且資源的數目和類型日益增長,從而為基於服務的網絡軟體開發提供了重要的基礎。同時,隨著簡單對象訪問協議(Simple Object Access Protocol,以下簡稱SOAP)、Web 服務描述語言(WebServices Description Language,以下簡稱WSDL)、統一描述、發現和集成(UniversalDescription, Discovery, and Integration,以下簡稱UDDI)協議和業務流程執行語言 (Business Process Execution Language,以下簡稱BPEL)等標準的制定,也進一步促進了 Web服務(Web service)技術及面向服務架構SOA的快速發展,使得異構信息、異構平臺的共享與集成成為可能,基於Web服務的分布式應用系統開發已經成為計算機軟體領域一個重要的方向。W3C對Web服務的定義為Web服務是一個軟體系統,用以支持網絡間不同機器的互動操作。Web服務通常是許多應用程式接口(API)所組成的,它們通過網絡,例如Internet的遠程伺服器端,執行客戶所提交服務的請求。目前,Web服務技術得到廣泛的接受,一方面存在大量商用、開放源碼及獨立開發的服務軟體,據最新統計Web服務搜尋引擎Seekda中收錄的Web服務共有28000多個,且不斷增長,開放註冊庫BindingPoint. com和XMethods. org上也有大量的Web服務註冊,此外,谷歌、亞馬遜等公司已開始對外提供商用Web服務。每個Web服務發布後,要公開地向來自各處的不同請求提供服務,它能應對多大的負載,在不同負載下性能會有何種不同表現,都需要通過Web服務負載測試來獲得。所以,Web服務負載測試是通過測試服務在資源超負荷情況下的表現,以發現設計上的錯誤或驗證Web服務的負載能力。在測試中,將使測試目標承擔不同的工作量,以評測和評估測試服務在不同工作量條件下的性能行為,以及持續正常運行的能力。現有的Web測試工具,大多採用單個測試節點或小集群環境對Web服務進行負載測試。由於測試節點數量有限,在測試大負載情況下的服務性能時,每個測試節點的並發測試線程數量過大,會導致大部分測試線程被歸入到測試節點等待隊列,得不到調度,測試節點的網卡處也會造成擁塞,此時,這些並發測試線程就無法實現真正並發地調用目標測試服務,對其大負載下的性能測試。另外,測試節點在地理位置也會存在單一的問題,很難模擬實際的Web服務調用請求的地理分布性。
發明內容
本發明提供一種Web服務負載雲測試方法和裝置,用於解決測試節點單一的缺陷,實現真正並發地調用目標測試服務。本發明的第一個方面是提供一種Web服務負載雲測試方法,包括獲取進行Web服務負載雲測試的兩個以上的雲測試節點,所述雲測試節點為分布在雲計算網絡中的節點;
獲取測試任務信息,所述測試任務信息包括進行Web服務負載雲測試的並發測試線程信息;根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值;接收所述兩個以上的雲測試節點返回的負載測試結果。本發明的另一個方面是提供一種Web服務負載雲測試裝置,包括第一獲取模塊,用於獲取進行Web服務負載雲測試的兩個以上的雲測試節點,所述雲測試節點為分布在雲計算網絡中的節點;第二獲取模塊,用於獲取測試任務信息,所述測試任務信息包括進行Web服務負載雲測試的並發測試線程信息;測試處理模塊,用於根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值;接收模塊,用於接收所述兩個以上的雲測試節點返回的負載測試結果。本發明提供的Web服務負載雲測試方法和裝置,其中的雲測試節點為分布在雲計算網絡中的節點,通過使用該類雲測試節點,可以解決現有的Web服務負載測試過程中測試節點單一,不能夠模仿實際業務過程中對Web服務負載的影響的缺陷,同時由於在為雲測試節點分發並發測試線程數目時,使得雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值,測試節點的網卡處不會造成擁塞,能夠真正實現並發地調用目標測試服務。
圖I為本發明實施例中Web服務負載雲測試方法的流程示意圖;圖2為本發明實施例中Web服務負載雲測試裝置的結構示意圖;圖3a為本發明實施例中並發測試線程分配示意圖一;圖3b為本發明實施例中並發測試線程分配示意圖二。
具體實施例方式本發明實施例提供了一種Web服務負載雲測試方法,圖I為本發明實施例中Web服務負載雲測試方法的流程示意圖,如圖I所示,包括如下的步驟步驟101、獲取進行Web服務負載雲測試的兩個以上的雲測試節點,所述雲測試節點為分布在雲計算網絡中的節點;步驟102、獲取測試任務信息,所述測試任務信息包括進行Web服務負載雲測試的並發測試線程信息;步驟103、根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值;步驟104、接收所述兩個以上的雲測試節點返回的負載測試結果。本發明上述實施例提供的Web服務負載雲測試方法,其中的測試伺服器獲取測試任務信息,以及進行Web服務負載雲測試的兩個以上的雲測試節點,其中,測試任務信息包括進行Web服務負載雲測試的並發測試線程信息,在獲取到上述信息後,可以根據並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲 測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值。具體的,上述的雲測試節點為分布在雲計算網絡中的節點,通過使用該類雲測試節點,可以解決現有的Web服務負載測試過程中測試節點比較單一,不能夠模仿實際業務過程中對Web服務負載的影響的缺陷,同時由於在為雲測試節點分發並發測試線程時,使得雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值,測試節點的網卡處不會造成擁塞,能夠真正實現並發地調用目標測試服務。本發明上述實施例中,其中獲取進行Web服務負載雲測試的兩個以上的雲測試節點可以具體包括獲取滿足如下條件的進行Web服務負載雲測試的兩個以上的雲測試節點
Λ;,5^
f=lJ=I其中Nd表示兩個以上的雲測試節點,S表示雲測試節點上安裝的其他軟體設備種類數,Cu表示與雲測試節點i中第j種類軟體設備的數量,μ j表示每增加一個第j種類設備對並發測試線程閾值Oi的影響參數,N表示要進行Web服務負載雲測試的並發測試線程數目。在由用戶指定雲測試節點的情況下,獲取的所述進行Web服務負載雲測試的兩個以上的雲測試節點包括用戶指定的雲測試節點;或者是,用戶不指定雲測試節點,獲取的所述進行Web服務負載雲測試的兩個以上的雲測試節點為所有可用雲測試節點中可用並發線程數目最多的一組雲測試節點。本發明上述實施例中,在Web服務負載雲測試包括多個測試子任務時,在完成一個測試子任務後,重新獲取下一個測試子任務所需要的兩個以上的雲測試節點;並重新為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令。並且在獲取進行Web服務負載雲測試的兩個以上的雲測試節點中優先獲取非共享雲測試節點,具體的該非共享雲測試節點是指在一個時間段內,只有一個測試測試任務使用的雲測試節點,而在一個時間段內被兩個以上測試任務使用的節點被稱為共享測試節點。與上述方法實施例對應的,本發明還提供了一種Web服務負載雲測試裝置,圖2為本發明實施例中Web服務負載雲測試裝置的結構示意圖,如圖2所示,包括第一獲取模塊11,第二獲取模塊12,測試處理模塊13和接收模塊14,其中第一獲取模塊11用於獲取進行Web服務負載雲測試的兩個以上的雲測試節點,所述雲測試節點為分布在雲計算網絡中的節點;第二獲取模塊12用於獲取測試任務信息,所述測試任務信息包括進行Web服務負載雲測試的並發測試線程信息;測試處理模塊13用於根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值;接收模塊14用於接收所述兩個以上的雲測試節點返回的負載測試結果。本發明上述實施例提供的Web服務負載雲測試裝置,其中獲取的雲測試節點為分布在雲計算網絡中的節點,通過使用該類雲測試節點,可以解決現有的Web服務負載測試過程中測試節點比較單一,不能夠模仿實際業務過程中對Web服務負載的影響的缺陷,同時由於在為雲測試節點分發並發測試線程數目時,使得雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值,測試節點的網卡處不會造成擁塞,能夠真正 實現並發地調用目標測試服務。本發明上述實施例中,其中的第一獲取模塊具體用於獲取滿足如下條件的進行
Web服務負載雲測試的兩個以上的雲測試節點
Pf,iSJ2{OiN i —-1 j —-1其中Nd表示兩個以上的雲測試節點,S表示雲測試節點上安裝的其他軟體設備種類數,Cu表示與雲測試節點i中第j種類軟體設備的數量,μ J表示每增加一個第j種類設備對並發測試線程閾值Oi的影響參數,N表示要進行Web服務負載雲測試的並發測試線程數目。另外,用戶可以指定雲測試節點,所述第一獲取模塊獲取的進行Web服務負載雲測試的兩個以上的雲測試節點包括用戶指定的雲測試節點;或者是,測試任務信息中不攜帶指定雲測試節點,所述第一獲取模塊獲取的所述進行Web服務負載雲測試的兩個以上的雲測試節點為所有可用雲測試節點中可用並發線程數目最多的一組雲測試節點。另外,上述的一獲取模塊還可以具體用於在Web服務負載雲測試包括多個測試子任務時,在完成一個測試子任務後,重新獲取下一個測試子任務所需要的兩個以上的雲測試節點;所述測試處理模塊具體用於重新為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令。本發明上述實施例中,上述第一獲取模塊在獲取進行Web服務負載雲測試的兩個以上的雲測試節點中優先獲取非共享雲測試節點。本發明的具體實施例中,其中的Web服務負載雲測試業務平臺可以分為三層結構實現,即包括SaaS、PaaS和IaaS三層,其中的SaaS層用於實現前端測試任務接收和監控,對應的功能可以在雲測試裝置完成,圖2所示的第一獲取模塊和第二獲取模塊位於該層,能夠向測試人員提供測試任務配置、提交和監控的接口界面,接收用戶輸入的測試任務信息,對測試任務的執行情況進行監控,存儲歷史的Web服務負載測試結果,另外還可以負責雲測試節點的選擇。
PaaS層包括測試任務管理器、軟體設備管理器、雲測試節點代理和測試引擎,其中測試任務管理器能夠根據測試任務信息、以及從雲測試節點代理獲取的各雲測試節點的信息,為雲測試節點的測試引擎分發並發測試線程,並在雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,同時搜集各個雲測試節點上測試引擎反饋的負載測試結果,該功能可以在Web服務負載測試裝置中實現,即對應上述圖2所示實施例中測試處理模塊和接收模塊。上述的軟體設備管理器主要是負載上述各個雲測試節點上軟體設備的模塊,負責各種軟體設備的註冊、啟動和關閉等操作。雲測試節點代理是輔助軟體設備管理器管理雲測試節點上軟體設備的模塊,它負責將本地的軟體設備信息定時註冊到軟體設備管理器中,當軟體設備管理器發出啟動、關閉等指令時,也是由雲測試節點代理來實際執行。另外,上述的測試引擎是雲測試節點上負責負載測試的專用軟體設備,負責實際地向目標測試服務發起調用請求,按照測試任務管理器分發的並發測試線程數目啟動相應的並發測試線程並同時調用目標測試服務,同時對調用請求的結果進行收集和分析,判斷調用是否成功,並可以記錄各調用的響應時間等信息。另外,IaaS層主要是指負載測試用的基礎設施,例如可以包括計算、存儲、網絡等資源。對於任意一個測試任務,可以通過如下的測試過程實現步驟一接收測試任務,例如由雲測試裝置的接口界面接收用戶輸入的測試任務信息,該測試任務信息除包括並發測試線程信息外,還可以包括預測試的目標Web服務的地址,測試請求的超時時間或預期的測試結果等,其中並發測試線程信息可以將測試分為三種類型,一種是靜態測試,即規定並發測試線程的總數目,並分發給多個雲測試節點,有雲測試節點根據分發到的並發測試線程數目一次完成測試,第二種是遞增測試,例規定並發測試線程的數目由10到100,共10個測試子任務,每個測試子任務遞增10個並發測試線程,雲測試裝置可以為每次的測試子任務確定相應的雲測試節點,並分配相應的並發測試線程數目,第三種是給定需滿足的預期結果上限的測試,例如給出測試的起始並發測試線程數目為10,每次遞增10個並發測試線程,未規定測試的並發測試線程數目的上限,僅當 並發測試線程對Web服務調用,出錯率達到某一上限時停止測試,該類型的測試任務也會包括多個測試子任務。具體的測試任務信息中還可以包括測試請求的超時時間或預期的測試結果,該兩項信息可以發送給各個雲測試節點,以由雲測試節點根據實際測試的信息與預期的測試結果進行分析,將分析結果作為負載測試結果反饋回來,或者是雲測試節點是將實際測試的信息作為負載測試結果反饋回來,雲測試裝置根據實際測試的信息與預期的測試結果進行分析,對於雲測試節點通過並發測試線程對Web服務發起測試調用時,若Web服務的響應時間超時,即超過了測試請求的超時時間,或者是對Web服務發起測試調用時返回的調用結果與預期的測試結果不匹配,都可認為是出錯;在獲取到上述的測試任務信息後,可以將測試任務信息提供給測試任務管理器。步驟二 配置測試環境,在接收到測試任務信息後,可以配置測試環境,同時可以選擇雲測試節點,並啟動各測試節點上的測試引擎。本步驟中,選擇雲測試節點可以包括兩種情況,一是測試人員指定了雲測試節點,如果測試人員指定了 Nd個雲測試節點,則可以計算是否滿足下式
權利要求
1.一種Web服務負載雲測試方法,其特徵在於,包括 獲取進行Web服務負載雲測試的兩個以上的雲測試節點,所述雲測試節點為分布在雲計算網絡中的節點; 獲取測試任務信息,所述測試任務信息包括進行Web服務負載雲測試的並發測試線程信息; 根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值; 接收所述兩個以上的雲測試節點返回的負載測試結果。
2.根據權利要求I所述的Web服務負載雲測試方法,其特徵在於,所述獲取進行Web服務負載雲測試的兩個以上的雲測試節點包括 獲取滿足如下條件的進行Web服務負載雲測試的兩個以上的雲測試節點
3.根據權利要求2所述的Web服務負載雲測試方法,其特徵在於,所述獲取的所述進行Web服務負載雲測試的兩個以上的雲測試節點包括用戶指定的雲測試節點;或 獲取的所述進行Web服務負載雲測試的兩個以上的雲測試節點為所有可用雲測試節點中可用並發線程數目最多的一組雲測試節點。
4.根據權利要求I所述的Web服務負載雲測試方法,其特徵在於,所述方法還包括 在Web服務負載雲測試包括多個測試子任務時,在完成一個測試子任務後,重新獲取下一個測試子任務所需要的兩個以上的雲測試節點;並重新為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令。
5.根據權利要求1-4任一所述的Web服務負載雲測試方法,其特徵在於,所述獲取進行Web服務負載雲測試的兩個以上的雲測試節點中優先獲取非共享雲測試節點。
6.一種Web服務負載雲測試裝置,其特徵在於,包括 第一獲取模塊,用於獲取進行Web服務負載雲測試的兩個以上的雲測試節點,所述雲測試節點為分布在雲計算網絡中的節點; 第二獲取模塊,用於獲取測試任務信息,所述測試任務信息包括進行Web服務負載雲測試的並發測試線程信息; 測試處理模塊,用於根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值; 接收模塊,用於接收所述兩個以上的雲測試節點返回的負載測試結果。
7.根據權利要求6所述的Web服務負載雲測試裝置,其特徵在於,所述第一獲取模塊具體用於獲取滿足如下條件的進行Web服務負載雲測試的兩個以上的雲測試節點
8.根據權利要求7所述的Web服務負載雲測試裝置,其特徵在於,所述第一獲取模塊獲取的進行Web服務負載雲測試的兩個以上的雲測試節點包括用戶指定的雲測試節點;或 所述第一獲取模塊獲取的所述進行Web服務負載雲測試的兩個以上的雲測試節點為所有可用雲測試節點中可用並發線程數目最多的一組雲測試節點。
9.根據權利要求6所述的Web服務負載雲測試裝置,其特徵在於,所述第一獲取模塊具體用於在Web服務負載雲測試包括多個測試子任務時,在完成一個測試子任務後,重新獲取下一個測試子任務所需要的兩個以上的雲測試節點;所述測試處理模塊具體用於重新為所述兩個以上的雲測試節點分發並發測試線程數目,並在所述兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令。
10.根據權利要求6-9任一所述的Web服務負載雲測試裝置,其特徵在於,所述第一獲取模塊在獲取進行Web服務負載雲測試的兩個以上的雲測試節點中優先獲取非共享雲測試節點。
全文摘要
本發明提供一種Web服務負載雲測試方法和裝置,其中Web服務負載雲測試方法,包括獲取進行Web服務負載雲測試的兩個以上的雲測試節點,雲測試節點為分布在雲計算網絡中的節點;獲取測試任務信息,測試任務信息包括進行Web服務負載雲測試的並發測試線程信息;根據所述並發測試線程信息為所述兩個以上的雲測試節點分發並發測試線程數目,並在兩個以上的雲測試節點上的並發測試線程準備完畢後,向其發送測試指令,其中,每個雲測試節點分配到的並發測試線程數目小於該雲測試節點的並發測試線程閾值;接收所述兩個以上的雲測試節點返回的負載測試結果。該技術方案能夠解決測試節點的位置單一的缺陷,實現真正並發地調用目標測試服務。
文檔編號H04L29/08GK102868573SQ201210337759
公開日2013年1月9日 申請日期2012年9月12日 優先權日2012年9月12日
發明者孫海龍, 劉旭東, 閆敏之, 王旭, 趙文敏 申請人:北京航空航天大學