流式系統(tǒng)的測試方法及裝置制造方法
【專利摘要】本發(fā)明提出一種流式系統(tǒng)的測試方法及裝置。其中所述方法包括以下步驟:采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù);獲取第一接口數(shù)據(jù)的類型;統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍;采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。根據(jù)本發(fā)明實施例的方法,可以實時自動采集數(shù)據(jù),滿足大數(shù)據(jù)量的模塊接口和動態(tài)數(shù)據(jù)測試的需求;自動生成模塊之間接口的校驗規(guī)則,且當數(shù)據(jù)或測試策略發(fā)生變化時可以及時調(diào)整校驗規(guī)則;實現(xiàn)對長期運行的流式系統(tǒng)的接口數(shù)據(jù)的校驗;大大提高測試效率和質(zhì)量,減少人力成本,規(guī)范流式系統(tǒng),并且可以發(fā)現(xiàn)傳統(tǒng)測試方法很多難以發(fā)現(xiàn)的問題。
【專利說明】流式系統(tǒng)的測試方法及裝置
【技術(shù)領域】
[0001]本發(fā)明涉及計算機【技術(shù)領域】,尤其涉及一種流式系統(tǒng)的測試方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)在進行流式系統(tǒng)測試時,首先需要人工根據(jù)流式系統(tǒng)中各個模塊之間的接口定義格式構(gòu)造不同的測試用例,包括指定輸入和預期結(jié)果,然后采用人工或自動化的方式根據(jù)指定輸入將流式系統(tǒng)所產(chǎn)生的結(jié)果與預期設計的標準(預期結(jié)果)進行校驗,以測試各個模塊之間的接口在合法以及非法情況下能否達到預期效果。
[0003]現(xiàn)有技術(shù)存在以下的問題:
[0004](I)無論采用人工或者自動化的方式進行校驗,都需要人工維護測試用例,包括指定輸入和預期結(jié)果,一旦數(shù)據(jù)或測試策略發(fā)生變化時,則無法進行準確有效的測試;
[0005](2)對于長期運行的流式系統(tǒng),根據(jù)構(gòu)造好的測試用例測試完一個流式系統(tǒng)的版本后即棄用,不能提供長期穩(wěn)定的持續(xù)監(jiān)控和校驗測試服務;
[0006](3)不支持自動數(shù)據(jù)采集,特別是大規(guī)模的數(shù)據(jù)采集和動態(tài)更新;
[0007](4)對于多個模塊構(gòu)成的流式系統(tǒng),特別是多個模塊間的數(shù)據(jù)有直接或間接關(guān)聯(lián)時,往往通過內(nèi)部接口測試通過后,再采用集成測試或系統(tǒng)測試方法進行校驗,無法實現(xiàn)一體式的自動驗證。
【發(fā)明內(nèi)容】
[0008]本發(fā)明旨在至少解決上述技術(shù)問題之一。
[0009]為此,本發(fā)明的一個目的在于提出一種可以實時自動采集數(shù)據(jù)、自動生成模塊之間接口的校驗規(guī)則、實現(xiàn)對長期運行的流式系統(tǒng)的接口數(shù)據(jù)的校驗且效率高、人力成本低的流式系統(tǒng)的測試方法。
[0010]本發(fā)明的另一目的在于提出一種流式系統(tǒng)的測試裝置。
[0011]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的第一方面實施例的流式系統(tǒng)的測試方法包括以下步驟:采集所述流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù);獲取所述第一接口數(shù)據(jù)的類型;統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍;采集所述流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及確定第二接口數(shù)據(jù)的特征值是否在所述第一范圍內(nèi)。
[0012]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法,至少具有以下有益效果:(1)實現(xiàn)實時自動的數(shù)據(jù)采集,滿足大數(shù)據(jù)量的模塊接口和動態(tài)數(shù)據(jù)測試的需求;(2)通過統(tǒng)計每種類型的第一接口數(shù)據(jù)的各個特征值在第一預定時間段內(nèi)的第一范圍,自動生成模塊之間接口的校驗規(guī)則,無需人工干預,并且當數(shù)據(jù)或測試策略發(fā)生變化時,能夠及時調(diào)整校驗規(guī)則以進行準確有效的測試;(3)實現(xiàn)對長期運行的流式系統(tǒng)的接口數(shù)據(jù)的校驗;(4)大大提高測試效率和質(zhì)量,減少人力成本,規(guī)范流式系統(tǒng),并且可以發(fā)現(xiàn)傳統(tǒng)測試方法很多較難發(fā)現(xiàn)的問題。
[0013]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的第二方面實施例的流式系統(tǒng)的測試裝置包括:第一采集模塊,所述第一采集模塊用于采集所述流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù);獲取模塊,所述獲取模塊用于獲取所述第一接口數(shù)據(jù)的類型;統(tǒng)計模塊,所述統(tǒng)計模塊用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍;第二采集模塊,所述第二采集模塊用于采集所述流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及確定模塊,所述確定模塊用于確定第二接口數(shù)據(jù)的特征值是否在所述第一范圍內(nèi)。
[0014]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,至少具有以下有益效果:(1)通過第一采集模塊可以實現(xiàn)實時自動的數(shù)據(jù)采集,滿足大數(shù)據(jù)量的模塊接口和動態(tài)數(shù)據(jù)測試的需求;(2)通過統(tǒng)計模塊統(tǒng)計每種類型的第一接口數(shù)據(jù)的各個特征值在第一預定時間段內(nèi)的第一范圍,自動生成模塊之間接口的校驗規(guī)則,無需人工干預,并且當數(shù)據(jù)或測試策略發(fā)生變化時,能夠及時調(diào)整校驗規(guī)則以進行準確有效的測試;(3)實現(xiàn)對長期運行的流式系統(tǒng)的接口數(shù)據(jù)的校驗;(4)測試效率和測試質(zhì)量高,人力成本低,規(guī)范流式系統(tǒng),并且可以發(fā)現(xiàn)傳統(tǒng)測試方法很多較難發(fā)現(xiàn)的問題。
[0015]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0016]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中,
[0017]圖1是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖;
[0018]圖2是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖;
[0019]圖3是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖;
[0020]圖4是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖;
[0021]圖5是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖;
[0022]圖6是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖;
[0023]圖7是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖;以及
[0024]圖8是根據(jù)本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0025]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0026]在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對于本領域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。此外,在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。[0027]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬【技術(shù)領域】的技術(shù)人員所理解。
[0028]下面參考說明書附圖描述根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法。
[0029]一種流式系統(tǒng)的測試方法,包括以下步驟:采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù);獲取第一接口數(shù)據(jù)的類型;統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍;采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0030]圖1為本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖。
[0031]如圖1所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法包括下述步驟。
[0032]步驟S101,采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0033]具體地,流式系統(tǒng)由多個模塊組成,各個模塊之間的數(shù)據(jù)以流式傳遞,可以設置一個數(shù)據(jù)服務器用于主動采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0034]步驟S102,獲取第一接口數(shù)據(jù)的類型。
[0035]具體地,設置的數(shù)據(jù)服務器在采集到各個模塊之間的第一接口數(shù)據(jù)之后,獲取第一接口數(shù)據(jù)的類型。其中,不同類型的第一接口數(shù)據(jù)在流式系統(tǒng)中以不同的格式傳輸。
[0036]在本發(fā)明的一個實施例中,第一接口數(shù)據(jù)的類型包括McPack類型、ULpack類型和protobuf類型。具體地,Mcpack類型的第一接口數(shù)據(jù)為根據(jù)各個模塊之間接口數(shù)據(jù)的打包工具庫(public/mcpack)將各個模塊之間接口數(shù)據(jù)打包成一個二進制的數(shù)據(jù)包;ULpack類型的第一接口數(shù)據(jù)由前導信息、包頭、包體和結(jié)束標識符組成;protobuf類型為google提供的網(wǎng)絡數(shù)據(jù)交換格式。
[0037]步驟S103,統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。
[0038]具體地,第一預定時間段的大小可以根據(jù)實際需求設置,設置第一預定時間段可以控制測試數(shù)據(jù)的大小。
[0039]在本發(fā)明的一個實施例中,各個特征值包括:簡單枚舉字段的取值;以及數(shù)字類型字段的取值。
[0040]在本發(fā)明的一個實施例中,對于簡單枚舉字段的取值,第一范圍是90%_98%的簡單枚舉字段的取值所在的范圍;以及對于數(shù)字類型字段的取值,第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
[0041]例如,對于簡單枚舉字段設置第一預定時間段為I個小時,在I小時內(nèi)出現(xiàn)100個枚舉字段,100個枚舉字段的取值情況為30個中文、30個英文、38個日文和2個俄文,然后統(tǒng)計可以得到98%的枚舉字段的取值為中英日,則該枚舉類型的第一范圍為中英日。其中,枚舉字段的取值為固定的幾個取值范圍。
[0042]又例如,對于數(shù)字類型字段,第一接口數(shù)據(jù)包括不同數(shù)字類型的字段,如uint32、double、uint64等,并且每個數(shù)字類型對應不同的取值范圍,如字符串(char)類型的取值范圍為字符串長度在0-256之間。以字符串為例,在設置的第一預定時間段I個小時內(nèi),統(tǒng)計發(fā)現(xiàn)90%-98%的字符串的長度在125-256之間,則第一范圍為125-256。其中,數(shù)字類型字段的取值為一個數(shù)值范圍。
[0043]步驟S104,采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。
[0044]具體地,設置的服務器在第一預定時間段之后采集流式系統(tǒng)中各個模塊之間的第
二接口數(shù)據(jù)。
[0045]步驟S105,確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0046]具體地,在第一預定時間段之后,每采集一個第二接口數(shù)據(jù),確定該數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0047]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法,至少具有以下有益效果:(1)實現(xiàn)實時自動的數(shù)據(jù)采集,滿足大數(shù)據(jù)量的模塊接口和動態(tài)數(shù)據(jù)測試的需求;(2)通過統(tǒng)計每種類型的第一接口數(shù)據(jù)的各個特征值在第一預定時間段內(nèi)的第一范圍,自動生成模塊之間接口的校驗規(guī)則,無需人工干預,并且當數(shù)據(jù)或測試策略發(fā)生變化時,能夠及時調(diào)整校驗規(guī)則以進行準確有效的測試;(3)實現(xiàn)對長期運行的流式系統(tǒng)的接口數(shù)據(jù)的校驗;(4)大大提高測試效率和質(zhì)量,減少人力成本,規(guī)范流式系統(tǒng),并且可以發(fā)現(xiàn)傳統(tǒng)測試方法很多較難發(fā)現(xiàn)的問題。
[0048]圖2為本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖。
[0049]如圖2所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法包括下述步驟。
[0050]步驟S201,采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0051]具體地,流式系統(tǒng)由多個模塊組成,各個模塊之間的數(shù)據(jù)以流式傳遞,可以設置一個數(shù)據(jù)服務器用于主動采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0052]步驟S202,獲取第一接口數(shù)據(jù)的類型。
[0053]具體地,設置的數(shù)據(jù)服務器在采集到各個模塊之間的第一接口數(shù)據(jù)之后,獲取第一接口數(shù)據(jù)的類型。其中,不同類型的第一接口數(shù)據(jù)在流式系統(tǒng)中以不同的格式傳輸。
[0054]在本發(fā)明的一個實施例中,第一接口數(shù)據(jù)的類型包括McPack類型、ULpack類型和protobuf類型。具體地,Mcpack類型的第一接口數(shù)據(jù)為根據(jù)各個模塊之間接口數(shù)據(jù)的打包工具庫(public/mcpack)將各個模塊之間接口數(shù)據(jù)打包成一個二進制的數(shù)據(jù)包;ULpack類型的第一接口數(shù)據(jù)由前導信息、包頭、包體和結(jié)束標識符組成;protobuf類型為google提供的網(wǎng)絡數(shù)據(jù)交換格式。
[0055]步驟S203,統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。
[0056]具體地,第一預定時間段的大小可以根據(jù)實際需求設置,設置第一預定時間段可以控制測試數(shù)據(jù)的大小。
[0057]在本發(fā)明的一個實施例中,各個特征值包括:簡單枚舉字段的取值;以及數(shù)字類型字段的取值。
[0058]在本發(fā)明的一個實施例中,對于簡單枚舉字段的取值,第一范圍是90%_98%的簡單枚舉字段的取值所在的范圍;以及對于數(shù)字類型字段的取值,第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
[0059]例如,對于簡單枚舉字段設置第一預定時間段為I個小時,在I小時內(nèi)出現(xiàn)100個枚舉字段,100個枚舉字段的取值情況為30個中文、30個英文、38個日文和2個俄文,然后統(tǒng)計可以得到98%的枚舉字段的取值為中英日,則該枚舉類型的第一范圍為中英日。其中,枚舉字段的取值為固定的幾個取值范圍。[0060]又例如,對于數(shù)字類型字段,第一接口數(shù)據(jù)包括不同數(shù)字類型的字段,如uint32、double、uint64等,并且每個數(shù)字類型對應不同的取值范圍,如字符串(char)類型的取值范圍為字符串長度在0-256之間。以字符串為例,在設置的第一預定時間段I個小時內(nèi),統(tǒng)計發(fā)現(xiàn)90%-98%的字符串的長度在125-256之間,則第一范圍為125-256。其中,數(shù)字類型字段的取值為一個數(shù)值范圍。
[0061]步驟S204,采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。
[0062]具體地,設置的服務器在第一預定時間段之后采集流式系統(tǒng)中各個模塊之間的第
二接口數(shù)據(jù)。
[0063]步驟S205,確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0064]具體地,在第一預定時間段之后,每采集一個第二接口數(shù)據(jù),確定該數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0065]步驟S206,如果第二接口數(shù)據(jù)的特征值在第一范圍內(nèi),則第二接口數(shù)據(jù)正常。
[0066]步驟S207,如果第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi),則發(fā)出第二接口數(shù)據(jù)異常的提示。
[0067]例如,對于某個簡單枚舉字段根據(jù)步驟S203所確定的第一范圍為中英日,如果第二接口數(shù)據(jù)的特征值為中英日則確定該第二接口數(shù)據(jù)正常,即落在98%的范圍內(nèi),如果第二接口數(shù)據(jù)的特征值為俄語,則表示第二接口數(shù)據(jù)異常,即沒有落在98%的范圍內(nèi),并發(fā)出異常提示。
[0068]又例如,對于某個數(shù)字類型字段為int類型,根據(jù)步驟S203在第一預定時間段內(nèi)經(jīng)過統(tǒng)計發(fā)現(xiàn)出現(xiàn)的都是0-31之間的數(shù)字,如果第二接口數(shù)據(jù)中出現(xiàn)31.1則確定第二接口數(shù)據(jù)不正常,并發(fā)出異常提示。
[0069]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法,如果第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi)則確定第二接口數(shù)據(jù)異常并發(fā)出第二接口數(shù)據(jù)異常的提示,可以自動實現(xiàn)對數(shù)據(jù)的監(jiān)測且在數(shù)據(jù)出現(xiàn)異常的情況下能及時發(fā)出異常提示。
[0070]圖3為本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖。
[0071]如圖3所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法包括下述步驟。
[0072]步驟S301,采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0073]具體地,流式系統(tǒng)由多個模塊組成,各個模塊之間的數(shù)據(jù)以流式傳遞,可以設置一個數(shù)據(jù)服務器用于主動采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0074]步驟S302,獲取第一接口數(shù)據(jù)的類型。
[0075]具體地,設置的數(shù)據(jù)服務器在采集到各個模塊之間的第一接口數(shù)據(jù)之后,獲取第一接口數(shù)據(jù)的類型。其中,不同類型的第一接口數(shù)據(jù)在流式系統(tǒng)中以不同的格式傳輸。
[0076]在本發(fā)明的一個實施例中,第一接口數(shù)據(jù)的類型包括McPack類型、ULpack類型和protobuf類型。具體地,Mcpack類型的第一接口數(shù)據(jù)為根據(jù)各個模塊之間接口數(shù)據(jù)的打包工具庫(public/mcpack)將各個模塊之間接口數(shù)據(jù)打包成一個二進制的數(shù)據(jù)包;ULpack類型的第一接口數(shù)據(jù)由前導信息、包頭、包體和結(jié)束標識符組成;protobuf類型為google提供的網(wǎng)絡數(shù)據(jù)交換格式。
[0077]步驟S303,統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。
[0078]具體地,第一預定時間段的大小可以根據(jù)實際需求設置,設置第一預定時間段可以控制測試數(shù)據(jù)的大小。
[0079]在本發(fā)明的一個實施例中,各個特征值包括:簡單枚舉字段的取值;以及數(shù)字類型字段的取值。
[0080]在本發(fā)明的一個實施例中,對于簡單枚舉字段的取值,第一范圍是90%_98%的簡單枚舉字段的取值所在的范圍;以及對于數(shù)字類型字段的取值,第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
[0081]例如,對于簡單枚舉字段設置第一預定時間段為I個小時,在I小時內(nèi)出現(xiàn)100個枚舉字段,100個枚舉字段的取值情況為30個中文、30個英文、38個日文和2個俄文,然后統(tǒng)計可以得到98%的枚舉字段的取值為中英日,則該枚舉類型的第一范圍為中英日。其中,枚舉字段的取值為固定的幾個取值范圍。
[0082]又例如,對于數(shù)字類型字段,第一接口數(shù)據(jù)包括不同數(shù)字類型的字段,如uint32、double、uint64等,并且每個數(shù)字類型對應不同的取值范圍,如字符串(char)類型的取值范圍為字符串長度在0-256之間。以字符串為例,在設置的第一預定時間段I個小時內(nèi),統(tǒng)計發(fā)現(xiàn)90%-98%的字符串的長度在125-256之間,則第一范圍為125-256。其中,數(shù)字類型字段的取值為一個數(shù)值范圍。
[0083]步驟S304,采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。
[0084]具體地,設置的服務器在第一預定時間段之后采集流式系統(tǒng)中各個模塊之間的第
二接口數(shù)據(jù)。
[0085]步驟S305,確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0086]具體地,在第一預定時間段之后,每采集一個第二接口數(shù)據(jù),確定該數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0087]步驟S306,如果第二接口數(shù)據(jù)的特征值在第一范圍內(nèi),則第二接口數(shù)據(jù)正常。
[0088]步驟S307,如果第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi),則發(fā)出第二接口數(shù)據(jù)異常的提示。
[0089]例如,對于某個簡單枚舉字段根據(jù)步驟S303所確定的第一范圍為中英日,如果第二接口數(shù)據(jù)的特征值為中英日則確定該第二接口數(shù)據(jù)正常,即落在98%的范圍內(nèi),如果第二接口數(shù)據(jù)的特征值為俄語,則表示第二接口數(shù)據(jù)異常,即沒有落在98%的范圍內(nèi),并發(fā)出異常提示。
[0090]又例如,對于某個數(shù)字類型字段為int類型,根據(jù)步驟S303在第一預定時間段內(nèi)經(jīng)過統(tǒng)計發(fā)現(xiàn)出現(xiàn)的都是0-31之間的數(shù)字,如果第二接口數(shù)據(jù)中出現(xiàn)31.1則確定第二接口數(shù)據(jù)不正常,并發(fā)出異常提示。
[0091]步驟S308,統(tǒng)計每種類型的各個特征值在第二預定時間段內(nèi)的第二范圍,其中第二預定時間段大于第一預定時間段。
[0092]具體地,在第二預定時間段內(nèi)統(tǒng)計每個類型的各個特征值的第二范圍與在第一時間段內(nèi)統(tǒng)計每個類型的各個特征值的第一范圍的方法相同。將第二預定時間段設置大于第一預定時間段,可以得到更為準確的第一范圍。
[0093]步驟S309,用第二范圍更新第一范圍。
[0094]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法,通過在大于第一預定時間段的第二預定時間段內(nèi)統(tǒng)計每個類型的各個特征值的第二范圍,并使用第二范圍更新第一范圍,實現(xiàn)自動更新接口的校驗規(guī)則。
[0095]圖4為本發(fā)明一個實施例的流式系統(tǒng)的測試方法的流程圖。
[0096]如圖4所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法包括下述步驟。
[0097]步驟S401,采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0098]具體地,流式系統(tǒng)由多個模塊組成,各個模塊之間的數(shù)據(jù)以流式傳遞,可以設置一個數(shù)據(jù)服務器用于主動采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0099]步驟S402,將第三預定時間段內(nèi)采集的第一接口數(shù)據(jù)保存在第一緩存上。
[0100]步驟S403,在第三預定時間段之后將第一緩存上的第一接口數(shù)據(jù)保存到第二緩存上。
[0101 ] 步驟S404,刪除第一緩存上的第一接口數(shù)據(jù)。
[0102]具體地,通過步驟S401至步驟S404實現(xiàn)數(shù)據(jù)的自動采集。更具體地,設置兩個線程,分別為接收線程和讀取線程。在數(shù)據(jù)采集開始時啟動多個接收線程,每個接收線程對應一個模塊并監(jiān)聽其端口,并按照定義的接口數(shù)據(jù)包的格式從監(jiān)聽端口讀入數(shù)據(jù),將合法的包存保存在硬盤上,其中保存的數(shù)據(jù)分兩種:正在積累的保存在第一緩存上的第一接口數(shù)據(jù)和最新積累的保存在第二緩存上的第二接口數(shù)據(jù),在第三預定時間段之后,將正在積累的第一緩存上的第一接口數(shù)據(jù)保存到第二緩存上。讀取線程只監(jiān)聽一個端口,解析傳來的請求,再將積累的保存在第二緩存上的第一接口數(shù)據(jù)返回以用于后續(xù)步驟的統(tǒng)計、測試等。
[0103]這種數(shù)據(jù)自動采集方法存在兩個問題:(I)如果第一緩存上已經(jīng)寫完了第一接口數(shù)據(jù)且在第三預定時間段之后,此時第一緩存需要切換到第二緩存,但是此時第二緩存可能正在被讀取線程讀取數(shù)據(jù),發(fā)生讀寫互斥,可以先暫停讀取線程,然后在連接不斷開的情況下將第一緩存切換到第二緩存;(2)如果所采集的上游模塊關(guān)閉掉了,接收線程無法接收到數(shù)據(jù)時積累的第一接口數(shù)據(jù)變?yōu)榭眨藭r可考慮時間和包數(shù)量、積累的第一接口數(shù)據(jù)大小等多個因素,判斷包的類型,如果某個類型的包還沒接收到,則將此包保存。
[0104]步驟S405,獲取第一接口數(shù)據(jù)的類型。
[0105]具體地,設置的數(shù)據(jù)服務器在采集到各個模塊之間的第一接口數(shù)據(jù)之后,獲取第一接口數(shù)據(jù)的類型。其中,不同類型的第一接口數(shù)據(jù)在流式系統(tǒng)中以不同的格式傳輸。
[0106]在本發(fā)明的一個實施例中,第一接口數(shù)據(jù)的類型包括McPack類型、ULpack類型和protobuf類型。具體地,Mcpack類型的第一接口數(shù)據(jù)為根據(jù)各個模塊之間接口數(shù)據(jù)的打包工具庫(public/mcpack)將各個模塊之間接口數(shù)據(jù)打包成一個二進制的數(shù)據(jù)包;ULpack類型的第一接口數(shù)據(jù)由前導信息、包頭、包體和結(jié)束標識符組成;protobuf類型為google提供的網(wǎng)絡數(shù)據(jù)交換格式。
[0107]步驟S406,統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。
[0108]具體地,第一預定時間段的大小可以根據(jù)實際需求設置,設置第一預定時間段可以控制測試數(shù)據(jù)的大小。
[0109]在本發(fā)明的一個實施例中,各個特征值包括:簡單枚舉字段的取值;以及數(shù)字類型字段的取值。
[0110]在本發(fā)明的一個實施例中,對于簡單枚舉字段的取值,第一范圍是90%-98%的簡單枚舉字段的取值所在的范圍;以及對于數(shù)字類型字段的取值,第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。[0111]例如,對于簡單枚舉字段設置第一預定時間段為I個小時,在I小時內(nèi)出現(xiàn)100個枚舉字段,100個枚舉字段的取值情況為30個中文、30個英文、38個日文和2個俄文,然后統(tǒng)計可以得到98%的枚舉字段的取值為中英日,則該枚舉類型的第一范圍為中英日。其中,枚舉字段的取值為固定的幾個取值范圍。
[0112]又例如,對于數(shù)字類型字段,第一接口數(shù)據(jù)包括不同數(shù)字類型的字段,如uint32、double、uint64等,并且每個數(shù)字類型對應不同的取值范圍,如字符串(char)類型的取值范圍為字符串長度在0-256之間。以字符串為例,在設置的第一預定時間段I個小時內(nèi),統(tǒng)計發(fā)現(xiàn)90%-98%的字符串的長度在125-256之間,則第一范圍為125-256。其中,數(shù)字類型字段的取值為一個數(shù)值范圍。
[0113]步驟S407,采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。
[0114]具體地,設置的服務器在第一預定時間段之后采集流式系統(tǒng)中各個模塊之間的第
二接口數(shù)據(jù)。
[0115]步驟S408,確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。[0116]具體地,在第一預定時間段之后,每采集一個第二接口數(shù)據(jù),確定該數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0117]步驟S409,如果第二接口數(shù)據(jù)的特征值在第一范圍內(nèi),則第二接口數(shù)據(jù)正常。
[0118]步驟S410,如果第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi),則發(fā)出第二接口數(shù)據(jù)異常的提示。
[0119]例如,對于某個簡單枚舉字段根據(jù)步驟S303所確定的第一范圍為中英日,如果第二接口數(shù)據(jù)的特征值為中英日則確定該第二接口數(shù)據(jù)正常,即落在98%的范圍內(nèi),如果第二接口數(shù)據(jù)的特征值為俄語,則表示第二接口數(shù)據(jù)異常,即沒有落在98%的范圍內(nèi),并發(fā)出異常提示。
[0120]又例如,對于某個數(shù)字類型字段為int類型,根據(jù)步驟S303在第一預定時間段內(nèi)經(jīng)過統(tǒng)計發(fā)現(xiàn)出現(xiàn)的都是0-31之間的數(shù)字,如果第二接口數(shù)據(jù)中出現(xiàn)31.1則確定第二接口數(shù)據(jù)不正常,并發(fā)出異常提示。
[0121]步驟S411,統(tǒng)計每種類型的各個特征值在第二預定時間段內(nèi)的第二范圍,其中第二預定時間段大于第一預定時間段。
[0122]具體地,在第二預定時間段內(nèi)統(tǒng)計每個類型的各個特征值的第二范圍與在第一時間段內(nèi)統(tǒng)計每個類型的各個特征值的第一范圍的方法相同。將第二預定時間段設置大于第一預定時間段,可以得到更為準確的第一范圍。
[0123]步驟S412,用第二范圍更新第一范圍。
[0124]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試方法,采取雙緩存機制實現(xiàn)流式系統(tǒng)中第一接口數(shù)據(jù)的采集,簡單易行,同時采用線程機制實現(xiàn)數(shù)據(jù)的接收和讀取,提高了效率。
[0125]下面參考說明書附圖描述根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置。
[0126]一種流式系統(tǒng)的測試裝置,包括:第一采集模塊,第一采集模塊用于采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù);獲取模塊,獲取模塊用于獲取第一接口數(shù)據(jù)的類型?’統(tǒng)計模塊,統(tǒng)計模塊用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍;第二采集模塊,第二采集模塊用于采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及確定模塊,確定模塊用于確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。[0127]圖5為本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖。
[0128]如圖5所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,包括第一采集模塊100、獲取模塊200、統(tǒng)計模塊300、第二采集模塊400和確定模塊500。
[0129]具體地,第一采集模塊100用于采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。其中,流式系統(tǒng)由多個模塊組成,各個模塊之間的數(shù)據(jù)以流式傳遞,第一采集模塊100主動采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。
[0130]獲取模塊200用于獲取第一接口數(shù)據(jù)的類型。其中,第一采集模塊100在采集到各個模塊之間的第一接口數(shù)據(jù)之后,獲取模塊200獲取第一接口數(shù)據(jù)的類型,不同類型的第一接口數(shù)據(jù)在流式系統(tǒng)中以不同的格式傳輸。
[0131 ] 在本發(fā)明的一個實施例中,第一接口數(shù)據(jù)的類型包括McPack類型、ULpack類型和protobuf類型。具體地,Mcpack類型的第一接口數(shù)據(jù)為根據(jù)各個模塊之間接口數(shù)據(jù)的打包工具庫(public/mcpack)將各個模塊之間接口數(shù)據(jù)打包成一個二進制的數(shù)據(jù)包;ULpack類型的第一接口數(shù)據(jù)由前導信息、包頭、包體和結(jié)束標識符組成;protobuf類型為google提供的網(wǎng)絡數(shù)據(jù)交換格式。
[0132]統(tǒng)計模塊300用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。其中,第一預定時間段的大小可以根據(jù)實際需求設置,設置第一預定時間段可以控制測試數(shù)據(jù)的大小。
[0133]在本發(fā)明的一個實施例中,各個特征值包括:簡單枚舉字段的取值;以及數(shù)字類型字段的取值。
[0134]在本發(fā)明的一個實施例中,對于簡單枚舉字段的取值,第一范圍是90%_98%的簡單枚舉字段的取值所在的范圍;以及對于數(shù)字類型字段的取值,第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
[0135]例如,對于簡單枚舉字段設置第一預定時間段為I個小時,統(tǒng)計模塊300統(tǒng)計在I小時內(nèi)出現(xiàn)100個枚舉字段,100個枚舉字段的取值情況為30個中文、30個英文、38個日文和2個俄文,然后統(tǒng)計模塊300可以得到98%的枚舉字段的取值為中英日,則該枚舉類型的第一范圍為中英日。其中,枚舉字段的取值為固定的幾個取值范圍。
[0136]又例如,對于數(shù)字類型字段,第一接口數(shù)據(jù)包括不同數(shù)字類型的字段,如uint32、double、uint64等,并且每個數(shù)字類型對應不同的取值范圍,如字符串(char)類型的取值范圍為字符串長度在0-256之間。以字符串為例,統(tǒng)計模塊300在設置的第一預定時間段I個小時內(nèi),統(tǒng)計發(fā)現(xiàn)90%-98%的字符串的長度在125-256之間,則第一范圍為125-256。其中,數(shù)字類型字段的取值為一個數(shù)值范圍。
[0137]第二采集模塊400用于采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。其中,第二采集模塊400在第一預定時間段之后采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。
[0138]確定模塊500用于確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。其中,確定模塊500在第一預定時間段之后,每采集一個第二接口數(shù)據(jù),確定該數(shù)據(jù)的特征值是否在第一范圍內(nèi)。
[0139]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,至少具有以下有益效果:(1)通過第一采集模塊可以實現(xiàn)實時自動的數(shù)據(jù)采集,滿足大數(shù)據(jù)量的模塊接口和動態(tài)數(shù)據(jù)測試的需求;(2)通過統(tǒng)計模塊統(tǒng)計每種類型的第一接口數(shù)據(jù)的各個特征值在第一預定時間段內(nèi)的第一范圍,自動生成模塊之間接口的校驗規(guī)則,無需人工干預,并且當數(shù)據(jù)或測試策略發(fā)生變化時,能夠及時調(diào)整校驗規(guī)則以進行準確有效的測試;(3)實現(xiàn)對長期運行的流式系統(tǒng)的接口數(shù)據(jù)的校驗;(4)測試效率和測試質(zhì)量高,人力成本低,規(guī)范流式系統(tǒng),并且可以發(fā)現(xiàn)傳統(tǒng)測試方法很多較難發(fā)現(xiàn)的問題。
[0140]圖6為本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖。
[0141]如圖6所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,包括第一采集模塊100、獲取模塊200、統(tǒng)計模塊300、第二采集模塊400、確定模塊500和提示模塊600。
[0142]具體地,第一采集模塊100用于采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。獲取模塊200用于獲取第一接口數(shù)據(jù)的類型。統(tǒng)計模塊300用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。第二采集模塊400用于采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。確定模塊500用于確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。提示模塊600用于在第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi)時,發(fā)出第二接口數(shù)據(jù)異常的提
/Jn ο
[0143]在本發(fā)明的一個實施例中,各個特征值包括:簡單枚舉字段的取值;以及數(shù)字類型字段的取值。
[0144]在本發(fā)明的一個實施例中,對于簡單枚舉字段的取值,第一范圍是90%_98%的簡單枚舉字段的取值所在的范圍;以及對于數(shù)字類型字段的取值,第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
[0145]例如,對于簡單枚舉字段設置第一預定時間段為I個小時,統(tǒng)計模塊300統(tǒng)計在I小時內(nèi)出現(xiàn)100個枚舉字段,100個枚舉字段的取值情況為30個中文、30個英文、38個日文和2個俄文,然后統(tǒng)計模塊300可以得到98%的枚舉字段的取值為中英日,則該枚舉類型的第一范圍為中英日。確定模塊500根據(jù)第二采集模塊400采集到的數(shù)據(jù)和第一范圍比較,如果第二接口數(shù)據(jù)的特征值為中英日則確定模塊500確定該第二接口數(shù)據(jù)正常,即落在98%的范圍內(nèi),如果第二接口數(shù)據(jù)的特征值為俄語,則確定模塊500確定第二接口數(shù)據(jù)異常,SP沒有落在98%的范圍內(nèi),并通過提示模塊600發(fā)出異常提示。
[0146]又例如,對于數(shù)字類型字段,第一接口數(shù)據(jù)包括不同數(shù)字類型的字段,如uint32、double、uint64等,并且每個數(shù)字類型對應不同的取值范圍,如字符串(char)類型的取值范圍為字符串長度在0-256之間。以字符串為例,統(tǒng)計模塊300在設置的第一預定時間段I個小時內(nèi),統(tǒng)計發(fā)現(xiàn)90%-98%的字符串的長度在125-256之間,則第一范圍為125-256。確定模塊500根據(jù)第二采集模塊400采集到的數(shù)據(jù)和第一范圍比較,如果第二接口數(shù)據(jù)的特征值為25則確定模塊500確定該第二接口數(shù)據(jù)正常,即落在98%的范圍內(nèi),如果第二接口數(shù)據(jù)的特征值為31.1,則確定模塊500確定第二接口數(shù)據(jù)異常,即沒有落在98%的范圍內(nèi),并通過提示模塊600發(fā)出異常提示
[0147]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,如果第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi)通過提示模塊發(fā)出第二接口數(shù)據(jù)異常的提示,可以自動實現(xiàn)對數(shù)據(jù)的監(jiān)測且在數(shù)據(jù)出現(xiàn)異常的情況下發(fā)出提示。
[0148]圖7為本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖。
[0149]如圖7所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,包括第一采集模塊100、獲取模塊200、統(tǒng)計模塊300、第二采集模塊400、確定模塊500、提示模塊600和更新模塊700。
[0150]具體地,第一采集模塊100用于采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。獲取模塊200用于獲取第一接口數(shù)據(jù)的類型。統(tǒng)計模塊300用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。第二采集模塊400用于采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。確定模塊500用于確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。提示模塊600用于在第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi)時,發(fā)出第二接口數(shù)據(jù)異常的提示。更新模塊700用于在統(tǒng)計模塊300統(tǒng)計每種類型的各個特征值在第二預定時間段內(nèi)的第二范圍之后,用第二范圍更新第一范圍,其中第二預定時間段大于第一預定時間段。
[0151]更具體地,統(tǒng)計模塊300在第二預定時間段內(nèi)統(tǒng)計每個類型的各個特征值的第二范圍與在第一時間段內(nèi)統(tǒng)計每個類型的各個特征值的第一范圍的方法相同。將第二預定時間段設置大于第一預定時間段,可以得到更為準確的第二范圍。
[0152]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,通過更新模塊使用第二范圍更新第一范圍,實現(xiàn)自動更新接口的校驗規(guī)則。
[0153]圖8為本發(fā)明一個實施例的流式系統(tǒng)的測試裝置的結(jié)構(gòu)框圖。
[0154]如圖8所示,根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,包括第一采集模塊100、獲取模塊200、統(tǒng)計模塊300、第二采集模塊400、確定模塊500、提示模塊600、更新模塊700、保存模塊800和刪除模塊900。
[0155]具體地,第一采集模塊100用于采集流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù)。獲取模塊200用于獲取第一接口數(shù)據(jù)的類型。統(tǒng)計模塊300用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍。第二采集模塊400用于采集流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù)。確定模塊50 0用于確定第二接口數(shù)據(jù)的特征值是否在第一范圍內(nèi)。提示模塊600用于在第二接口數(shù)據(jù)的特征值不在第一范圍內(nèi)時,發(fā)出第二接口數(shù)據(jù)異常的提示。更新模塊700用于在統(tǒng)計模塊300統(tǒng)計每種類型的各個特征值在第二預定時間段內(nèi)的第二范圍之后,用第二范圍更新第一范圍,其中第二預定時間段大于第一預定時間段。保存模塊800用于將第三預定時間段內(nèi)采集的第一接口數(shù)據(jù)保存在第一緩存上,和在第三預定時間段之后將第一緩存上的第一接口數(shù)據(jù)保存到第二緩存上。刪除模塊900用于刪除第一緩存上的第一接口數(shù)據(jù)。
[0156]更具體地,通過第一采集模塊100、保存模塊800和刪除模塊900可以實現(xiàn)數(shù)據(jù)的自動采集。保存模塊800設置兩個線程,分別為接收線程和讀取線程。在第一采集模塊100進行數(shù)據(jù)采集開始時啟動多個接收線程,每個接收線程對應一個模塊并監(jiān)聽其端口,并按照定義的接口數(shù)據(jù)包的格式從監(jiān)聽端口讀入數(shù)據(jù),將合法的包存保存在硬盤上,其中保存的數(shù)據(jù)分兩種:正在積累的保存在第一緩存上的第一接口數(shù)據(jù)和最新積累的保存在第二緩存上的第二接口數(shù)據(jù),在第三預定時間段之后,保存模塊800將正在積累的第一緩存上的第一接口數(shù)據(jù)保存到第二緩存上。讀取線程只監(jiān)聽一個端口,解析傳來的請求,再將積累的保存在第二緩存上的第一接口數(shù)據(jù)返回以用于后續(xù)的統(tǒng)計、測試等。
[0157]這種數(shù)據(jù)自動采集方法存在兩個問題:(I)如果第一緩存上已經(jīng)寫完了第一接口數(shù)據(jù)且在第三預定時間段之后,此時第一緩存需要切換到第二緩存,但是此時第二緩存可能正在被讀取線程讀取數(shù)據(jù),發(fā)生讀寫互斥問題時,可以先暫停讀取線程,然后在連接不斷開的情況下將第一緩存切換到第二緩存;(2)如果所采集的上游模塊關(guān)閉掉了,接收線程無法接收到數(shù)據(jù)時積累的第一接口數(shù)據(jù)變?yōu)榭眨藭r可考慮時間和包數(shù)量、積累的第一接口數(shù)據(jù)大小等多個因素,判斷包的類型,如果某個類型的包還沒接收到,則將此包保存。
[0158]根據(jù)本發(fā)明實施例的流式系統(tǒng)的測試裝置,采取雙緩存機制實現(xiàn)流式系統(tǒng)中第一接口數(shù)據(jù)的采集,簡單易行,同時采用線程機制實現(xiàn)數(shù)據(jù)的接收和讀取,提高了效率。
[0159]應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0160]在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
[0161]盡管已經(jīng)示出和描述了本發(fā)明的實施例,對于本領域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。
【權(quán)利要求】
1.一種流式系統(tǒng)的測試方法,其特征在于,包括以下步驟: 采集所述流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù); 獲取所述第一接口數(shù)據(jù)的類型; 統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍; 采集所述流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及 確定第二接口數(shù)據(jù)的特征值是否在所述第一范圍內(nèi)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,進一步包括步驟: 如果第二接口數(shù)據(jù)的特征值不在所述第一范圍內(nèi),則發(fā)出所述第二接口數(shù)據(jù)異常的提/Jn ο
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,進一步包括步驟: 統(tǒng)計每種類型的各個特征值在第二預定時間段內(nèi)的第二范圍,其中所述第二預定時間段大于所述第一預定時間段;以及 用所述第二范圍更新所述第一范圍。
4.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,進一步包括步驟: 將第三預定時間段內(nèi)采集的第一接口數(shù)據(jù)保存在第一緩存上;以及 在第三預定時間段之后將所`述第一緩存上的第一接口數(shù)據(jù)保存到第二緩存上;以及 刪除所述第一緩存上的第一接口數(shù)據(jù)。
5.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述類型包括=McPack類型、ULpack類型和protobuf類型。
6.根據(jù)權(quán)利要求1至3中任一項所述的方法,其特征在于,所述各個特征值包括: 簡單枚舉字段的取值;以及 數(shù)字類型字段的取值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于, 對于簡單枚舉字段的取值,所述第一范圍是90%-98%的簡單枚舉字段的取值所在的范圍;以及 對于數(shù)字類型字段的取值,所述第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
8.一種流式系統(tǒng)的測試裝置,其特征在于,包括: 第一采集模塊,所述第一采集模塊用于采集所述流式系統(tǒng)中各個模塊之間的第一接口數(shù)據(jù); 獲取模塊,所述獲取模塊用于獲取所述第一接口數(shù)據(jù)的類型; 統(tǒng)計模塊,所述統(tǒng)計模塊用于統(tǒng)計每種類型的各個特征值在第一預定時間段內(nèi)的第一范圍; 第二采集模塊,所述第二采集模塊用于采集所述流式系統(tǒng)中各個模塊之間的第二接口數(shù)據(jù);以及 確定模塊,所述確定模塊用于確定第二接口數(shù)據(jù)的特征值是否在所述第一范圍內(nèi)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,進一步包括: 提示模塊,所述提示模塊用于在第二接口數(shù)據(jù)的特征值不在所述第一范圍內(nèi)時,發(fā)出所述第二接口數(shù)據(jù)異常的提示。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,進一步包括: 更新模塊,所述更新模塊用于在所述統(tǒng)計模塊統(tǒng)計每種類型的各個特征值在第二預定時間段內(nèi)的第二范圍之后,用所述第二范圍更新所述第一范圍,其中所述第二預定時間段大于所述第一預定時間段。
11.根據(jù)權(quán)利要求8至10中任一項所述的裝置,其特征在于,進一步包括: 保存模塊,所述保存模塊用于將第三預定時間段內(nèi)采集的第一接口數(shù)據(jù)保存在第一緩存上,和在第三預定時間段之后將所述第一緩存上的第一接口數(shù)據(jù)保存到第二緩存上;以及 刪除模塊,所述刪除模塊用于刪除所述第一緩存上的第一接口數(shù)據(jù)。
12.根據(jù)權(quán)利要求8至10中任一項所述的裝置,其特征在于,所述類型包括=McPack類型、ULpack類型和protobuf類型。
13.根據(jù)權(quán)利要求8至10中任一項所述的裝置,其特征在于,所述各個特征值包括: 簡單枚舉字段的取值;以及 數(shù)字類型字段的取值。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于, 對于簡單枚舉字段的取值,所述第一范圍是90%-98%的簡單枚舉字段的取值所在的范圍;以及 對于數(shù)字類型字段的取`值,所述第一范圍是90%-98%的數(shù)字類型字段的取值所在的范圍。
【文檔編號】G06F11/36GK103514091SQ201210223514
【公開日】2014年1月15日 申請日期:2012年6月28日 優(yōu)先權(quán)日:2012年6月28日
【發(fā)明者】張靜, 劉佳 申請人:百度在線網(wǎng)絡技術(shù)(北京)有限公司