一種加快消息生成的方法及裝置與流程
2023-05-28 11:04:41 2

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