本發(fā)明涉及計算機技術領域,尤其涉及一種加快消息生成的方法及裝置。
背景技術:
為了測試diameter服務器的性能,需要生產用于測試的協(xié)議數(shù)據(jù)包。每個協(xié)議數(shù)據(jù)包中包含至少一個屬性值對(attributevaluepair,簡稱avp)字段。而傳統(tǒng)的diameter性能測試工具主要是通過調用api接口,逐一設置每一個avp字段值的方法來達到測試的目的。如果數(shù)據(jù)包過多,或者一個數(shù)據(jù)包所包括的avp字段很多時,如果逐一設置avp字段值,工作量將會很大。然而,實際上并非需要將每一個avp字段值都進行重新設置,而是根據(jù)需要改變部分avp字段值即可。那么,傳統(tǒng)的方式就會造成操作的冗余。影響了產生協(xié)議數(shù)據(jù)的速度。
技術實現(xiàn)要素:
為解決上述技術問題,本發(fā)明提供了一種加快消息生成的方法及裝置。
第一方面,本發(fā)明提供了一種加快消息生成的方法,該方法包括:
獲取一條預生成的消息,其中消息中包含至少一個avp字段,以及與至少一個avp字段的位置相關聯(lián)的信息;
根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,分別獲取至少一個avp字段中的每一個avp字段的位置信息;
接收用戶的需求信息,其中需求信息中包括與待修改的avp字段對應的標識信息和修改規(guī)則信息,待修改的avp字段屬于至少一個字段中的一個或者多個avp字段;
根據(jù)與待修改的avp字段對應的標識信息和待修改的avp字段的位置信息,獲取待修改的avp字段;
根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改,生成新的消息。
本發(fā)明的有益效果是:將已有的消息作為模板,并且存儲該消息中每一個avp字段對應的位置信息。根據(jù)用戶的需求確定需要修改消息模板中的一個或者多個avp字段值時,則根據(jù)位置信息找到對應的avp字段,并進行相應修改。在生成新消息時,可以快速的找到需要修改的avp字段,并對其值進行修改。而不需要對每一個avp的字段值均進行修改。由此,在不增加載體機的性能負擔的情況下,大大提升了生產新消息的速率。
進一步,待修改的avp字段對應的修改規(guī)則信息和待修改的avp字段的類型一一對應。
采用上述進一步的方案的有益技術效果在于,根據(jù)不同的avp字段的類型,設置對應的修改規(guī)則信息,生成不同的消息。由此來適應不同的測試場景。
進一步,avp字段的類型包括如下一種或者多種:
32位整數(shù)類型、64位整數(shù)類型、字符串類型、時間戳類型、32位整數(shù)自增類型以及64位整數(shù)自增類型。
進一步的,當待修改的avp字段至少為兩個時,根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改的方式為并行線程修改方式。
采用上述進一步的技術方案的有益技術效果在于:通過并行的方式修改待修改的avp字段的字段值,大大提升了工作效率。
進一步的,根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,分別獲取至少一個avp字段中的每一個avp字段的位置信息之前,方法還包括:
對預生成的消息進行數(shù)據(jù)解析,獲取與至少一個avp字段的位置相關聯(lián)的信息。
采用上述進一步的技術方案的有益技術效果在于:對預生成的消息進行數(shù)據(jù)解析,獲取與至少一個avp字段的位置相關聯(lián)的信息,以便根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,最終得到至少一個avp字段中每一個字段的位置信息。
第二方面,本發(fā)明提供了一種加快消息生成的裝置,該裝置包括:獲取單元,用于獲取一條預生成的消息,其中消息中包含至少一個avp字段,以及與至少一個avp字段的位置相關聯(lián)的信息;
根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,分別獲取至少一個avp字段中的每一個avp字段的位置信息;
接收單元,用于接收用戶的需求信息,其中需求信息中包括與待修改的avp字段對應的標識信息和修改規(guī)則信息,待修改的avp字段屬于至少一個字段中的一個或者多個avp字段;
處理單元,用于根據(jù)與待修改的avp字段對應的標識信息和待修改的avp字段的位置信息,獲取待修改的avp字段;
根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改,生成新的消息。
上述方案的有益技術效果在于,將已有的消息作為模板,并且存儲該消息中每一個avp字段對應的位置信息。根據(jù)用戶的需求確定需要修改消息模板中的一個或者多個avp字段值時,則根據(jù)位置信息找到對應的avp字段,并進行相應修改。在生成新消息時,可以快速的找到需要修改的avp字段,并對其值進行修改。而不需要對每一個avp的字段值均進行修改。由此,在不增加載體機的性能負擔的情況下,大大提升了生產新消息的速率。
進一步的,待修改的avp字段對應的修改規(guī)則信息和待修改的avp字段的類型一一對應。
采用上述進一步的方案的有益技術效果在于,根據(jù)不同的avp字段的類型,設置對應的修改規(guī)則信息,生成不同的消息。由此來適應不同的測試場景。
進一步的,avp字段的類型包括如下一種或者多種:
32位整數(shù)類型、64位整數(shù)類型、字符串類型、時間戳類型、32位整數(shù)自增類型以及64位整數(shù)自增類型。
進一步的,當待修改的avp字段至少為兩個時,根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改的方式為并行線程修改方式。
采用上述進一步的技術方案的有益技術效果在于,通過并行的方式修改待修改的avp字段的字段值,大大提升了工作效率。
進一步的,裝置還包括:解析單元,用于對預生成的消息進行數(shù)據(jù)解析,獲取與至少一個avp字段的位置相關聯(lián)的信息。
采用上述進一步的技術方案的有益技術效果在于,對預生成的消息進行數(shù)據(jù)解析,獲取與至少一個avp字段的位置相關聯(lián)的信息,以便根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,最終得到至少一個avp字段中每一個字段的位置信息。
附圖說明
圖1為本發(fā)明實施例提供的一種加快消息生成的方法流程示意圖;
圖2為本發(fā)明實施例提供的一種加快消息生成的裝置結構示意圖。
具體實施方式
以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結構、接口、技術之類的具體細節(jié),以便透切理解本發(fā)明。然而,本領域的技術人員應當清楚,在沒有這些具體細節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明。在其它情況中,省略對眾所周知的裝置、電路以及方法的詳細說明,以免不必要的細節(jié)妨礙本發(fā)明的描述。
圖1為本發(fā)明實施例提供的一種加快消息生成的方法流程示意圖。在以下具體實施例中,主要以生成的是一種diameter消息為例進行說明,其他消息生成的方法類似,這里不做介紹。具體如圖1所示,該方法包括:
步驟110,獲取一條預生成的消息。
具體的,獲取一條預先生成的消息,該消息可以通過系統(tǒng)自帶的makeccr子功能生成,或者也可以是其他路徑獲取。例如,通過在生成消息包過程中,通過隨機抓取獲得等方式。而具體如何獲取這條預先生成的消息,這里不做任何限定。
而獲取的預先生成的消息中,至少包含了一個avp字段,以及與至少一個avp字段的位置相關聯(lián)的信息。
步驟120,根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,分別獲取至少一個avp字段中的每一個avp字段的位置信息。
這里所說的與avp字段的位置相關聯(lián)的信息可以包括avp字段值的長度,avp字段的偏移位置、變更位置個數(shù)以及組內組外信息等。
需要解釋說明的是,一般而言,我們所獲取的消息,都是已經按照某種數(shù)據(jù)結構進行封裝后的。因此,在獲取預先在獲取預先生成的消息后,首先需要對該消息按照相應的數(shù)據(jù)結構進行解析。也即是進行數(shù)據(jù)解析,從而獲取與至少一個avp字段的位置相關聯(lián)的信息。
其中,avp組成結構中,前4字節(jié)表示avp類型,緊接著4字節(jié),表示avp整體所占用字節(jié)長度。而avp中其他字節(jié)均用于表示avp字段值。而在解析過程中,avp字段值的長度其實是指的是當前avp字段值所占用的字節(jié)數(shù)。也即是上文中所說的avp字段值所占用的字節(jié)數(shù)。因為在一個消息結構中,主要包含多個avp字段,且每一個avp字段緊密連接,且每一個字段的字節(jié)數(shù)必須和模板中avp字段所占用的字節(jié)數(shù)相同。所以,根據(jù)用戶需求所要生成的新的消息中,每一個avp字段占用字節(jié)數(shù)必須和模板中avp字段所占用字節(jié)數(shù)相同。因此,還需獲取avp字段的長度。另外,在確定avp字段長度后,還可以用于快速定位到待修改的avp字段。例如,待修改的avp字段為第n個字段,而每個avp字段所占用字節(jié)為k。那么,在定位時,也可以直接定位到(n-1)乘以k后加1個字節(jié)的位置,也即是第n個字段的字段值所占用的第一字節(jié)位置。
字段的偏移位置和組內組外信息主要用于快速確定avp字段的位置,組內組外信息只要指的是avp字段可能是多個進行嵌套的,所以,組內組外就是說明當前avp字段在屬于嵌套層中外面還是內部。變更位置個數(shù)可以理解為:指示同一avp字段存在重復節(jié)點。例如,一個電話號碼對應信息與該電話號碼對應的imsi卡號的信息包含在同一avp編組中,且二者對應的avp字段值不同。那么,這個變更位置個數(shù)為2,即是變更位置個數(shù)主要用于指示屬于標識同一物體或者同一信息的不同指示信息的個數(shù)。
也即是,通過上述與至少一個avp字段的位置相關聯(lián)的信息,可以分別獲取至少一個avp字段中的每一個avp字段的位置信息,甚至是直接定位置該avp字段的位置。
步驟130,接收用戶的需求信息。
具體的,用戶的需求信息中包括與待修改的avp字段對應的標識信息和修改規(guī)則信息,待修改的avp字段屬于至少一個字段中的一個或者多個avp字段。
其中,待修改的avp字段對應的修改規(guī)則信息和待修改的avp字段的類型一一對應。而avp字段的類型可以包括一種或者多種。例如,avp字段的類型可以為32位整數(shù)類型、64位整數(shù)類型、字符串類型、時間戳類型、32位整數(shù)自增類型以及64位整數(shù)自增類型。而修改規(guī)則可以為:自增(包括64位或者32位自增),類似的還包括生成(32位或64位)隨機字符串、生成時間戳、生成(32位或64位)隨機數(shù)字串等等。自增規(guī)則舉例而言,例如一個avp字段為隨機數(shù)字串,現(xiàn)在的修改規(guī)則為自增的話,那么系統(tǒng)在修改過程中,就可以將模板消息中的avp字段值自增1,或者其他數(shù)值(主要按照定義規(guī)則設定)。生成隨機字符串或者隨機數(shù)字串規(guī)則可以應用在avp字段表示域名或者id之類的情況中。
步驟140,根據(jù)與待修改的avp字段對應的標識信息和待修改的avp字段的位置信息,獲取待修改的avp字段。
步驟150,根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改,生成新的消息。
具體的,在上述步驟中已經獲取了待修改的avp字段對應的修改規(guī)則信息,直接對待修改的字段的字段值進行修改即可。如此生成一條新的消息。
優(yōu)選的,當待修改的avp字段至少為兩個時,根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改的方式為并行線程修改方式。
本發(fā)明實施例提供的一種加快消息生成的方法,主要優(yōu)點在于,可以迅速的定位到待修改的avp字段,并按照相應的規(guī)則進行修改即可。而不需要逐個設置每一個avp字段值的方法,生成一個新的測試消息。避免了操作的冗余,大大提升了系統(tǒng)的工作效率。而且,當待修改的avp字段值為至少兩個時,還可以采用多線程并行方式進行修改。進一步提升工作效率。另外,此次的并行修改,因為僅針對待修改的字段進行修改,而并非逐一設置每一個字段的字段值。所以,不會造成系統(tǒng)部署的復雜性,也不會給載體機的性能造成負擔。
相應地,本發(fā)明實施例還提供了一種加快消息生成的裝置。圖2為本發(fā)明實施例提供的一種加快消息生成的裝置結構示意圖。如圖2所示,該裝置包括:獲取單元201,接收單元202,處理單元203。
獲取單元201,用于獲取一條預生成的消息,其中消息中包含至少一個avp字段,以及與至少一個avp字段的位置相關聯(lián)的信息;
根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,分別獲取至少一個avp字段中的每一個avp字段的位置信息。
接收單元202,用于接收用戶的需求信息,其中需求信息中包括與待修改的avp字段對應的標識信息和修改規(guī)則信息,待修改的avp字段屬于至少一個字段中的一個或者多個avp字段。
具體的,待修改的avp字段對應的修改規(guī)則信息和待修改的avp字段的類型一一對應。其中,avp字段的類型包括如下一種或者多種:
32位整數(shù)類型、64位整數(shù)類型、字符串類型、時間戳類型、32位整數(shù)自增類型以及64位整數(shù)自增類型。
處理單元203,用于根據(jù)與待修改的avp字段對應的標識信息和待修改的avp字段的位置信息,獲取待修改的avp字段;
根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改,生成新的消息。
優(yōu)選的,當待修改的avp字段至少為兩個時,處理單元203根據(jù)與待修改的avp字段對應的修改規(guī)則信息對待修改的avp字段的字段值進行修改的方式為并行線程修改方式。
進一步優(yōu)選的,裝置還可以包括:解析單元204,用于在獲取單元201根據(jù)與至少一個avp字段的位置相關聯(lián)的信息,分別獲取至少一個avp字段中的每一個avp字段的位置信息之前,對預生成的消息進行數(shù)據(jù)解析,獲取與至少一個avp字段的位置相關聯(lián)的信息。
本發(fā)明實施例提供的一種加快消息生成的裝置,主要優(yōu)點在于,可以迅速的定位到待修改的avp字段,并按照相應的規(guī)則進行修改即可。而不需要逐個設置每一個avp字段值的方法,生成一個新的測試消息。避免了操作的冗余,大大提升了系統(tǒng)的工作效率。而且,當待修改的avp字段值為至少兩個時,還可以采用多線程并行方式進行修改。進一步提升工作效率。另外,此次的并行修改,因為僅針對待修改的字段進行修改,而并非逐一設置每一個字段的字段值。所以,不會造成系統(tǒng)部署的復雜性,也不會給載體機的性能造成負擔。
讀者應理解,在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
盡管上面已經示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領域的普通技術人員在本發(fā)明的范圍內可以對上述實施例進行變化、修改、替換和變型。