一種網(wǎng)絡(luò)測試方法和裝置制造方法
【專利摘要】本發(fā)明公開一種網(wǎng)絡(luò)測試方法和裝置,所述方法包括:錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板;讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端;接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。使用本發(fā)明的方法和裝置,解決網(wǎng)絡(luò)測試過程中腳本復(fù)用率和擴(kuò)展性低、代碼冗余度高、用例編寫工作量大的問題。
【專利說明】一種網(wǎng)絡(luò)測試方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)測試領(lǐng)域,特別涉及一種網(wǎng)絡(luò)測試方法和裝置。
【背景技術(shù)】
[0002]在一般的C/S架構(gòu)的項(xiàng)目中,服務(wù)器和客戶端交互是通過SOCKET發(fā)送TCP/IP協(xié)議包進(jìn)行交互,交互內(nèi)容稱為信令體。信令體的主要構(gòu)成是信令頭部和XML信令主體。
[0003]在現(xiàn)有的網(wǎng)絡(luò)測試中,通常使用現(xiàn)有的負(fù)載測試工具(1adrunner)的socket錄制功能對(duì)于每個(gè)用例錄制一段腳本,但錄制后無法復(fù)用,并且擴(kuò)展性低。由于各個(gè)用例均無法使用之前的腳本,所以需要重新錄制。由于擴(kuò)展性低,所以錄制的用例的內(nèi)容會(huì)比較多,增加代碼的冗余度和增加復(fù)查的復(fù)雜度。并且每次編寫新的用例,都需要重新編譯,如果用C#編寫,當(dāng)用例數(shù)量達(dá)到一定程度的時(shí)候,編譯時(shí)間過長。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供的一種網(wǎng)絡(luò)測試方法和裝置,用以解決網(wǎng)絡(luò)測試過程中腳本復(fù)用率和擴(kuò)展性低、代碼冗余度高、用例編寫工作量大的問題。
[0005]本發(fā)明公開了一種網(wǎng)絡(luò)測試方法,所述方法包括:
[0006]錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板;
[0007]讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端;
[0008]接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。
[0009]其中,所述測試用例中還包括預(yù)期的應(yīng)答信令中數(shù)據(jù);
[0010]所述讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例前還包括:
[0011]錄制接收的被測試端發(fā)送的應(yīng)答信令,解析出所述應(yīng)答信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,保存所述應(yīng)答模板;
[0012]所述讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例后還包括:
[0013]調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,使用所述預(yù)期的應(yīng)答信令中數(shù)據(jù)為所述應(yīng)答模板中變量賦值,生成預(yù)期的應(yīng)答信令并保存。
[0014]其中,所述根據(jù)接收的所述應(yīng)答信令進(jìn)行測試具體包括:
[0015]將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,如果匹配,則測試結(jié)果為成功,否則,測試結(jié)果為失敗。
[0016]其中,所述解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型具體包括:
[0017]根據(jù)所述請(qǐng)求信令中頭部和主體間的分割標(biāo)識(shí),將所述請(qǐng)求信令分割為頭部和主體;
[0018]根據(jù)所述頭部中每一行的首字母確定出可變數(shù)據(jù)和業(yè)務(wù)類型;
[0019]根據(jù)XML格式解析所述主體,確定出可變數(shù)據(jù)。
[0020]其中,所述保存所述請(qǐng)求模板具體包括:
[0021]判斷自身是否已經(jīng)保存有與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板;
[0022]若判斷為否,則保存生成的請(qǐng)求模板;若判斷為是,則根據(jù)生成的請(qǐng)求模板更新已經(jīng)保存的請(qǐng)求模板。
[0023]其中,所述測試用例中還包括用于回復(fù)被測試端的數(shù)據(jù);
[0024]所述方法還包括:
[0025]讀取所述測試用例后,根據(jù)所述用于回復(fù)被測試端的數(shù)據(jù)生成回復(fù)信令;
[0026]所述接收所述被測試端返回的應(yīng)答信令后還包括:
[0027]在需要回復(fù)所述被測試端時(shí),將所述回復(fù)信令發(fā)送給所述被測試端。
[0028]其中,所述錄制發(fā)送給被測試端的請(qǐng)求信令具體包括:
[0029]通過自定義的套接字Socket端口根據(jù)預(yù)設(shè)的過濾規(guī)則抓取請(qǐng)求信令,保存抓取的請(qǐng)求信令。
[0030]根據(jù)本發(fā)明的另一方面,公開了一種網(wǎng)絡(luò)測試裝置,所述裝置包括:模板生成模塊、信令生成模塊和信令接收模塊;
[0031]所述模板生成模塊,用于錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板;
[0032]所述信令生成模塊,用于讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端;
[0033]所述信令接收模塊,用于接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。
[0034]其中,所述測試用例中還包括預(yù)期的應(yīng)答信令中數(shù)據(jù);
[0035]所述模板生成模塊,還用于錄制接收的被測試端發(fā)送的應(yīng)答信令,解析出所述應(yīng)答信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,保存所述應(yīng)答模板;
[0036]所述信令生成模塊,還用于調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,使用所述預(yù)期的應(yīng)答信令中數(shù)據(jù)為所述應(yīng)答模板中變量賦值,生成預(yù)期的應(yīng)答信令并保存。
[0037]其中,所述信令接收模塊,具體用于將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,如果匹配,則測試結(jié)果為成功,否則,測試結(jié)果為失敗。
[0038]本發(fā)明有益效果是:通過使用模板,降低了用例的復(fù)雜度,解決了用例編寫工作量大的問題;通過自動(dòng)生成和更新模板,降低了制作模板的工作量。因此通過該技術(shù)方案節(jié)約了測試成本,并且提高了測試效率。
【專利附圖】
【附圖說明】
[0039]圖1為本發(fā)明網(wǎng)絡(luò)測試方法的第一實(shí)施例的流程圖;
[0040]圖2為本發(fā)明網(wǎng)絡(luò)測試方法的第二實(shí)施例的流程圖;
[0041]圖3為本發(fā)明網(wǎng)絡(luò)測試裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0042]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0043]參閱圖1,為本發(fā)明網(wǎng)絡(luò)測試方法的第一實(shí)施例的流程圖。本實(shí)施例中,被測試端可以為一應(yīng)用服務(wù)器,例如即時(shí)通信的服務(wù)器,本實(shí)施例中方法可以運(yùn)行在區(qū)別于應(yīng)用服務(wù)器的另一設(shè)備中,該設(shè)備被稱為測試端。該設(shè)備中包括自動(dòng)化測試平臺(tái)和客戶端。自動(dòng)化測試平臺(tái)用于進(jìn)行信令錄制,生成信令模板,以及根據(jù)測試用例和信令模板生成信令的操作,客戶端用于將請(qǐng)求信令發(fā)送給被測試端以及接收被測試端返回的應(yīng)答信令。
[0044]所述方法包括如下步驟:
[0045]步驟S100,錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板。
[0046]其中,所述錄制發(fā)送給被測試端的請(qǐng)求信令具體包括:通過自定義的Socket(套接字)端口根據(jù)預(yù)設(shè)的過濾規(guī)則抓取請(qǐng)求信令,保存抓取的請(qǐng)求信令。其中該請(qǐng)求信令為測試端發(fā)送給被測試端的信令。
[0047]根據(jù)需求不同可以配置不同的過濾規(guī)則,進(jìn)而通過測試端的自定義的Socket端口抓取需要獲得的請(qǐng)求信令。
[0048]舉例而言,現(xiàn)有技術(shù)中錄制信令所用工具(如Fiddler、Wireshark、NetWorkMonitor等)都是捕獲TCP/IP通信數(shù)據(jù)包,抓取的是交互中所有的數(shù)據(jù)包,從而導(dǎo)致抓取信令過多,需要人工進(jìn)行篩選,從而造成資源和時(shí)間的浪費(fèi)。
[0049]在本發(fā)明中,自定義Socket端口,通過TCP/IP的協(xié)議包頭,IP信息等進(jìn)行自動(dòng)篩選,從而能夠直接自動(dòng)獲得所需信令,進(jìn)而節(jié)約資源和時(shí)間。例如,通過測試端的自定義的Socket端口根據(jù)賬號(hào)信息進(jìn)行過濾,從而能夠抓取特定賬號(hào)的信令。
[0050]本發(fā)明中信令具體可以為Socket信令,但不限于此。
[0051]其中,所述解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型具體包括:
[0052]根據(jù)所述請(qǐng)求信令中頭部和主體間的分割標(biāo)識(shí),將所述請(qǐng)求信令分割為頭部和主體。一般地,頭部包含了對(duì)信令的描述,主體包含了信令的詳細(xì)信息。對(duì)于網(wǎng)絡(luò)通信信令而言,分割標(biāo)識(shí)具體是回車和空行。
[0053]根據(jù)所述頭部中每一行的首字母確定出可變數(shù)據(jù)和業(yè)務(wù)類型。具體地,通過分析回車符號(hào)對(duì)頭部進(jìn)行分行,從而根據(jù)每一行的首字母確定出可變的數(shù)據(jù)和業(yè)務(wù)類型。一般地,對(duì)于頭部而言,每一個(gè)回車符號(hào)對(duì)應(yīng)一行,每一行對(duì)應(yīng)一個(gè)描述信息,例如協(xié)議、帳號(hào)、業(yè)務(wù)類型、包長度等等。
[0054]根據(jù)XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語言)格式解析所述主體,確定出可變數(shù)據(jù)。一般地,主體是XML格式的,根據(jù)XML格式解析所述主體能夠選擇出可變數(shù)據(jù)。
[0055]其中,所述保存所述請(qǐng)求模板具體包括:
[0056]首先判斷自身是否已經(jīng)保存有與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板;
[0057]若判斷為否,則保存生成的請(qǐng)求模板;若判斷為是,則根據(jù)生成的請(qǐng)求模板更新已經(jīng)保存的請(qǐng)求模板。
[0058]換言之,通過判斷是否已經(jīng)保存了與生成的請(qǐng)求模板的業(yè)務(wù)類型對(duì)應(yīng)的模板,如果沒有保存具有這一業(yè)務(wù)類型的請(qǐng)求模板,即這一業(yè)務(wù)沒有被測試過,則保存該生成的請(qǐng)求模板;如果已經(jīng)保存了具有這一業(yè)務(wù)類型的模板,即這一業(yè)務(wù)已經(jīng)被測試過,則根據(jù)生成的請(qǐng)求模板更新上述業(yè)務(wù)類型與該生成的請(qǐng)求模板相同的模板,具體的更新方法,可以是使用新生成的請(qǐng)求模板覆蓋已有的模板;也可以是將兩模板之中的內(nèi)容合并保存,例如將已有模板中不存在而新生成的請(qǐng)求模板中存在的內(nèi)容,補(bǔ)充到已有的模板中。
[0059]由于發(fā)送給被測試端的請(qǐng)求信令,都是一般的網(wǎng)絡(luò)信令,根據(jù)上述請(qǐng)求信令,生成請(qǐng)求模板,從而可以實(shí)現(xiàn)模板的自動(dòng)生成和更新,能夠降低制作模板的工作量。
[0060]進(jìn)一步地,本發(fā)明的步驟SlOO中,還包括生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的用例并保存的步驟。具體地,是將替換所述可變數(shù)據(jù)的變量,生成用例;判斷是否已經(jīng)保存有與所述業(yè)務(wù)類型相對(duì)應(yīng)的用例;若判斷為否,則保存生成的用例;若判斷為是,則根據(jù)生成的用例更新已經(jīng)保存的用例。具體的更新方法,可以是使用新生成的用例覆蓋已有的用例;也可以是將兩用例之中的內(nèi)容合并保存。
[0061]保存的用例,可以供測試人員后續(xù)測試使用。即測試人員只要根據(jù)業(yè)務(wù)類型調(diào)用用例,并修改其中的數(shù)據(jù)即可得到供測試用的測試用例。
[0062]例如,經(jīng)本實(shí)施例方案錄制后,可以讓其他用例重復(fù)使用的SOCKET信令的模板:
[0063]請(qǐng)求信令模板:
[0064]S Domain SIP-C/4.0 //信令頭部第一行,SOCKET協(xié)議的名稱和IP相關(guān)信息
[0065]F: 33333333//信令頭部第二行,賬號(hào)
[0066]N:1nviteUserV4//信令頭部第三行,標(biāo)示業(yè)務(wù)類型
[0067]1:4444//信令頭部第四行,業(yè)務(wù)步驟標(biāo)示
[0068]Qirequest S//信令頭部第五行,業(yè)務(wù)數(shù)據(jù)
[0069]L:llll//信令頭部第六行,包長度
[0070]〈body〉//信令主體開始,信令中包含了賬戶的詳細(xì)信息
[0071]〈user name=” $username$”X/user> //數(shù)據(jù)的變量,過濾出數(shù)據(jù),用變量代替
[0072]…….//其他節(jié)點(diǎn)信息
[0073]〈/body〉//信令主體結(jié)束
[0074]應(yīng)答信令模板:
[0075]SIP-C/4.0$code$ Unauthoried//應(yīng)答信令第一行,$code$S應(yīng)答狀態(tài)碼
[0076]錄制后,生成的數(shù)據(jù),即為新版用例內(nèi)容:
[0077]$username$= “小明” ;$code$= “200”
[0078]錄制腳本進(jìn)行模板化處理,在本實(shí)施例方案設(shè)計(jì)的工具中,提取信令的共同點(diǎn)生成模板,這樣就提升了錄制后腳本的可復(fù)用性和可擴(kuò)展性?,F(xiàn)有技術(shù)用例存儲(chǔ)的是所有信令信息,本實(shí)施例方案設(shè)計(jì)的用例,只存儲(chǔ)用例的數(shù)據(jù),信令以模板的形式進(jìn)行另外保存,供其他用例復(fù)用,例如第二個(gè)用例保存為:
[0079]$username$= “小_,,; $code$= “200”。
[0080]步驟S200,讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端。
[0081]本實(shí)施例中,模板包括用于相應(yīng)的業(yè)務(wù)類型的網(wǎng)絡(luò)信令的共同的部分,測試用例則包括可變數(shù)據(jù)(換言之,測試用例包括了在多個(gè)不同的網(wǎng)絡(luò)信令中可以不同的數(shù)據(jù),例如,用戶名、賬號(hào)等等)。通過將數(shù)據(jù)填充到模板之中,形成內(nèi)容和格式完整的且符合網(wǎng)絡(luò)通信規(guī)范的信令。
[0082]較佳地,模板中包含變量,所述變量在數(shù)據(jù)的結(jié)構(gòu)上,分別對(duì)應(yīng)于上述可變數(shù)據(jù)。則所述將測試用例中的數(shù)據(jù)填充到模板中,包括:利用測試用例中包含的可變數(shù)據(jù),替換模板中相對(duì)應(yīng)的變量。
[0083]由此可知,通過使用可以復(fù)用的模板,測試用例只需要包含可變數(shù)據(jù)而不必包含其相應(yīng)信令的共同的部分,降低了用例的復(fù)雜度。
[0084]步驟S300,接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。
[0085]參閱圖2,為本發(fā)明網(wǎng)絡(luò)測試方法的第二實(shí)施例的流程圖。所述方法包括如下步驟。
[0086]步驟S100’,錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存請(qǐng)求模板;錄制接收的被測試端發(fā)送的應(yīng)答信令,解析出所述應(yīng)答信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,保存應(yīng)答模板。
[0087]其中,所述保存應(yīng)答模板具體包括:
[0088]首先判斷自身是否已經(jīng)保存有與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板;
[0089]若判斷為否,則保存生成的應(yīng)答模板;若判斷為是,則根據(jù)生成的應(yīng)答模板更新已經(jīng)保存的應(yīng)答模板。
[0090]其中,所述錄制接收的被測試端發(fā)送的應(yīng)答信令具體包括:通過自定義的Socket端口根據(jù)預(yù)設(shè)的過濾規(guī)則抓取應(yīng)答信令,保存抓取的應(yīng)答信令。
[0091]步驟S200’,讀取包含請(qǐng)求信令中數(shù)據(jù)和預(yù)期的應(yīng)答信令中數(shù)據(jù)的測試用例;調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端;調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,使用所述預(yù)期的應(yīng)答信令中數(shù)據(jù)為所述應(yīng)答模板中變量賦值,生成預(yù)期的應(yīng)答信令并保存。
[0092]步驟S300’,接收所述被測試端返回的應(yīng)答信令,將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,如果匹配,則測試結(jié)果為成功,否則,測試結(jié)果為失敗。
[0093]第二實(shí)施例與第一實(shí)施例的不同之處,在于第二實(shí)施例增加了對(duì)被測試端的應(yīng)答信令解析獲得模板的操作、使用預(yù)期的應(yīng)答信令中數(shù)據(jù)和相應(yīng)的模板生成預(yù)期的應(yīng)答信令的操作。從而能夠通過將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,快速地獲得測試結(jié)果。
[0094]另外,由于在特定的網(wǎng)絡(luò)通信中,測試端在接收到被測試端的應(yīng)答信令之后,還會(huì)再次回復(fù)被測試端。所以,所述測試用例中還能夠包括用于回復(fù)被測試端的數(shù)據(jù)。本實(shí)施例的方法還包括:讀取所述測試用例后,根據(jù)所述用于回復(fù)被測試端的數(shù)據(jù)生成回復(fù)信令;接收被測試端返回的應(yīng)答信令后,在需要回復(fù)所述被測試端時(shí),將所述回復(fù)信令發(fā)送給所述被測試端。具體地,在步驟S100’中,還包括保存發(fā)送給被測試端的回復(fù)信令,解析出所述回復(fù)信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的回復(fù)模板并保存;在步驟S200’中,還包括調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的回復(fù)模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述回復(fù)模板中變量賦值,生成回復(fù)信令;在步驟S300’中,還包括將所述回復(fù)信令發(fā)送給被測試端。
[0095]參閱圖3,為本發(fā)明網(wǎng)絡(luò)測試裝置的結(jié)構(gòu)圖。本實(shí)施例中,被測試端可以為一應(yīng)用服務(wù)器,例如即時(shí)通信的服務(wù)器,本實(shí)施例中裝置可以運(yùn)行在區(qū)別于應(yīng)用服務(wù)器的另一設(shè)備。
[0096]所述網(wǎng)絡(luò)測試裝置包括:模板生成模塊100、信令生成模塊200和信令接收模塊300。
[0097]模板生成模塊100,用于錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板。
[0098]信令生成模塊200,用于讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端。
[0099]信令接收模塊300,用于接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。較佳地,所述測試用例中還包括預(yù)期的應(yīng)答信令中數(shù)據(jù);
[0100]模板生成模塊100,還用于錄制接收的被測試端發(fā)送的應(yīng)答信令,解析出所述應(yīng)答信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,保存所述應(yīng)答模板;
[0101]信令生成模塊200,還用于調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,使用所述預(yù)期的應(yīng)答信令中數(shù)據(jù)為所述應(yīng)答模板中變量賦值,生成預(yù)期的應(yīng)答信令并保存。
[0102]較佳地,信令接收模塊300,具體用于將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,如果匹配,則測試結(jié)果為成功,否則,測試結(jié)果為失敗。
[0103]較佳地,模板生成模塊100,具體用于根據(jù)所述請(qǐng)求信令中頭部和主體間的分割標(biāo)識(shí),將所述請(qǐng)求信令分割為頭部和主體;根據(jù)所述頭部中每一行的首字母確定出可變數(shù)據(jù)和業(yè)務(wù)類型;根據(jù)XML格式解析所述主體,確定出可變數(shù)據(jù)。
[0104]較佳地,模板生成模塊100,具體用于判斷自身是否已經(jīng)保存有與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板;若判斷為否,則保存生成的請(qǐng)求模板;若判斷為是,則根據(jù)生成的請(qǐng)求模板更新已經(jīng)保存的請(qǐng)求模板。
[0105]較佳地,所述測試用例中還包括用于回復(fù)被測試端的數(shù)據(jù);
[0106]信令生成模塊200,還用于讀取所述測試用例后,根據(jù)所述用于回復(fù)被測試端的數(shù)據(jù)生成回復(fù)信令;
[0107]信令生成模塊200,還用于在需要回復(fù)所述被測試端時(shí),將所述回復(fù)信令發(fā)送給所述被測試端。
[0108]較佳地,模板生成模塊100,具體用于通過自定義的Socket端口根據(jù)預(yù)設(shè)的過濾規(guī)則抓取請(qǐng)求信令,保存抓取的請(qǐng)求信令。
[0109]可見,本發(fā)明至少包括以下的優(yōu)點(diǎn):
[0110](I)通過根據(jù)測試用例,調(diào)用模板而生成信令,降低了用例的復(fù)雜度,解決了用例編寫的工作量大的問題;
[0111](2)通過模板自動(dòng)生成和更新,降低了制作模板的工作量;
[0112](3)通過測試用例的業(yè)務(wù)類型選擇對(duì)應(yīng)的模板,能夠保證用例和模板準(zhǔn)確配合得到信令;
[0113](4)通過測試用例中包括預(yù)期的應(yīng)答信令中數(shù)據(jù),以及調(diào)取相應(yīng)的應(yīng)答模板生成預(yù)期的應(yīng)答信令,并將生成預(yù)期的應(yīng)答信令和實(shí)際接收的應(yīng)答信令進(jìn)行比較,快速地獲得測試結(jié)果;
[0114](5)通過生成和保存與所述業(yè)務(wù)類型相對(duì)應(yīng)的用例,方便測試人員編寫用于特定業(yè)務(wù)的測試的測試用例。
[0115](6)通過自定義的Socket端口根據(jù)預(yù)設(shè)的過濾規(guī)則抓取請(qǐng)求信令,能夠?qū)崿F(xiàn)信令自動(dòng)篩選,節(jié)約資源和時(shí)間,加快檢索速度。
[0116]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種網(wǎng)絡(luò)測試方法,其特征在于,所述方法包括: 錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板; 讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端; 接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述測試用例中還包括預(yù)期的應(yīng)答信令中數(shù)據(jù); 所述讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例前還包括: 錄制接收的被測試端發(fā)送的應(yīng)答信令,解析出所述應(yīng)答信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,保存所述應(yīng)答模板; 所述讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例后還包括: 調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,使用所述預(yù)期的應(yīng)答信令中數(shù)據(jù)為所述應(yīng)答模板中變量賦值,生成預(yù)期的應(yīng)答信令并保存。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 所述根據(jù)接收的所述應(yīng)答信令進(jìn)行測試具體包括: 將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,如果匹配,則測試結(jié)果為成功,否則,測試結(jié)果為失敗。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型具體包括: 根據(jù)所述請(qǐng)求信令中頭部和主體間的分割標(biāo)識(shí),將所述請(qǐng)求信令分割為頭部和主體; 根據(jù)所述頭部中每一行的首字母確定出可變數(shù)據(jù)和業(yè)務(wù)類型; 根據(jù)可擴(kuò)展標(biāo)記語言XML格式解析所述主體,確定出可變數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述保存所述請(qǐng)求模板具體包括: 判斷自身是否已經(jīng)保存有與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板; 若判斷為否,則保存生成的請(qǐng)求模板;若判斷為是,則根據(jù)生成的請(qǐng)求模板更新已經(jīng)保存的請(qǐng)求模板。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述測試用例中還包括用于回復(fù)被測試端的數(shù)據(jù); 所述方法還包括: 讀取所述測試用例后,根據(jù)所述用于回復(fù)被測試端的數(shù)據(jù)生成回復(fù)信令; 所述接收所述被測試端返回的應(yīng)答信令后還包括: 在需要回復(fù)所述被測試端時(shí),將所述回復(fù)信令發(fā)送給所述被測試端。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述錄制發(fā)送給被測試端的請(qǐng)求信令具體包括: 通過自定義的套接字Socket端口根據(jù)預(yù)設(shè)的過濾規(guī)則抓取請(qǐng)求信令,保存抓取的請(qǐng)求信令。
8.—種網(wǎng)絡(luò)測試裝置,其特征在于,所述裝置包括:模板生成模塊、信令生成模塊和信令接收模塊; 所述模板生成模塊,用于錄制發(fā)送給被測試端的請(qǐng)求信令,解析出所述請(qǐng)求信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,保存所述請(qǐng)求模板; 所述信令生成模塊,用于讀取包含請(qǐng)求信令中數(shù)據(jù)的測試用例,調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的請(qǐng)求模板,使用所述請(qǐng)求信令中數(shù)據(jù)為所述請(qǐng)求模板中變量賦值,生成請(qǐng)求信令,并將所述請(qǐng)求信令發(fā)送給被測試端; 所述信令接收模塊,用于接收所述被測試端返回的應(yīng)答信令,根據(jù)接收的所述應(yīng)答信令進(jìn)行測試。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于, 所述測試用例中還包括預(yù)期的應(yīng)答信令中數(shù)據(jù); 所述模板生成模塊,還用于錄制接收的被測試端發(fā)送的應(yīng)答信令,解析出所述應(yīng)答信令中的可變數(shù)據(jù)和業(yè)務(wù)類型,將所述可變數(shù)據(jù)替換為對(duì)應(yīng)變量,生成與所述業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,保存所述應(yīng)答模板; 所述信令生成模塊,還用于調(diào)取與所述測試用例的業(yè)務(wù)類型相對(duì)應(yīng)的應(yīng)答模板,使用所述預(yù)期的應(yīng)答信令中數(shù)據(jù)為所述應(yīng)答模板中變量賦值,生成預(yù)期的應(yīng)答信令并保存。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述信令接收模塊,具體用于將接收的所述應(yīng)答信令與保存的預(yù)期的應(yīng)答信令進(jìn)行比較,如果匹配,則測試結(jié)果為成功,否則,測試結(jié)果為失敗。
【文檔編號(hào)】H04L12/26GK104253718SQ201310271020
【公開日】2014年12月31日 申請(qǐng)日期:2013年6月29日 優(yōu)先權(quán)日:2013年6月29日
【發(fā)明者】王樂 申請(qǐng)人:北京新媒傳信科技有限公司