>[0061]圖4是本發(fā)明一個實施例中提供的自動測試裝置的結(jié)構(gòu)方框圖。
[0062]圖5是本發(fā)明另一個實施例中提供的自動測試裝置的結(jié)構(gòu)方框圖。
【具體實施方式】
[0063]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0064]請參見圖1所示,其是本發(fā)明一個實施例中提供的自動測試方法所涉及的實施環(huán)境的示意圖。該實施環(huán)境可以包括自動測試服務(wù)器110、Web服務(wù)器120、本次測試的Web服務(wù)器130。
[0065]自動測試服務(wù)器110是運行有自動測試Web服務(wù)的測試程序的服務(wù)器,用于采集URL請求和響應(yīng)數(shù)據(jù)包,或者發(fā)送目標URL請求,或者接收測試響應(yīng)數(shù)據(jù)包。自動測試服務(wù)器110通過有線或者無線的方式與Web服務(wù)器120以及Web服務(wù)器130進行連接。
[0066]Web服務(wù)器120可以是在實際生產(chǎn)環(huán)境中運行的一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心,Web服務(wù)器120在與用戶的交互過程中產(chǎn)生海量的URL請求和響應(yīng)數(shù)據(jù)包。
[0067]本次測試的Web服務(wù)器130可以是一臺服務(wù)器,或者由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心,Web服務(wù)器130用于運行本次測試的Web服務(wù),可以接收目標URL請求,并反饋測試響應(yīng)數(shù)據(jù)包。
[0068]請參見圖2,其示出了本發(fā)明一個實施例中提供的自動測試方法的方法流程圖。本實施例以該自動測試方法應(yīng)用于自動測試服務(wù)器110中來舉例說明。該方法包括以下步驟。
[0069]在步驟201中,從Web服務(wù)器的運行日志文件中采集URL請求和響應(yīng)數(shù)據(jù)包,URL請求和響應(yīng)數(shù)據(jù)包——對應(yīng)。
[0070]在步驟202中,通過預(yù)先訓(xùn)練的功能模板從URL請求和響應(yīng)數(shù)據(jù)包中篩選出目標URL請求和目標響應(yīng)數(shù)據(jù)包。
[0071]功能模板用于從海量的URL請求和響應(yīng)數(shù)據(jù)包中,篩選出與某一種業(yè)務(wù)功能對應(yīng)的目標URL請求和目標響應(yīng)數(shù)據(jù)包。
[0072]在步驟203中,將目標URL請求發(fā)送給本次測試的Web服務(wù),并獲取Web服務(wù)反饋的測試響應(yīng)數(shù)據(jù)包,本次測試的Web服務(wù)具有的業(yè)務(wù)功能與功能模板對應(yīng)的業(yè)務(wù)功能屬于同一類型。
[0073]在步驟204中,計算目標響應(yīng)數(shù)據(jù)包和測試響應(yīng)數(shù)據(jù)包的相似度,并根據(jù)該相似度輸出測試結(jié)果。
[0074]綜上所述,本發(fā)明實施例提供的自動測試方法,通過采集URL請求和響應(yīng)數(shù)據(jù)包,并從中篩選出目標URL請求和目標響應(yīng)數(shù)據(jù)包,將目標URL請求發(fā)送至本次測試的Web服務(wù)來獲取測試響應(yīng)數(shù)據(jù)包,根據(jù)目標響應(yīng)數(shù)據(jù)包文本與測試響應(yīng)數(shù)據(jù)包文本的相似度確定對Web服務(wù)的測試是否通過,解決了現(xiàn)有技術(shù)中的測試方法對測試人員的要求和依賴較高,測試效率較低的問題;達到了不需要構(gòu)造URL請求和人工分析響應(yīng)數(shù)據(jù)包,實現(xiàn)全自動的web服務(wù)測試,從而提高測試效率的效果。
[0075]請參見圖3A,其示出了本發(fā)明另一個實施例中提供的自動測試方法的方法流程圖。本實施例以該自動測試方法應(yīng)用于自動測試服務(wù)器110中來舉例說明。該方法包括兩個階段:訓(xùn)練功能模板階段和使用功能模板測試的階段。
[0076]第一,訓(xùn)練功能模板階段:
[0077]在步驟301中,從Web服務(wù)器的運行日志文件中采集URL請求和響應(yīng)數(shù)據(jù)包,URL請求和響應(yīng)數(shù)據(jù)包——對應(yīng)。
[0078]Web服務(wù)器的運行日志文件中存儲了各個用戶發(fā)送的URL請求以及URL請求對應(yīng)的響應(yīng)數(shù)據(jù)包。
[0079]比如,用戶發(fā)送的URL請求是用于請求獲取用戶的歷史訂單的請求,則該URL請求對應(yīng)的響應(yīng)數(shù)據(jù)包可以包括用戶的歷史訂單的相關(guān)信息。
[0080]在步驟302中,將歷史時間段內(nèi)的m個URL請求進行相似聚類。
[0081 ] 測試程序在獲取URL請求時,還可以獲取各個URL請求的發(fā)送時間,測試程序可以根據(jù)各個URL請求的發(fā)送時間,獲取歷史時間段內(nèi)的m個URL請求。m為正整數(shù)。
[0082]比如,URL請求a的發(fā)送時間為2011年11月I日12時;
[0083]URL請求b的發(fā)送時間為2011年11月2日11時;
[0084]URL請求c的發(fā)送時間為2011年11月2日12時;
[0085]URL請求d的發(fā)送時間為2011年11月2日13時;
[0086]URL請求e的發(fā)送時間為2011年11月2日14時;
[0087]URL請求f的發(fā)送時間為2011年11月2日15時;
[0088]URL請求g的發(fā)送時間為2011年11月2日16時;
[0089]URL請求h的發(fā)送時間為2011年11月2日17時;
[0090]則測試程序可以獲取歷史時間段為2011年11月2日的6個URL請求“URL請求b、URL請求c、URL請求d、URL請求e、URL請求f、URL請求g”。(在實際訓(xùn)練過程中,m的數(shù)值較大,比如達到萬級、十萬級、百萬級等,本文中僅以6個URL請求來舉例說明)
[0091 ] 測試程序可以對該6個URL請求進行相似聚類,在一種可能的實現(xiàn)方式中,測試程序根據(jù)URL請求的文本相似度對各個URL請求進行分類。
[0092]比如,URL請求b為:
[0093]“http://test.yy.com/cgi/folder_list ? sid = lll&foldid = l&func =add&type = 2&uin = 111,,;
[0094]URL 請求 c 為:
[0095]“http://test.yy.com/cgi/folder—list ? sid = 222&foldid = 2&func =add&type = 2&uin = 222” ;
[0096]URL 請求 d 為:
[0097]“http://test.yy.com/cgi/folder_list ? sid = 333&foldid = 3&func =del&type = 2&uin = 333” ;
[0098]URL 請求 e 為:
[0099]“http://test.yy.com/cgi/folder_list ? sid = 444&foldid = 4&func =del&type = 2&uin = 444” ;
[0100]URL 請求 f 為:
[0101]“http://test.bb.com/cgi/folder_list ? sid = 444&foldid = 4&func =del&type = 2&uin = 444” ;
[0102]URL 請求 g 為:
[0103]“http://test.bb.com/cgi/folder_list ? sid = 555&foldid = 4&func =del&type = 2&uin = 444”。
[0104]測試程序確定URL請求b中網(wǎng)址數(shù)據(jù)為“http://test.yy.com”,URL請求c中網(wǎng)址數(shù)據(jù)為“http://test.yy.com”,URL 請求 d 中網(wǎng)址數(shù)據(jù)為“http://test.yy.com”,URL 請求e 中網(wǎng)址數(shù)據(jù)為“http://test.yy.com”,URL 請求 f 中網(wǎng)址數(shù)據(jù)為“http://test.bb.com”,URL請求g中網(wǎng)址數(shù)據(jù)為“http://test.bb.com”。由于URL請求b與URL請求c、URL請求d、URL請求e包括的網(wǎng)址數(shù)據(jù)相同,URL請f與URL請求g包括的網(wǎng)址數(shù)據(jù)相同,因此測試程序?qū)RL請求b與URL請求c、URL請求d、URL請求e作為同一類進行相似聚類,將URL請求f與URL請求g作為同一類進行相似聚類。
[0105]在步驟303中,對于屬于同一類的URL請求,分析URL請求中的用戶參數(shù)和系統(tǒng)參數(shù)。
[0106]URL請求中包括了用戶參數(shù)與系統(tǒng)參數(shù),其中,用戶參數(shù)是根據(jù)用戶的不同而改變參數(shù)取值的參數(shù),比如,用戶ID就是用戶參數(shù),每個用戶具有各自的用戶ID。系統(tǒng)參數(shù)是根據(jù)功能的不同而改變參數(shù)取值的參數(shù)。比如,增加訂單功能對應(yīng)的參數(shù)取值為add,刪除訂單功能對應(yīng)的參數(shù)取值為del。
[0107]測試程序可以對屬于同一類的URL請求進行分析,從而獲取URL請求中的用戶參數(shù)和系統(tǒng)參數(shù)。
[0108]測試程序可以通過圖3B示出的步驟303a至步驟303d對URL請求進行分析。
[0109]在步驟303a中,對于屬于同一類的URL請求,根據(jù)分隔符將URL請求劃分為若干個字符片段。
[0110]比如,以測試程序?qū)RL請求b進行分析為例進行說明,在URL請求b:“ht