專利名稱:一種協(xié)議自動(dòng)測(cè)試方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及協(xié)議棧的開發(fā)過程中的自動(dòng)測(cè)試:汰術(shù),尤其涉及一種嵌入式協(xié)議自動(dòng)測(cè)試方法及其系統(tǒng)。
背景技術(shù):
在協(xié)議棧開發(fā)Debug或是測(cè)試分析執(zhí)行過程中,需要在通信雙方驗(yàn)證協(xié)議實(shí)現(xiàn)的正確性,如圖1所示。通常的情況可在通信雙方安裝一些常用開源工具(如Ethereal, Wireshark, Sniffer)來輔助分析協(xié)議棧的過程,幫助開發(fā)人員debug信息。而在測(cè)試的過程中,也可以借助這些開源工具,或是利用現(xiàn)有成熟測(cè)試框架,如TTCN等來實(shí)現(xiàn),但是這些方法的使用,都是只考慮到了某一端(一般是服務(wù)器端)的自動(dòng)化測(cè)試問題,能夠提供無需人為干預(yù)的測(cè)試步驟,但是通常在另一端,往往需要用人工來按照測(cè)試步驟交互進(jìn)行操作,其效率雖較全手工測(cè)試高出不少,但仍然無法有效的把測(cè)試人員或是開發(fā)人員從重復(fù)勞動(dòng)中解放出來,使其只需要關(guān)心測(cè)試用例的設(shè)計(jì)或是開發(fā)代碼上,而不是執(zhí)行這個(gè)復(fù)雜的過程。
另外,現(xiàn)有技術(shù)中一種協(xié)議測(cè)試系統(tǒng)和協(xié)議測(cè)試方法如下業(yè)務(wù)量生成設(shè)備將測(cè)試業(yè)務(wù)量數(shù)據(jù)發(fā)送到測(cè)試服務(wù)器,中間經(jīng)過了由通信網(wǎng)絡(luò)模擬器設(shè)備構(gòu)造的一個(gè)偽通信網(wǎng)絡(luò)中對(duì)其進(jìn)行處理,以便再現(xiàn)TCP/IP協(xié)議的問題,該偽通信網(wǎng)絡(luò)的設(shè)置和控制信息是由外接的測(cè)試控制設(shè)備來完成自動(dòng)執(zhí)行的。然而雖然該協(xié)議測(cè)試方法能夠?qū)崿F(xiàn)自動(dòng)化,但其主要解決的問題是在不了解
不能幫助程序員或測(cè)試人員定位出協(xié)議中具體是哪里出現(xiàn)了什么問題,且需要額外安裝一通信網(wǎng)絡(luò)模擬器設(shè)備,僅適于在成形的產(chǎn)品階段進(jìn)行自動(dòng)測(cè)試,而并不適合開發(fā)及測(cè)試階段的應(yīng)用范圍。
發(fā)明內(nèi)容
本發(fā)明提供了 一種協(xié)議自動(dòng)測(cè)試方法及其系統(tǒng),克服了現(xiàn)有技術(shù)不能自動(dòng)化測(cè)試的不足,且無需安裝額外的設(shè)備進(jìn)行測(cè)試。
為了解決上述問題,本發(fā)明提供了一種協(xié)議自動(dòng)測(cè)試系統(tǒng),包括服務(wù)器
端和至少一個(gè)用戶終端;
所述服務(wù)器端和任意一個(gè)用戶終端之間包括連接服務(wù)器端第一網(wǎng)絡(luò)才妄口模塊和用戶端第二網(wǎng)絡(luò)接口模塊的控制通道,和連接服務(wù)器端第一協(xié)議棧模塊和用戶端第二協(xié)議棧模塊的測(cè)試數(shù)據(jù)通道;
所述服務(wù)器端還包括
測(cè)試用例存儲(chǔ)單元,用于保存測(cè)試用例;
第一配置才莫塊,用于預(yù)先配置測(cè)試參數(shù)和服務(wù)器端通道參數(shù);
測(cè)試調(diào)度4莫塊,用于控制所述第一網(wǎng)絡(luò)接口模塊通過所述控制通道發(fā)送
起始信號(hào)給所述用戶終端;當(dāng)所述第一網(wǎng)M口才莫塊收到所述用戶終端反々赍的確認(rèn)信號(hào)后,根據(jù)所述測(cè)試參數(shù),依次調(diào)用相應(yīng)的測(cè)試用例發(fā)送給所述第一協(xié)議棧;f莫塊,并控制所述第一協(xié)議棧才莫塊通過所述測(cè)試數(shù)據(jù)通道與所述用戶終端之間測(cè)試用例的執(zhí)行;
所述用戶終端還包括第二配置模塊,用于預(yù)先配置與服務(wù)器端相同的通道參數(shù);
調(diào)度模塊,用于控制所迷第二網(wǎng)絡(luò)接口模塊接收所述起始信號(hào),并控制所述第二網(wǎng)絡(luò)接口模塊通過所述控制通道反饋確認(rèn)信號(hào)給所述服務(wù)器端。
進(jìn)一步地,所述測(cè)試用例存儲(chǔ)單元包括
第一測(cè)試用例存儲(chǔ)單元,用于存儲(chǔ)分別對(duì)應(yīng)于待測(cè)試協(xié)^i義的不同測(cè)試步驟的第一測(cè)試用例;
第二測(cè)試用例存儲(chǔ)單元、用于存儲(chǔ)分別對(duì)應(yīng)于所述不同測(cè)試步驟的正確執(zhí)行結(jié)杲的第二測(cè)試用例;
所述測(cè)試調(diào)度才莫塊所調(diào)用的為所述第 一測(cè)試用例存儲(chǔ)單元中的第 一測(cè)試用例。進(jìn)一步地,所述服務(wù)器端還包括比較分析^^莫塊;
所述第 一協(xié)議棧才莫塊將每次的執(zhí)行結(jié)果發(fā)送給所述比較分析;溪塊;
所述比較分析沖莫塊通過比較該執(zhí)行結(jié)果與所述第二測(cè)試用例存儲(chǔ)單元中對(duì)應(yīng)的正確執(zhí)行結(jié)果,生成一測(cè)試報(bào)告,包括判斷協(xié)議中是否存在錯(cuò)誤;如果存在錯(cuò)誤,則進(jìn)一步判斷出該錯(cuò)誤的出處,以及具體的錯(cuò)誤內(nèi)容。
進(jìn)一步地,所迷^^務(wù)器端還包括時(shí)序解析才莫塊;
所述第一協(xié)議棧模塊將每次的執(zhí)行結(jié)果發(fā)送給所述時(shí)序解析才莫塊;
所述時(shí)序解析^^莫塊通過比較該執(zhí)行結(jié)果與所述第二測(cè)試用例存儲(chǔ)單元中對(duì)應(yīng)的正確執(zhí)行結(jié)果,分析所述第 一協(xié)議棧才莫塊與所述第二協(xié)議棧才莫塊在執(zhí)行過程中的時(shí)序,并生成時(shí)序圖。
進(jìn)一步地,所述服務(wù)器端還包括
測(cè)試結(jié)果顯示單元,用于顯示所述測(cè)試令艮告;
協(xié)議時(shí)序顯示單元,用于顯示所述時(shí)序圖。
進(jìn)一步地,所述第一、第二配置;f莫塊配置的測(cè)試參數(shù)包括
測(cè)試用例種類和測(cè)試方式;
所述測(cè)試用例種類包括 一致性、交互性、壓力或其他測(cè)試;所述測(cè)試方式包括單用例執(zhí)行、全部用例執(zhí)行或任意組合執(zhí)行。
本發(fā)明還提供了一種協(xié)議自動(dòng)測(cè)試方法,用于包括服務(wù)器端和至少一個(gè)用戶終端的系統(tǒng)中,包括以下步驟
所述服務(wù)器端存儲(chǔ)測(cè)試用例,并配置測(cè)試^t;
所述服務(wù)器端與所述用戶終端配置相同的通道參數(shù);所述通道參數(shù)包括所述服務(wù)器端與所述用戶終端間的控制通道的通道參數(shù),及所述服務(wù)器端與所述用戶終端間的測(cè)試數(shù)據(jù)通道的通道參數(shù);
所述服務(wù)器端在所述控制通道上發(fā)iH^始命令給用戶終端;所述用戶終端收到所述起始命令后在所述控制通道上反饋確認(rèn)信號(hào)給服
務(wù)器端;
所迷服務(wù)器端接收所述確認(rèn)信號(hào)后,根據(jù)所述測(cè)試參數(shù)依次調(diào)用所述測(cè)試用例,并與用戶終端通過所述測(cè)試數(shù)據(jù)通道共同執(zhí)行所調(diào)用的測(cè)試用例。
進(jìn)一步地,所述測(cè)試用例包括
第一測(cè)試用例,分別對(duì)應(yīng)于待測(cè)試協(xié)議的不同測(cè)試步驟;第二測(cè)試用例,分別對(duì)應(yīng)于所述不同測(cè)試步驟的正確執(zhí)行結(jié)果;所述服務(wù)器端調(diào)用的測(cè)試用例為所述第 一測(cè)試用例。進(jìn)一步地,所述的方法還包括
所述服務(wù)器端比較所述第 一測(cè)試用例的執(zhí)行結(jié)果與所述第二測(cè)試用例中對(duì)應(yīng)的正確執(zhí)行結(jié)果;
根據(jù)比較生成一測(cè)試報(bào)告,所述報(bào)告包括判斷協(xié)議中是否存在錯(cuò)誤;如果存在錯(cuò)誤,則進(jìn)一步生成該錯(cuò)誤的出處,以及具體的錯(cuò)誤內(nèi)容。
進(jìn)一步地,所述的方法還包括
所述服務(wù)器端比較所述第 一測(cè)試用例測(cè)試結(jié)果與所述第二測(cè)試用例中對(duì)應(yīng)的正確執(zhí)行結(jié)果;
根據(jù)比較分析執(zhí)行過程中的時(shí)序,并生成時(shí)序圖。
進(jìn)一步地,所述的方法還包括
顯示所迷測(cè)試報(bào)告及所述時(shí)序圖。
進(jìn)一步地,所述測(cè)試參數(shù)包括
測(cè)試用例種類和測(cè)試方式;
所述測(cè)試用例種類包^": 一致性、交互性、壓力或其他測(cè)試;
所述測(cè)試方式包括單用例執(zhí)行、全部用例執(zhí)行或任意組合執(zhí)行。
本發(fā)明的技術(shù)方案提供了一種協(xié)議自動(dòng)測(cè)試方法及其系統(tǒng),通過用戶預(yù)先針對(duì)系統(tǒng)中待測(cè)協(xié)i義-沒計(jì)好測(cè)試用例,可自動(dòng)完成對(duì)測(cè)試執(zhí)行過程中產(chǎn)生的數(shù)據(jù)進(jìn)行收集、分析、整理;用戶無需手動(dòng)操作,從而簡(jiǎn)化了測(cè)試過程、難度并且能夠降低測(cè)試時(shí)間,大大提高了開發(fā)和測(cè)試的效率,降低了成本。本發(fā)明的一個(gè)優(yōu)化方案將測(cè)試用例分成測(cè)試步驟和對(duì)應(yīng)該測(cè)試步驟的測(cè)試結(jié)果;以方便在測(cè)試中準(zhǔn)確定位錯(cuò)誤;z卞、發(fā)明的另一個(gè)優(yōu)化方案在服務(wù)器端由用戶針對(duì)需要測(cè)試的項(xiàng)目進(jìn)行配置后,即可以根據(jù)用戶的測(cè)試執(zhí)行命令啟動(dòng)系統(tǒng)中服務(wù)器和客戶/服務(wù)器端中協(xié)議的一致性、交互性、壓力等項(xiàng)目的自動(dòng)
測(cè)試;本發(fā)明的又一個(gè)優(yōu)化方案能夠在測(cè)試的過程中通過對(duì)測(cè)試用例中測(cè)試
步驟的測(cè)試結(jié)果、與該測(cè)試用例中對(duì)應(yīng)該測(cè)試步驟的測(cè)試結(jié)果的比對(duì)分析,
現(xiàn)了什么問題;還可以進(jìn)一步用GUI界面的形式動(dòng)態(tài)顯示協(xié)議時(shí)序圖和測(cè)試結(jié)果,可使開發(fā)人員或測(cè)試人員直觀的找出系統(tǒng)中協(xié)議執(zhí)行存在的問題,筒化了分析的步驟和煩瑣的操作,從而實(shí)現(xiàn)對(duì)系統(tǒng)協(xié)議的可視化自動(dòng)測(cè)試。
圖1是通訊雙方的示意圖2是本發(fā)明中可視化協(xié)議自動(dòng)測(cè)試系統(tǒng)的實(shí)施例的框圖3是本發(fā)明中可視化協(xié)議自動(dòng)測(cè)試方法的實(shí)施例的流程圖;
圖4是實(shí)施例中的協(xié)議時(shí)序示意圖5-1是實(shí)施例中服務(wù)器端的狀態(tài)轉(zhuǎn)換示意圖5-2是實(shí)施例中用戶終端的狀態(tài)轉(zhuǎn)換示意圖6是實(shí)施例中服務(wù)器端監(jiān)控分析模塊流程圖。
具體實(shí)施例方式
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行更詳細(xì)的說明。
本發(fā)明所述的協(xié)議自動(dòng)測(cè)試系統(tǒng), 一個(gè)實(shí)施例如圖2所示,包括服務(wù)器端(server) 100和至少一個(gè)用戶終端(client) 200;
其中,所述服務(wù)器端(server) 100包括用于配置測(cè)試參數(shù)和通道參數(shù)的第一配置模塊102、測(cè)試調(diào)度模塊103、測(cè)試用例存儲(chǔ)單元、第一網(wǎng)絡(luò)接口模塊105和第一協(xié)議棧模塊106;所述用戶終端200包括第二網(wǎng)絡(luò)接口模塊201、調(diào)度模塊202、用于配置通道參數(shù)的第二配置模塊203和第二協(xié)議棧模塊205;
所述服務(wù)器端和任意一個(gè)用戶終端之間包括連接服務(wù)器端第一網(wǎng)結(jié)4妄口模塊和用戶端第二網(wǎng)絡(luò)接口模塊的控制通道,和連接服務(wù)器端第 一協(xié)議棧才莫塊和用戶端第二協(xié)議棧模塊的測(cè)試數(shù)據(jù)通道;第一、第二配置才莫塊配置的通道參數(shù)相同;所述通道參數(shù)包括所述第一、第二網(wǎng)洛接口模塊間的控制通道的通道參數(shù),及所述第一、第二協(xié)議棧模塊間的測(cè)試數(shù)據(jù)通道的通道參數(shù)。
可選的,服務(wù)器端還可以進(jìn)一步包括第一用戶交互4莫塊101,測(cè)試時(shí),用戶可以通過第一用戶交互單元101指示所述第一配置才莫塊102對(duì)測(cè)試參數(shù)和/或通道參數(shù)進(jìn)4亍酉己置;
可選的,用戶終端還可以進(jìn)一步包括第二用戶交互模塊204,測(cè)試時(shí),用戶可以通過第二用戶交互單元204指示所述第二配置才莫塊203對(duì)通道參數(shù)進(jìn)行配置;
所述第一、第二用戶交互才莫塊可以zf旦不限于為GUI (圖形用戶界面)。
在實(shí)際應(yīng)用中,也不排除第一、第二配置模塊自動(dòng)進(jìn)行配置的情況,比如讀取一個(gè)預(yù)設(shè)的或默^人的配置文件,然后按照該配置文件進(jìn)行配置等。
可選的,所述第一配置模塊102配置的測(cè)試參數(shù)包括測(cè)試用例種類和測(cè)試方式;該測(cè)試用例種類包括 一致性、交互性、壓力或其他測(cè)試;該測(cè)試方式包括單用例執(zhí)行、全部用例執(zhí)行或任意組合執(zhí)行。所述第一配置才莫塊102可以將所述測(cè)試參數(shù)保存為一配置文件。
可選的,所述第一、第二配置模塊還可以用于配置設(shè)備信息,即本設(shè)備為服務(wù)器端還是用戶終端;這樣同一設(shè)備既可以當(dāng)服務(wù)器端使用,也可以當(dāng)用戶終端使用;當(dāng)然實(shí)際應(yīng)用中也不排除將設(shè)備固定為服務(wù)器端或用戶終端的做法,此時(shí)可以不用配置所述設(shè)備信息。
可選的,所述測(cè)試用例存儲(chǔ)單元可以包括第一測(cè)試用例存儲(chǔ)單元104和第二測(cè)試用例存儲(chǔ)單元109。
其中,所述第一測(cè)試用例存儲(chǔ)單元104、第二測(cè)試用例存儲(chǔ)單元109,分別用于存儲(chǔ)第 一測(cè)試用例和第二測(cè)試用例;
10各所述第 一測(cè)試用例分別對(duì)應(yīng)于待測(cè)試協(xié)議的不同測(cè)試步驟;各所述第二測(cè)試用例分別對(duì)應(yīng)于不同測(cè)試步驟的正確執(zhí)行結(jié)果;可見,第一、第二測(cè)試用例也是——對(duì)應(yīng)的。
當(dāng)一個(gè)第一測(cè)試用例中包含若干個(gè)數(shù)據(jù)包時(shí),與該第一測(cè)試用例對(duì)應(yīng)的第二測(cè)試用例中也將包含若千個(gè)正確執(zhí)行結(jié)果;對(duì)于一個(gè)第一測(cè)試用例而言,
其各數(shù)據(jù)包的正確執(zhí)行結(jié)果應(yīng)該和對(duì)應(yīng)的第二測(cè)試用例中對(duì)應(yīng)的正確執(zhí)行結(jié)果相同;如果不同,則說明執(zhí)行出錯(cuò)。由于數(shù)據(jù)包是按時(shí)序執(zhí)行的,因此按時(shí)序可以找到各數(shù)據(jù)包對(duì)應(yīng)的正確執(zhí)行結(jié)果;當(dāng)然也不排除利用在數(shù)據(jù)包和正確執(zhí)行結(jié)果中加入對(duì)應(yīng)標(biāo)識(shí)來查找各數(shù)據(jù)包對(duì)應(yīng)的正確執(zhí)行結(jié)果。
所述測(cè)試調(diào)度模塊103根據(jù)用戶輸入的命令啟動(dòng)測(cè)試,或自動(dòng)在一時(shí)間啟動(dòng)測(cè)試,控制第一網(wǎng)絡(luò)接口模塊105通過所述控制通道發(fā)送起始信號(hào)給客戶終端200的第二網(wǎng)#口模塊201;第二網(wǎng),口模塊201接收并發(fā)送該起始信號(hào)給調(diào)度模塊202,所述調(diào)度模塊202控制第二網(wǎng)絡(luò)接口模塊201通過所述控制通道反饋確認(rèn)信號(hào)給所述第 一 網(wǎng)M 口模塊105;
所述測(cè)試調(diào)度模塊103當(dāng)所述第一網(wǎng)落接口模塊收到用戶終端反饋的確認(rèn)信號(hào)后,根據(jù)所述第一配置才莫塊102配置的測(cè)試參數(shù),依次調(diào)用第一測(cè)試用例存儲(chǔ)單元104中相應(yīng)的第一測(cè)試用例給第一協(xié)議棧才莫塊106,控制所迷第一協(xié)議棧才莫塊106與第二協(xié)議棧才莫塊205之間通過所述測(cè)試數(shù)據(jù)通道對(duì)所述第一測(cè)試用例的執(zhí)行。
所述第一、第二配置;f莫塊對(duì)控制通道配置的通道參數(shù)相同,對(duì)測(cè)試數(shù)據(jù)通道配置的通道;M:也相同。
在一種實(shí)施方式中,第一、第二配置才莫塊可以在測(cè)試前就完成全部配置,在其它實(shí)施方式中,第一、第二配置模塊也可以在被觸發(fā)時(shí)進(jìn)行配置,比如服務(wù)器端可以是在收到所述確認(rèn)信號(hào)后觸發(fā)第一配置才莫塊102配置測(cè)試參數(shù)和測(cè)試數(shù)據(jù)通道的通道參數(shù);用戶終端可以是在收到所述起始信號(hào)后觸發(fā)第二配置才莫塊203配置測(cè)試數(shù)據(jù)通道的通道;f^:(此時(shí),第二配置才莫塊203配置完畢后返回確認(rèn)信號(hào)給調(diào)度才莫塊202,調(diào)度模塊202收到第二配置才莫塊203的確認(rèn)信號(hào)后再反饋確認(rèn)信號(hào)到服務(wù)器端)。但在開始測(cè)試時(shí),第一、第二配置模塊都已配置好控制通道的通道參數(shù)。
可選的,服務(wù)器端還可以進(jìn)一步包括監(jiān)控分析才莫塊;該監(jiān)控分析才莫塊包括比較分析模塊107和時(shí)序解析模塊108,或其中任一。
可選的,服務(wù)器端還可以進(jìn)一步相應(yīng)包括測(cè)試結(jié)果顯示單元110和協(xié)議時(shí)序顯示單元lll,或其中任一。
所述第一協(xié)議棧模塊106還用于將每次的執(zhí)行結(jié)果發(fā)送給比較分析;漠塊107和/或時(shí)序解析模塊108,比較分析;溪塊107通過比較該執(zhí)行結(jié)果與第二測(cè)試用例存儲(chǔ)單元109中對(duì)應(yīng)的內(nèi)容生成一測(cè)試報(bào)告,包括判斷協(xié)議中是否存在錯(cuò)誤,如果存在錯(cuò)誤,則進(jìn)一步判斷出該錯(cuò)誤的出處,以及具體的錯(cuò)誤內(nèi)容;并將該測(cè)試報(bào)告輸出給測(cè)試結(jié)杲顯示單元110以顯示;時(shí)序解析才莫塊108通過比較該執(zhí)行結(jié)果與該第二測(cè)試用例存儲(chǔ)單元109中對(duì)應(yīng)的內(nèi)容,分析該第一協(xié)議棧模塊106與第二協(xié)議棧才莫塊205在執(zhí)行過程中的時(shí)序,并生成時(shí)序圖輸出給協(xié)議時(shí)序顯示單元111以顯示。
所述測(cè)試調(diào)度;f莫塊103調(diào)用該第一測(cè)試用例存儲(chǔ)單元104中的某一測(cè)試步驟給第一協(xié)議模塊106,以實(shí)現(xiàn)其執(zhí)行與第二協(xié)議棧才莫塊205之間的測(cè)試,當(dāng)測(cè)試的第一協(xié)議模塊106或者第二協(xié)議模塊205出現(xiàn)錯(cuò)誤時(shí),比較分析才莫塊107即可通過比較該執(zhí)行結(jié)果與第二測(cè)試用例中對(duì)應(yīng)該某一測(cè)試步驟的正確執(zhí)行結(jié)果判斷出該4t"i吳的出處,以及具體的錯(cuò)誤內(nèi)容。
其中,所述第一網(wǎng)M口模塊105與第二網(wǎng),口模塊之間通過控制通道進(jìn)行連接,該控制通道可以是有線和無線方式。其中有線方式可以是串口、并口、 USB、以太網(wǎng)等;無線方式可以是紅外、WIFI、藍(lán)牙等。
其中,所述第 一協(xié)議模塊與第二協(xié)議模塊之間通過測(cè)試數(shù)據(jù)通道進(jìn)行連接,該測(cè)試數(shù)據(jù)通道可以是有線和無線方式。其中有線方式可以是串口、并口、 USB、以太網(wǎng)等;無線方式可以是紅外、WIFI、藍(lán)牙等。
其中,所述的協(xié)議,包括TCP/IP (TCP、 UDP、 IP、 ICMP、 ARP、 SIP、HTTP、 TFTP、 WAP等等)、802.11 (WIFI) 、 802.3等。
請(qǐng)參見圖3,是本發(fā)明可視化協(xié)議自動(dòng)測(cè)試方法的實(shí)施例的流程圖,其步驟包括
步驟800,用戶通過配置選項(xiàng)輸入配置信息,該配置信息可以包括酉己置i殳K言息-,i口 server或client;
配置測(cè)試用例種類信息,如一致性測(cè)試,交互性測(cè)試,壓力測(cè)試,其他測(cè)試等選項(xiàng),同時(shí)配置每一個(gè)種類對(duì)應(yīng)的測(cè)試用例的目錄路徑,可以任意組合選擇;
配置測(cè)試方式信息,如執(zhí)行單個(gè)測(cè)試用例,或執(zhí)行全部測(cè)試用例,或執(zhí)行4壬意組合用例;
配置通道參數(shù),如串口通訊中的波特率、端口號(hào)等信息,建立設(shè)備間的控制通道;
步驟802,兩個(gè)設(shè)備的配置4莫塊根據(jù)用戶輸入的配置信息形成配置文件,該配置文件可以是TXT格式或其他類型格式,如氣doc類型的文件,或是XML文檔等都可以。例如配置文件l:設(shè)備server;測(cè)試用例種類 一致性測(cè)試、f:\ConformanceTestSuite,交互性測(cè)試、f:\IOPTtestSuite,…;測(cè)試方式全部cases執(zhí)行;通訊模式選擇:串口、 9600、 COM1,...
步驟804,判斷用戶是否要求修改配置信息,如果修改則進(jìn)入步驟800,否則,進(jìn)入步驟806;
步驟806,判斷是否啟動(dòng)協(xié)議的自動(dòng)測(cè)試,如果不啟動(dòng),則繼續(xù)進(jìn)入步驟804判斷是否需要修改配置信息,否則進(jìn)入步驟808;
步驟808, J艮務(wù)器端和用戶終端的調(diào)度才莫塊(即上文裝置中的測(cè)試調(diào)度模塊103和調(diào)度模塊202)讀取配置文件;當(dāng)用戶點(diǎn)擊"開始測(cè)試"的按鈕后,服務(wù)器端發(fā)送起始命令到用戶終端;用戶終端返回確認(rèn)命令;服務(wù)器端和用戶終端之間的控制通道建立;
然后服務(wù)器端的調(diào)度模塊讀取配置文件中的"設(shè)備信息"、"測(cè)試用例種類信息"和"測(cè)試方式信息",以形成查詢條件;
步驟810,服務(wù)器端的調(diào)度模塊根據(jù)配置文件提取所有要用到的測(cè)試用例;根據(jù)形成的查詢條件從測(cè)試用例庫(kù)中獲得滿足條件的測(cè)試用例,直到所有要用到的測(cè)試用例被提取完畢。
1步驟812,服務(wù)器端的調(diào)度模塊依次發(fā)送所提取的預(yù)先編寫的測(cè)試用例 給第一協(xié)議棧模塊,每次發(fā)送一個(gè)測(cè)試用例;建立第一與第二協(xié)議棧模塊之 間的協(xié)議測(cè)試的執(zhí)行;
步驟814,服務(wù)器端的調(diào)度模塊判斷當(dāng)前測(cè)試用例的執(zhí)行是否結(jié)束,如 果沒有則同時(shí)進(jìn)行步驟818直到執(zhí)行結(jié)束;否則,進(jìn)入步驟816。
步驟818,比較分析模塊比較實(shí)際執(zhí)行結(jié)果和正確執(zhí)行結(jié)果,該步驟為 優(yōu)選步驟;時(shí)序解析才莫塊依次解析第一協(xié)議棧才莫塊執(zhí)行測(cè)試過程中的時(shí)序, 該步驟為優(yōu)選步驟;還可以進(jìn)一步地將該時(shí)序轉(zhuǎn)換為時(shí)序圖進(jìn)行輸出顯示, 參見圖4;
步驟816,判斷所述所有要用到的測(cè)試用例是否均執(zhí)行結(jié)束,如果沒有 繼續(xù)進(jìn)入步驟812執(zhí)行下一個(gè)測(cè)試用例,否則進(jìn)入步驟820。
步驟820,輸出顯示協(xié)議的測(cè)試報(bào)告;該步驟為優(yōu)選步驟。該測(cè)試報(bào)告 內(nèi)容包含
PassNumber:代表測(cè)試結(jié)果與預(yù)期正確的執(zhí)行結(jié)杲比較后一致,表示被 測(cè)內(nèi)容正確;
Fail Number:代表測(cè)試結(jié)果與預(yù)期正確的執(zhí)行結(jié)果比較后不一致,表示 4皮測(cè)內(nèi)容不正確;
Error Number:代表測(cè)試執(zhí)行過程中出現(xiàn)異常,中止的個(gè)數(shù);
TestCases Total:收集統(tǒng)計(jì)總計(jì)執(zhí)行了多少條測(cè)試用例。
其中預(yù)先編寫的測(cè)試用例是采用prel語(yǔ)言,也可采用C, C++, JAVA等 語(yǔ)言。
由此可以看出,協(xié)議自動(dòng)測(cè)試過程中用戶通過GUI界面的配置,方便測(cè) 試或開發(fā)人員對(duì)于不同的測(cè)試方案能夠快速提取選用,同時(shí)還對(duì)測(cè)試用例進(jìn) 行分類,加快了測(cè)試人員或開發(fā)人員對(duì)測(cè)試用例的提取,提高了工作效率。
另外,用戶通過配置,完成服務(wù)器(server )和用戶終端(client )設(shè)備 間的通訊方式的^:置,如串口的基本配置(波特率,端口等),通過有線 或無線方式來實(shí)現(xiàn)對(duì)調(diào)度數(shù)據(jù)的傳輸,因此測(cè)試人員無須單獨(dú)編寫程序即可 實(shí)現(xiàn)在不同設(shè)備間數(shù)據(jù)傳輸、分析和收集測(cè)試結(jié)果;同時(shí)在兩種不同類型的
14設(shè)備上安裝同一套這樣的系統(tǒng),簡(jiǎn)化工作步驟,減少成本。
下面結(jié)合實(shí)施例中服務(wù)器與用戶終端執(zhí)行協(xié)議自動(dòng)測(cè)試時(shí)的狀態(tài)轉(zhuǎn)換過 程進(jìn)一步對(duì)本發(fā)明協(xié)議自動(dòng)測(cè)試方法進(jìn)行詳細(xì)說明。
請(qǐng)參見圖5-1,是實(shí)施例的測(cè)試過程中服務(wù)器端狀態(tài)轉(zhuǎn)換示意圖。
狀態(tài)401:開始狀態(tài),此時(shí)測(cè)試調(diào)度模塊處于非活動(dòng)狀態(tài);
當(dāng)測(cè)試調(diào)度模塊收到用戶啟動(dòng)測(cè)試的命令后,進(jìn)入初始化狀態(tài)402。
狀態(tài)402:測(cè)試調(diào)度才莫塊首先讀取由GUI生成的配置信息;根據(jù)配置信 息讀入測(cè)試用例和測(cè)試環(huán)境^^:配置;初始化并打開控制通道(如串口 ); 發(fā)送用戶終端(client ) Paging命令至控制通道,查詢可用Client,并設(shè)置計(jì) 時(shí)器;若此時(shí)計(jì)時(shí)器沒有超時(shí),則開始等待Client的回應(yīng),若計(jì)時(shí)器超時(shí), 則結(jié)束該模塊的執(zhí)行,并返回^i吳,進(jìn)入結(jié)束狀態(tài)405;如果收到Client的錯(cuò) 誤應(yīng)答(即圖中的非正常響應(yīng)),則重新發(fā)送命令至控制通道;當(dāng)調(diào)度模塊 收到Client返回的回應(yīng)(即圖中的正常響應(yīng))后,進(jìn)入執(zhí)行狀態(tài)403。
狀態(tài)403:當(dāng)測(cè)試調(diào)度才莫塊收到正確的Client回應(yīng)之后,進(jìn)入執(zhí)行狀態(tài)。
進(jìn)入該狀態(tài)后,首先初始化測(cè)試數(shù)據(jù)通道(如以太網(wǎng)卡);Server端 執(zhí)行已載入的測(cè)試用例,此時(shí)測(cè)試用例應(yīng)處于阻塞狀態(tài);發(fā)送啟動(dòng)測(cè)試用例 命令至控制通道,并啟動(dòng)計(jì)時(shí)器;若計(jì)時(shí)器沒有超時(shí),則等待Client的應(yīng)答; 若超時(shí)則結(jié)束該模塊的執(zhí)行,并返回錯(cuò)誤,進(jìn)入結(jié)束狀態(tài)405;若收到Client 的錯(cuò)誤應(yīng)答(即圖中的非正常響應(yīng)),則重新發(fā)送命令至控制通道;若調(diào)度 模塊收到Client的正確應(yīng)答(即圖中的正常響應(yīng)),那么此時(shí)測(cè)試數(shù)據(jù)已經(jīng) 開始在測(cè)試數(shù)據(jù)通道上傳輸,進(jìn)入監(jiān)控分析狀態(tài)404。
狀態(tài)404:該狀態(tài)下監(jiān)控分析模塊主要監(jiān)控分析測(cè)試用例的執(zhí)行是否正 確,并通過判斷時(shí)間和執(zhí)行結(jié)果等控制Server與Client的同步執(zhí)行。
進(jìn)入該狀態(tài)后,啟動(dòng)計(jì)時(shí)器,判斷是否超時(shí),若超時(shí)則中止測(cè)試用例的 執(zhí)行,并返回錯(cuò)誤,進(jìn)入結(jié)束狀態(tài)405;若沒有超時(shí)則等待由Client發(fā)回的執(zhí) 行結(jié)束命令和測(cè)試報(bào)告;若收到由Client發(fā)送的執(zhí)行結(jié)束命令和測(cè)試報(bào)告, 則結(jié)束Server端測(cè)試用例的執(zhí)行;進(jìn)入結(jié)束狀態(tài)405。
15狀態(tài)405:結(jié)束狀態(tài),在該狀態(tài)中,測(cè)試調(diào)度^^莫塊將拆除之前建立的控 制通道與測(cè)試數(shù)據(jù)通道,到達(dá)狀態(tài)406。
拆除測(cè)試數(shù)據(jù)通道(如以太網(wǎng)卡);拆除控制通道(如串口);清 除測(cè)試用例執(zhí)行的環(huán)境,釋放所用資源;監(jiān)控分析模塊將Server端的測(cè)試報(bào) 告與Client端的測(cè)試報(bào)告發(fā)送至輸出單元提交給GUI進(jìn)行顯示。
請(qǐng)參見圖5-2是實(shí)施例的測(cè)試過程中用戶終端狀態(tài)轉(zhuǎn)換示意圖,
狀態(tài)501:用戶終端調(diào)度才莫塊開始狀態(tài),此時(shí)調(diào)度才莫塊處于非活動(dòng)狀態(tài)。
當(dāng)用戶終端調(diào)度模塊收到用戶啟動(dòng)命令時(shí),進(jìn)入初始化狀態(tài)502。
狀態(tài)502:初始化控制通道,打開該通道以便接受來自Server端的命令; 啟動(dòng)計(jì)時(shí)器,并判斷是否超時(shí),若超時(shí)則退出該模塊執(zhí)行,進(jìn)入結(jié)束狀態(tài)505; 若沒有超時(shí),則等待服務(wù)器發(fā)送用戶終端Paging命令;若收到用戶終端 (client ) Paging命令(相當(dāng)于上文中服務(wù)器端的起始命令),則發(fā)送響應(yīng); 啟動(dòng)計(jì)時(shí)器,并判斷是否超時(shí),若超時(shí)則退出該模塊執(zhí)行,進(jìn)入結(jié)束狀態(tài)505; 若沒有超時(shí),則等待服務(wù)器發(fā)送啟動(dòng)測(cè)試用例(Test Case)命令;若收到啟 動(dòng)測(cè)試用例命令,則進(jìn)入執(zhí)行狀態(tài)503。
狀態(tài)503:調(diào)度才莫塊收到啟動(dòng)測(cè)試用例命令,開始執(zhí)行測(cè)試用例。
解析收到的啟動(dòng)測(cè)試用例命令;根據(jù)解析結(jié)果,判斷需要執(zhí)行哪些測(cè)試 用例以及如何執(zhí)行,并將測(cè)試用例加載;發(fā)送執(zhí)行響應(yīng),開始執(zhí)行測(cè)試用例; 啟動(dòng)計(jì)時(shí)器等待Server返回確認(rèn)命令,若超時(shí)則退出該模塊執(zhí)行,進(jìn)入結(jié)束 狀態(tài)505;若Server發(fā)送響應(yīng),返回確認(rèn)命令,控制模塊收到確認(rèn)命令則進(jìn) 入監(jiān)控狀態(tài)504,監(jiān)控測(cè)試用例執(zhí)行。
狀態(tài)504:監(jiān)控狀態(tài),判斷測(cè)試用例是否執(zhí)行結(jié)束。
啟動(dòng)計(jì)時(shí)器,判斷是否超時(shí),若沒有超時(shí)則判斷用例是否執(zhí)行結(jié)束,若 超時(shí)則退出該模塊執(zhí)行,進(jìn)入結(jié)束狀態(tài)505;若測(cè)試用例執(zhí)行結(jié)束,則發(fā)送 結(jié)束用例命令至控制通道,并將Client端測(cè)試報(bào)告回送至Server;進(jìn)入結(jié)束 狀態(tài)505。
狀態(tài)505,調(diào)度模塊將拆除鏈接,清理測(cè)試環(huán)境;拆除測(cè)試數(shù)據(jù)通道(如 以太網(wǎng)卡);拆除控制通道(如串口);清除測(cè)試環(huán)境,釋》丈所用資源。請(qǐng)參見圖6,是實(shí)施例中服務(wù)器端監(jiān)控分析^^莫塊工作流程圖。
步驟701,當(dāng)接收到開始測(cè)試的命令后,讀取配置文件"設(shè)備信息"是 server后,初始化監(jiān)控分析才莫塊的數(shù)據(jù)。
步驟702, 703,根據(jù)配置文件里的"通道參數(shù)",選擇打開相關(guān)控制通 道進(jìn)行監(jiān)控操作,即將通道上的數(shù)據(jù)讀取至監(jiān)控分析模塊進(jìn)行處理,同時(shí)并 不影響測(cè)試調(diào)度才莫塊和測(cè)試用例的正常操作。
步驟704, 705,在沒有接收到退出命令并且沒有接收到超時(shí)標(biāo)志的時(shí)候, 將會(huì)執(zhí)行步驟706,判斷是否有測(cè)試數(shù)據(jù)經(jīng)過,如果有則依次執(zhí)行步驟707, 708, 709;否則返回步驟704;步驟707,這里的過程將根據(jù)測(cè)試數(shù)據(jù)和測(cè)試 用例的內(nèi)容,把測(cè)試數(shù)據(jù)發(fā)送給Server端測(cè)試用例,用于測(cè)試用例外部數(shù)據(jù) 的記錄和判斷;步驟708,記錄協(xié)議時(shí)序到文檔中,并把對(duì)應(yīng)的協(xié)議時(shí)序提 供給輸出界面用GUI的方式顯示。
當(dāng)收到退出命令或超時(shí)標(biāo)志的時(shí)候,將會(huì)執(zhí)行步驟710,根據(jù)數(shù)據(jù)和測(cè) 試用例提供的信息中是否有測(cè)試l良告的內(nèi)容來判斷,若沒有測(cè)試才艮告的內(nèi)容 過來的時(shí)候,執(zhí)行步驟712關(guān)閉測(cè)試數(shù)據(jù)通道監(jiān)控后再執(zhí)行步驟713關(guān)閉控 制通道監(jiān)控,直到整個(gè)流程結(jié)束。若還有測(cè)試報(bào)告過來則執(zhí)行步驟711,保 存測(cè)試報(bào)告,直到所有測(cè)試4艮告收集完畢,i^到步驟712, 713,直到整個(gè) 流程結(jié)束。
同時(shí)收集到的測(cè)試報(bào)告的數(shù)據(jù)內(nèi)容存入文件中,提供給輸出界面的GUI 顯示報(bào)告內(nèi)容。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的 情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形, 但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種協(xié)議自動(dòng)測(cè)試系統(tǒng),包括服務(wù)器端和至少一個(gè)用戶終端;其特征在于,所述服務(wù)器端和任意一個(gè)用戶終端之間包括連接服務(wù)器端第一網(wǎng)絡(luò)接口模塊和用戶端第二網(wǎng)絡(luò)接口模塊的控制通道,和連接服務(wù)器端第一協(xié)議棧模塊和用戶端第二協(xié)議棧模塊的測(cè)試數(shù)據(jù)通道;所述服務(wù)器端還包括測(cè)試用例存儲(chǔ)單元,用于保存測(cè)試用例;第一配置模塊,用于預(yù)先配置測(cè)試參數(shù)和服務(wù)器端通道參數(shù);測(cè)試調(diào)度模塊,用于控制所述第一網(wǎng)絡(luò)接口模塊通過所述控制通道發(fā)送起始信號(hào)給所述用戶終端;當(dāng)所述第一網(wǎng)絡(luò)接口模塊收到所述用戶終端反饋的確認(rèn)信號(hào)后,根據(jù)所述測(cè)試參數(shù),依次調(diào)用相應(yīng)的測(cè)試用例發(fā)送給所述第一協(xié)議棧模塊,并控制所述第一協(xié)議棧模塊通過所述測(cè)試數(shù)據(jù)通道與所述用戶終端之間測(cè)試用例的執(zhí)行;所述用戶終端還包括第二配置模塊,用于預(yù)先配置與服務(wù)器端相同的通道參數(shù);調(diào)度模塊,用于控制所述第二網(wǎng)絡(luò)接口模塊接收所述起始信號(hào),并控制所述第二網(wǎng)絡(luò)接口模塊通過所述控制通道反饋確認(rèn)信號(hào)給所述服務(wù)器端。
2、 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述測(cè)試用例存儲(chǔ)單元包括第一測(cè)試用例存儲(chǔ)單元,用于存儲(chǔ)分別對(duì)應(yīng)于待測(cè)試協(xié)議的不同測(cè)試步 驟的第一測(cè)試用例;第二測(cè)試用例存儲(chǔ)單元、用于存儲(chǔ)分別對(duì)應(yīng)于所述不同測(cè)試步驟的正確 執(zhí)行結(jié)果的第二測(cè)試用例;所述測(cè)試調(diào)度才莫塊所調(diào)用的為所述第 一測(cè)試用例存儲(chǔ)單元中的第 一測(cè)試 用例。
3、 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述服務(wù)器端還包括 比較分析模塊;所述第 一協(xié)議棧模塊將每次的執(zhí)行結(jié)果發(fā)送給所述比較分析;漠塊;所述比較分析;漠塊通過比較該執(zhí)行結(jié)杲與所述第二測(cè)試用例存儲(chǔ)單元中 對(duì)應(yīng)的正確執(zhí)行結(jié)果,生成一測(cè)試報(bào)告,包括判斷協(xié)議中是否存在錯(cuò)誤; 如果存在錯(cuò)誤,則進(jìn)一步判斷出該錯(cuò)誤的出處,以及具體的錯(cuò)誤內(nèi)容。
4、 如權(quán)利要求3所述的系統(tǒng),其特征在于,所述服務(wù)器端還包括 時(shí)序解析4莫塊;所述第一協(xié)議棧模塊將每次的執(zhí)行結(jié)果發(fā)送給所述時(shí)序解析模塊;所述時(shí)序解析;漠塊通過比較該執(zhí)行結(jié)果與所述第二測(cè)試用例存儲(chǔ)單元中 對(duì)應(yīng)的正確執(zhí)行結(jié)果,分析所述第一協(xié)議棧才莫塊與所述第二協(xié)議棧才莫塊在執(zhí) 行過程中的時(shí)序,并生成時(shí)序圖。
5、 如權(quán)利要求4所述的系統(tǒng),其特征在于,所述服務(wù)器端還包括 測(cè)試結(jié)果顯示單元,用于顯示所述測(cè)試^L告; 協(xié)議時(shí)序顯示單元,用于顯示所述時(shí)序圖。
6、 如權(quán)利要求1到5中任一項(xiàng)所述的系統(tǒng),其特征在于,所述第一、第 二配置模塊配置的測(cè)試參數(shù)包括測(cè)試用例種類和測(cè)試方式;所述測(cè)試用例種類包括 一致性、交互性、壓力或其他測(cè)試; 所述測(cè)試方式包括單用例執(zhí)行、全部用例執(zhí)行或任意組合執(zhí)行。
7、 一種協(xié)議自動(dòng)測(cè)試方法,用于包括服務(wù)器端和至少一個(gè)用戶終端的系 統(tǒng)中,其特征在于,包括以下步驟所述服務(wù)器端存儲(chǔ)測(cè)試用例,并配置測(cè)試^t;所述服務(wù)器端與所述用戶終端配置相同的通道參數(shù);所述通道參數(shù)包括 所述服務(wù)器端與所述用戶終端間的控制通道的通道參數(shù),及所述服務(wù)器端與 所述用戶終端間的測(cè)試數(shù)據(jù)通道的通道參數(shù);所述服務(wù)器端在所迷控制通道上發(fā)i^始命令給用戶終端;所述用戶終端收到所述起始命令后在所述控制通道上反饋確認(rèn)信號(hào)給服務(wù)器端;所述服務(wù)器端接收所述確認(rèn)信號(hào)后,根據(jù)所述測(cè)試參數(shù)依次調(diào)用所述測(cè) 試用例,并與用戶終端通過所述測(cè)試數(shù)據(jù)通道共同執(zhí)行所調(diào)用的測(cè)試用例。
8、 如權(quán)利要求7所述的方法,其特征在于,所述測(cè)試用例包括 第一測(cè)試用例,分別對(duì)應(yīng)于待測(cè)試協(xié)議的不同測(cè)試步驟; 第二測(cè)試用例,分別對(duì)應(yīng)于所述不同測(cè)試步驟的正確執(zhí)行結(jié)果; 所述l良務(wù)器端調(diào)用的測(cè)試用例為所述第 一測(cè)試用例。
9、 如權(quán)利要求8所述的方法,其特征在于,還包括所述服務(wù)器端比較所述第一測(cè)試用例的執(zhí)行結(jié)果與所述第二測(cè)試用例中 對(duì)應(yīng)的正確執(zhí)行結(jié)果;根據(jù)比較生成一測(cè)試報(bào)告,所述報(bào)告包括判斷協(xié)議中是否存在錯(cuò)誤; 如果存在#^吳,則進(jìn)一步生成該錯(cuò)誤的出處,以及具體的錯(cuò)誤內(nèi)容。
10、 如權(quán)利要求9所述的方法,其特征在于,還包括所述Ji良務(wù)器端比較所述第 一測(cè)試用例測(cè)試結(jié)果與所述第二測(cè)試用例中對(duì) 應(yīng)的正確執(zhí)行結(jié)果;根據(jù)比較分析執(zhí)行過程中的時(shí)序,并生成時(shí)序圖。
11、 如權(quán)利要求IO所述的方法,其特征在于,還包括 顯示所述測(cè)試才艮告及所述時(shí)序圖。
12、 如權(quán)利要求7到11中任一項(xiàng)所迷的方法,其特征在于,所述測(cè)試參 數(shù)包括測(cè)試用例種類和測(cè)試方式;所述測(cè)試用例種類包括 一致性、交互性、壓力或其他測(cè)試; 所述測(cè)試方式包括單用例執(zhí)行、全部用例執(zhí)行或任意組合執(zhí)行。
全文摘要
本發(fā)明公開了一種協(xié)議自動(dòng)測(cè)試方法及其系統(tǒng);方法包括所述服務(wù)器端存儲(chǔ)測(cè)試用例,并配置測(cè)試參數(shù);所述服務(wù)器端與所述用戶終端配置相同的通道參數(shù);所述通道參數(shù)包括所述服務(wù)器端與所述用戶終端間的控制通道的通道參數(shù),及所述服務(wù)器端與所述用戶終端間的測(cè)試數(shù)據(jù)通道的通道參數(shù);所述服務(wù)器端在所述控制通道上發(fā)送起始命令給用戶終端;所述用戶終端收到所述起始命令后在所述控制通道上反饋確認(rèn)信號(hào)給服務(wù)器端;所述服務(wù)器端接收所述確認(rèn)信號(hào)后,根據(jù)所述測(cè)試參數(shù)依次調(diào)用所述測(cè)試用例,并與用戶終端通過所述測(cè)試數(shù)據(jù)通道共同執(zhí)行所調(diào)用的測(cè)試用例。本發(fā)明克服了現(xiàn)有技術(shù)不能自動(dòng)化測(cè)試的不足,且無需安裝額外的設(shè)備進(jìn)行測(cè)試。
文檔編號(hào)H04L12/26GK101478449SQ20091000840
公開日2009年7月8日 申請(qǐng)日期2009年1月22日 優(yōu)先權(quán)日2009年1月22日
發(fā)明者潔 成, 朱勃豪 申請(qǐng)人:凌陽(yáng)科技股份有限公司;北京北陽(yáng)電子技術(shù)有限公司