
本申請涉及消息處理
技術領域:
,特別涉及一種消息處理系統的測試方法和裝置。
背景技術:
:隨著計算機技術的快速發展,利用消息處理系統來進行消息處理的需求越來越多,現有的消息處理系統一般包括消息發送端和消息接收端,消息發送端將待處理消息發送至消息接收端,消息接收端基于已有業務邏輯對待處理消息進行處理,得到處理結果。因此,如何保證消息處理系統的處理性能的可靠性也愈發受到業內重視。然而,由于消息處理系統所接收到的待處理消息會直接被處理,無法被保留、復用,現有技術中,一般通過人工定制大量模擬各業務場景的待測消息,再通過消息請求方將這些待測消息發送至消息接收端,再通過判斷消息接收端的處理結果是否符合預設結果來實現測試消息處理系統的處理性能的可靠性。然而,通過人工方式來定制大量待測消息,耗費了大量人力和時間,造成消息處理系統的測試效率低下。技術實現要素:本申請實施例的目的是提供一種消息處理系統的測試方法和裝置,以提高測試效率。為解決上述技術問題,本申請實施例提供一種消息處理系統的測試方法,包括:接收針對消息處理系統的測試請求,所述測試請求攜帶有:待測消息屬性;根據所述待測消息屬性,在預設消息庫內確定出目標消息,所述目標消息 具有所述待測消息屬性;將所述目標消息發送至所述消息處理系統,并得到所述消息處理系統針對所述目標消息的處理結果;根據所述待測消息屬性,在預設結果庫內確定出現有處理結果,所述現有處理結果是所述消息處理系統針對具有所述待測消息屬性的消息進行處理的已有結果;根據所述目標消息的處理結果與所述現有處理結果,得到測試結果。為解決上述技術問題,本申請實施例提供一種消息處理系統的測試裝置,包括:測試請求接收模塊,用于接收針對消息處理系統的測試請求,所述測試請求攜帶有:待測消息屬性;目標消息確定模塊,用于根據所述待測消息屬性,在預設消息庫內確定出目標消息,所述目標消息具有所述待測消息屬性;目標結果獲取模塊,用于將所述目標消息發送至所述消息處理系統,并得到所述消息處理系統針對所述目標消息的處理結果;現有結果確定模塊,用于根據所述待測消息屬性,在預設結果庫內確定出現有處理結果,所述現有處理結果是所述消息處理系統針對具有所述待測消息屬性的消息進行處理的已有結果;測試結果生成模塊,用于根據所述目標消息的處理結果與所述現有處理結果,得到測試結果。由以上本申請實施例提供的技術方案可見,本申請實施例所提供的消息處理系統的測試方法和測試裝置,在接收到測試請求時,直接根據測試請求中攜帶的待測消息屬性,從存儲有大量消息的預設消息庫內提取消息來對消息處理系統進行測試,并將測試結果與存儲有預設消息庫內相應消息的現有處理結果進行比對,實現無人工參與的情況下,對消息處理系統進行自動測試,提高了測試效率。附圖說明為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本申請實施例中消息處理系統系統和測試裝置的連接關系圖。圖2為本申請實施例中用于消息處理系統的測試方法的過程。圖3為本申請另一實施例中用于消息處理系統的測試方法的過程。圖4為本申請實施例中用于消息處理系統的測試裝置的模塊圖。具體實施方式本申請實施例提供一種消息處理系統的測試方法和裝置。為了使本
技術領域:
的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。圖1為本申請實施例中消息處理系統系統和測試裝置的連接關系圖。消息處理系統可以包括相互連接的消息發送端110和消息接收端120,用戶通過操作消息發送端110向消息接收端120發送消息,這個消息可以是例如電子郵件消息或即時通訊消息等用于傳遞信息的通訊類消息,也可以是例如電商平臺上的產品交易消息、訂單消息,或游戲平臺上的游戲裝備贈送消息、游戲人物使用消息等用于描述用戶在這些平臺上的操作行為的業務場景類信息,消息接收端120接收到消息后,基于已有處理邏輯對消息進行處理,并得到處理結果,此為本領域普通技術人員所熟知的技術,在此不作贅述。當然,在本申請其他實施例中,消息處理系統還可以包括在消息發送端110和消息接收端120之間的消息中心(未圖示),通過該消息中心依照已有轉發 邏輯,將消息發送端110所發出的消息轉發至相應的消息接收端120,其同樣為本領域普通技術人員所熟知的技術,在此不作贅述。消息發送端110和消息接收端120均是包括能夠發出并接收數據的通信模塊的裝置,例如可以是臺式計算機、膝上型計算機、平板計算機、智能手機、手持式計算機、個人數字助理(“pda”)等設備。消息處理系統還包括與消息接收端120連接的預設結果庫130,預設結果庫130可以是業內常見的存儲數據的載體,例如計算機硬盤。消息接收端120完成對消息的處理后,將該消息的處理結果與該消息關聯后一并發送至預設結果庫130,便于后續對這些處理結果的查詢。測試裝置200與消息處理系統相互連接,消息處理系統接收到待處理的消息后,會將消息傳輸至測試裝置200。在本申請實施例中,測試裝置200與消息接收端120連接,從消息接收端120接收消息后,將接收到消息后將消息傳輸至預設消息庫300以做存儲。由于測試裝置200所接收到的消息是消息處理系統已處理的或即將處理的消息,這些消息體現了消息處理系統的處理歷史,后續對預設消息庫300內消息進行回溯則能夠完整還原消息處理系統的處理歷史。測試裝置200還與預設結果庫130連接,以從預設結果庫130查看消息處理系統所處理消息的已有結果。通過設定預設消息庫300,在測試裝置200有消息查詢需求時,可以直接對預設消息庫300內消息進行查詢,無需再根據消息處理系統的消息處理歷史,人工進行業務回溯來生成相應的消息,有效節約了人力成本。當然,在本申請其他實施例中,預設消息庫300還可以直接與消息處理系統連接,從消息處理系統接收并存儲用于體現該系統處理歷史的消息;其中,預設消息庫300還與測試裝置200連接,以便于測試裝置200從預設消息庫300查閱消息。預設消息庫300同樣可以是目前常見的存儲數據的載體,例如計算機硬盤等,在這些計算機硬盤內查詢得到所需的消息,為本領域普通技術人員所熟知 的技術,在此不做贅述。值得注意的是,在消息處理系統、測試裝置200、預設信息庫300均通過網絡進行消息傳輸,網絡可以是包括有線或無線電信裝置,可以包括局域網(“lan”)、廣域網(“wan”)、內部網、互聯網、移動電話網絡、虛擬專用網(vpn)、蜂窩式或其它移動通信網絡、藍牙、nfc或其任何組合。圖2為本申請實施例中用于消息處理系統的測試方法的過程,以下結合圖1所示消息處理系統系統和測試裝置的連接關系圖來詳述該測試方法。前述測試方法的執行主體可以是測試裝置200,該方法包括如下步驟:s10、接收針對消息處理系統的測試請求,測試請求攜帶有:待測消息屬性。測試請求可以是由用戶操作測試裝置200所產生的,也可以是由測試裝置200依照預設測試邏輯來周期性或隨機性產生的,測試裝置200接收到測試請求后,執行后續步驟對消息處理系統進行測試。其中,無論何種類型的測試請求,測試請求均攜帶有:待測消息屬性。在本申請實施例中,待測消息屬性可以從作為測試目標的消息處理系統所處理的消息的消息屬性中選定得到。由于待測消息屬性是從消息處理系統所處理的消息的消息屬性中選定得到,含有待測消息屬性測試請求總能用于對消息處理系統進行測試。其中,消息處理系統所處理的消息的消息屬性包括:消息的發起者身份屬性、消息在消息處理系統內的流水號屬性、消息的業務場景屬性、消息的接受者身份屬性、消息的發起時間段屬性等,待測消息屬性可以包括上述消息屬性至少一項。以消息的發起者身份屬性為例,則選出來用于對消息處理系統進行測試的待測消息為屬于同一個或同一批發起者的消息,在此不做贅述。s30、根據待測消息屬性,在預設消息庫內確定出目標消息,目標消息具有待測消息屬性。由于待測消息屬性是從作為測試目標的消息處理系統所處理的消息的消 息屬性中選定得到,而預設消息庫300內存儲的即為消息處理系統已處理的或即將處理的消息,根據待測消息屬性總能從預設消息庫300內確定出具有待測消息屬性的目標消息。以消息處理系統為電商平臺,測試請求攜帶有消息的發起者身份屬性為例,預設消息庫300內存儲有電商平臺的交易消息,消息的發起者身份屬性可以體現為發起者在電商平臺注冊的賬號,根據注冊賬號可以在預設消息庫300內選出該賬戶發起的消息,此為本領域普通技術人員所熟知的技術,在此不做贅述。s50、將目標消息發送至消息處理系統,并得到消息處理系統針對目標消息的處理結果。在確定目標消息后,停止消息處理系統當前的業務處理進程以執行測試操作。消息處理系統接收到由測試裝置200發送的目標消息后,對這些目標消息進行處理,并得到處理結果。延續上例,假設消息處理系統接收到的目標消息包括:屬于同一個用戶的訂單創建消息、訂單支付消息、訂單確認消息及訂單評價消息,這些目標消息的處理結果如表1所示:序號目標消息類型處理結果1訂單創建消息訂單創建成功2訂單支付消息訂單支付成功3訂單確認消息訂單確認成功4訂單評價消息訂單評價成功表1s70、根據待測消息屬性,在預設結果庫內確定出現有處理結果,現有處理結果是消息處理系統針對具有待測消息屬性的消息進行處理的已有結果。由于預設結果庫130存儲了消息處理系統所處理的消息的處理結果以及與這些結果相關聯的消息,在預設結果庫130內確定具有待測消息屬性的消息(該 消息與目標消息的內容一致),進而確定與這些消息關聯的處理結果,即為消息處理系統針對具有待測消息屬性的消息的已有處理結果。仍延續上例,假設消息處理系統針對具有待測消息屬性的消息的現有處理結果如表2所示:序號目標消息類型處理結果1訂單創建消息訂單創建成功2訂單支付消息訂單支付成功3訂單確認消息訂單確認成功4訂單評價消息訂單評價成功表2s90、根據目標消息的處理結果與現有處理結果,得到測試結果。由于在消息處理系統的處理過程中,步驟s50所用的目標消息和步驟s70所用的消息實質為相同的消息,若是消息處理系統針對目標消息的處理結果和現有處理結果相同,則表明消息處理系統運行正常并能得到一致的處理結果,相應的測試結果即為:消息處理系統運行正常,反之,若是消息處理系統針對目標消息的處理結果和現有處理結果不同,則表明消息處理系統運行異常,難以得到一致處理結果,則相應的測試結果即為:消息處理系統運行異常。結合表1和表2的數據,對于訂單評價消息,消息處理系統的處理結果不同,表明消息處理系統在處理相同的訂單評價消息時,處理結果出現不一致,則對于消息處理系統的測試結果即為:消息處理系統發生異常。綜上,本申請實施例所提供的消息處理系統的測試方法,在接收到測試請求時,直接根據測試請求中攜帶的待測消息屬性,從存儲有大量消息的預設消息庫內提取消息來對消息處理系統進行測試,并將測試結果與存儲有預設消息庫內相應消息的現有處理結果進行比對,實現無人工參與的情況下,對消息處理系統進行自動測試,提高了測試效率圖3為本申請另一實施例中用于消息處理系統的測試方法的過程,與圖2 所示的測試方法相比,區別在于,還包括位于步驟s30和s50之間的如下步驟:s40、在目標消息的數量超過一個時,根據目標消息的業務場景屬性對目標消息進行排序,得到編排后消息序列。在實際應用中,目標消息是逐個進入消息處理系統以被處理的,通過根據目標消息的業務場景屬性對這些目標消息進行排序,得到編排后消息序列,在利用編排后消息序列進行測試,編排后消息序列可以與目標消息原有的順序相同或不同,以適應不同的測試需求。業務場景屬性用于描述消息所適用的業務邏輯中各個場景,由于業務邏輯是具有順序的,則業務場景屬性也具有順序。仍延續上例,用于電商平臺的各個消息的業務場景屬性均是基于電商交易業務邏輯中各場景來形成的,業務場景屬性的順序根據電商交易業務邏輯的順序來確定。在本申請實施例中,可以根據目標消息的業務場景屬性的順序對目標消息進行正向排序、反向排序、或隨機排序。其中,正向排序后的消息的順序與目標消息的業務場景屬性的順序一致,反向排序后的消息的順序與目標消息的業務場景屬性的順序相反,隨機排序后的消息的順序是將目標消息的業務場景屬性的順序經過隨機打亂所得。如表1和表2所示,假設電商平臺的消息包括:訂單創建消息、訂單支付消息、訂單確認消息和訂單評價消息,顯然,業務場景屬性按照順序包括:訂單創建屬性、訂單支付屬性、訂單確認屬性和訂單評價屬性。則對電商平臺的消息進行排序處理后所得消息可以如表3所示:表3與圖2所示的測試方法相比,步驟s50也調整為s50’:將編排后消息序列發送至消息處理系統,并得到消息處理系統針對編排后消息序列的處理結果。通過利用編排后消息序列作為目標消息進行測試,能夠模擬一些因網絡延遲等原因導致的消息處理系統所接收到的消息的次序與其業務邏輯不符的場景,提高消息處理系統的測試完整性。圖4為本申請實施例中用于消息處理系統的測試裝置的模塊圖。該測試裝置的運行原理與前述測試方法一致,其原理細節可參前述測試方法,在此不做贅述。該測試裝置,包括:測試請求接收模塊210,用于接收針對消息處理系統的測試請求,測試請求攜帶有:待測消息屬性;目標消息確定模塊230,用于根據待測消息屬性,在預設消息庫內確定出目標消息,目標消息具有待測消息屬性;目標結果獲取模塊250,用于將目標消息發送至消息處理系統,并得到消息處理系統針對目標消息的處理結果;現有結果確定模塊270,用于根據待測消息屬性,在預設結果庫內確定出現有處理結果,現有處理結果是消息處理系統針對具有待測消息屬性的消息進行處理的已有結果;測試結果生成模塊290,用于根據目標消息的處理結果與現有處理結果,得到測試結果。本申請實施例中,預設消息庫內消息均是消息處理系統所接收到的消息。本申請實施例中,待測消息屬性包括如下至少一項:消息的發起者身份屬性、消息在消息處理系統內的流水號屬性、消息的業務場景屬性、消息的接受者身份屬性、消息的發起時間段屬性。本申請實施例中,測試裝置還包括排序模塊,用于:在目標消息的數量超過一個時,根據目標消息的業務場景屬性對目標消息進行排序,得到編排后消息序列;目標結果獲取模塊,具體用于:將編排后消息序列發送至消息處理系統,并得到消息處理系統針對編排后消息序列的處理結果。本申請實施例中,目標結果獲取模塊,具體用于:根據目標消息的業務場景屬性的順序對目標消息進行正向排序、反向排序、或隨機排序。本申請實施例所提供的消息處理系統的測試裝置,在接收到測試請求時,直接根據測試請求中攜帶的待測消息屬性,從存儲有大量消息的預設消息庫內提取消息來對消息處理系統進行測試,并將測試結果與存儲有預設消息庫內相應消息的現有處理結果進行比對,實現無人工參與的情況下,對消息處理系統進行自動測試,提高了測試效率。在20世紀90年代,對于一個技術的改進可以很明顯地區分是硬件上的改進(例如,對二極管、晶體管、開關等電路結構的改進)還是軟件上的改進(對于方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬件電路結構的直接改進。設計人員幾乎都通過將改進的方法流程編程到硬件電路中來得到相應的硬件電路結構。因此,不能說一個方法流程的改進就不能用硬件實體模塊來實現。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現場可編程門陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶對器件編程來確定。由設計人員自行編程來把一個數字系統“集成”在一片pld上,而不需要請芯片制造廠商來設計和制作專用的集成電路芯片2。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logiccompiler)”軟件來實現,它與程序開發撰寫時所用的軟件編譯器相類似,而要編譯之前的原始代 碼也得用特定的編程語言來撰寫,此稱之為硬件描述語言(hardwaredescriptionlanguage,hdl),而hdl也并非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog2。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬件描述語言稍作邏輯編程并編程到集成電路中,就可以很容易得到實現該邏輯方法流程的硬件電路。控制器可以按任何適當的方式實現,例如,控制器可以采取例如微處理器或處理器以及存儲可由該(微)處理器執行的計算機可讀程序代碼(例如軟件或固件)的計算機可讀介質、邏輯門、開關、專用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲器控制器還可以被實現為存儲器的控制邏輯的一部分。本領域技術人員也知道,除了以純計算機可讀程序代碼方式實現控制器以外,完全可以通過將方法步驟進行邏輯編程來使得控制器以邏輯門、開關、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬件部件,而對其內包括的用于實現各種功能的裝置也可以視為硬件部件內的結構。或者甚至,可以將用于實現各種功能的裝置視為既可以是實現方法的軟件模塊又可以是硬件部件內的結構。上述實施例闡明的系統、裝置、模塊或單元,具體可以由計算機芯片或實體實現,或者由具有某種功能的產品來實現。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然, 在實施本申請時可以把各單元的功能在同一個或多個軟件和/或硬件中實現。本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或閃存(flashram)。內存是計算機可讀介質的示例。計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、靜態隨機存取存儲器(sram)、動態隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitorymedia),如調制的數據信號和載波。還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。本領域技術人員應明白,本申請的實施例可提供為方法、系統或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位于包括存儲設備在內的本地 和遠程計算機存儲介質中。本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。以上所述僅為本申請的實施例而已,并不用于限制本申請。對于本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求范圍之內。當前第1頁12