本發明涉及測試技術領域,尤其涉及一種數據通信測試方法及裝置。
背景技術:
SWIFT(Society for Worldwide Interbank Financial Telecommunication,環球同業銀行金融電信協會)報文作為一類向全球8000多家金融機構提供高度安全、可靠、標準化、自動化的通訊服務,越來越受到各金融業的重視。目前國內大多數銀行都已使用SWIFT報文進行國際金融結算、收付清算等金融活動,這對銀行系統中報文的驗證工作也提出了更高的要求。
目前,對報文的測試基本通過手工完成。測試SWIFT報文時,需手工一一對報文的各個欄位的相關屬性和內容進行驗證,隨著報文涉及的欄位增多,欄位格式規則變得復雜,驗證報文所花費的時間和人力成倍上升。例如,若驗證單個欄位需花費30秒,一個普通報文包含60個欄位,假設包含有效數據的欄位的占比為50%,則驗證一個該種報文所需時間長達15分鐘。在一測試周期內需對此類報文測試4次,則驗證報文的時間將達到1小時。所以,手工測試報文的工作效率通常較低下。
而且,一份完整的報文基本以代碼、固定格式的數值來定義,這要求測試人員在準確掌握報文的業務含義、欄位結構與規則等的前提下開展測試,對各區塊、欄位內容的必輸性、正確性、格式等進行驗證。手工驗證報文難免出現測試人員技術能力不足,測試數據覆蓋面不全等問題,這將直接影響測試結果的正確性。所以,手工測試報文的工作質量得不到保證。
技術實現要素:
本發明提供一種數據通信測試方法及裝置,以提高報文測試的效率及質量。
本發明提供一種數據通信測試方法,包括:根據待測報文的類型和SWIFT報文國際標準創建報文模板;利用所述待測報文的待測欄位和所述報文模板生成核對報文;利用所述SWIFT報文國際標準和所述核對報文分別對所述待測報文的報文格式和報文內容進行校驗,分別生成格式校驗結果和內容校驗結果。
一個實施例中,該方法還包括:根據所述格式校驗結果和所述內容校驗結果,按設定組合格式生成所述待測報文的異常欄位信息;根據所述異常欄位信息對所述待測報文中的異常欄位進行標注,并將標注后的待測報文另存為測試結果報文;根據所述測試結果報文生成包括報文類型、待測欄位、格式校驗結果及內容校驗結果的信息的報文測試報告。
一個實施例中,根據待測報文的類型和SWIFT報文國際標準創建報文模板,包括:根據所述SWIFT報文國際標準和所述待測報文的類型定義所述報文模板的報文結構;根據所述報文結構初始化得到初始模板;根據所述報文結構和所述初始模板創建所述報文模板。
一個實施例中,利用所述待測報文的待測欄位和所述報文模板生成核對報文,包括:根據所述待測欄位為所述報文模板設置欄位數據,生成初始報文;依據所述初始模板的欄位限定符及欄位格式要求,為所述初始報文中尚未設置欄位數據的必輸欄位補充設置欄位數據,生成所述核對報文。
一個實施例中,根據所述SWIFT報文國際標準和所述待測報文的類型定義所述報文模板的報文結構,包括:從所述SWIFT報文國際標準抽取標準欄位;根據所述待測報文的類型對所述標準欄位的內容進行結構化整理,生成所述報文結構。
一個實施例中,根據所述報文結構初始化得到初始模板,包括:根據所述報文結構對欄位選項顯示、欄位限定符取值、欄位數據輸入、欄位數據格式校驗及欄位區塊復用進行初始化,生成所述初始模板。
一個實施例中,根據所述報文結構和所述初始模板創建所述報文模板,包括:根據所述報文結構為所述初始模板添加欄位注釋;根據添加欄位注釋后的初始模板生成所述報文模板。
一個實施例中,根據所述待測欄位為所述報文模板設置欄位數據,生成初始報文,包括:為所述報文模板上與所述待測欄位相對應的核對欄位設置核對標記,并為所述核對欄位設置相應的欄位數據期望值;依據所述報文模板的欄位限定符及欄位格式要求,對設置欄位數據期望值后的核對欄位進行格式校驗;對格式校驗通過的核對欄位進行結構化處理,生成所述初始報文。
一個實施例中,利用所述SWIFT報文國際標準對所述待測報文的報文格式進行校驗,包括:利用所述SWIFT報文國際標準對所述待測報文的區塊涵蓋性、區塊必輸性、欄位涵蓋性、欄位必輸性、限定符及欄位數據格式進行校驗,生成所述格式校驗結果。
一個實施例中,利用所述核對報文對所述待測報文的報文內容進行校驗,包括:依據所述核對標記獲取所述核對欄位的位置信息;根據所述位置信息從所述待測報文和所述核對報文分別提取待測欄位數據和核對欄位數據;比較所述待測欄位數據和相應欄位的核對欄位數據,生成所述內容校驗結果。
本發明提供一種數據通信測試裝置,包括:報文模板創建單元,用于根據待測報文的類型和SWIFT報文國際標準創建報文模板;核對報文生成單元,用于利用所述待測報文的待測欄位和所述報文模板生成核對報文;報文校驗單元,用于利用所述SWIFT報文國際標準和所述核對報文分別對所述待測報文的報文格式和報文內容進行校驗,分別生成格式校驗結果和內容校驗結果。
一個實施例中,該裝置還包括:異常欄位信息生成單元,用于根據所述格式校驗結果和所述內容校驗結果,按設定組合格式生成所述待測報文的異常欄位信息;測試結果報文生成單元,用于根據所述異常欄位信息對所述待測報文中的異常欄位進行標注,并將標注后的待測報文另存為測試結果報文;報文測試報告生成單元,用于根據所述測試結果報文生成包括報文類型、待測欄位、格式校驗結果及內容校驗結果的信息的報文測試報告。
一個實施例中,所述報文模板創建單元包括:報文結構生成模塊,用于根據所述SWIFT報文國際標準和所述待測報文的類型定義所述報文模板的報文結構;初始模板生成模塊,用于根據所述報文結構初始化得到初始模板;報文模板創建模塊,用于根據所述報文結構和所述初始模板創建所述報文模板。
一個實施例中,所述核對報文生成單元包括:初始報文生成模塊,用于根據所述待測欄位為所述報文模板設置欄位數據,生成初始報文;核對報文生成模塊,用于依據所述初始模板的欄位限定符及欄位格式要求,為所述初始報文中尚未設置欄位數據的必輸欄位補充設置欄位數據,生成所述核對報文。
一個實施例中,所述報文結構生成模塊包括:標準欄位抽取模塊,用于從所述SWIFT報文國際標準抽取標準欄位;結構化整理模塊,用于根據所述待測報文的類型對所述標準欄位的內容進行結構化整理,生成所述報文結構。
一個實施例中,所述初始模板生成模塊包括:初始化模塊,用于根據所述報文結構對欄位選項顯示、欄位限定符取值、欄位數據輸入、欄位數據格式校驗及欄位區塊復用進行初始化,生成所述初始模板。
一個實施例中,所述報文模板創建模塊包括:欄位注釋模塊,用于根據所述報文結構為所述初始模板添加欄位注釋;模板生成模塊,用于根據添加欄位注釋后的初始模板生成所述報文模板。
一個實施例中,所述初始報文生成模塊包括:期望值錄入模塊,用于為所述報文模板上與所述待測欄位相對應的核對欄位設置核對標記,并為所述核對欄位設置相應的欄位數據期望值;期望值校驗模塊,用于依據所述報文模板的欄位限定符及欄位格式要求,對設置欄位數據期望值后的核對欄位進行格式校驗;欄位結構化模塊,用于對格式校驗通過的核對欄位進行結構化處理,生成所述初始報文。
一個實施例中,所述報文校驗單元包括:報文格式校驗模塊,用于利用所述SWIFT報文國際標準對所述待測報文的區塊涵蓋性、區塊必輸性、欄位涵蓋性、欄位必輸性、限定符及欄位數據格式進行校驗,生成所述格式校驗結果。
一個實施例中,所述報文校驗單元包括:欄位位置獲取模塊,用于依據所述核對標記獲取所述核對欄位的位置信息;欄位數據提取模塊,用于根據所述位置信息從所述待測報文和所述核對報文分別提取待測欄位數據和核對欄位數據;報文內容校驗模塊,用于比較所述待測欄位數據和相應欄位的核對欄位數據,生成所述內容校驗結果。
本發明實施例的數據通信測試方法及裝置,待測報文的格式和內容分別校驗,能夠有效提升測試效率。在確定待測報文的類型后,即可對照SWIFT報文國際標準,對測試報文的各種欄位格式進行校驗,能夠有效排除各種格式問題,具有較高檢查效率,無需測試人員掌握報文的結構內容,以此能夠提高測試質量。本發明依托SWIFT報文國際標準對待測報文進行校驗,能夠更精準地把握測試重點,能夠提高測試效率及質量。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。在附圖中:
圖1是本發明一實施例的數據通信測試方法的流程示意圖;
圖2是本發明一實施例中報文模板創建方法的流程示意圖;
圖3是本發明一實施例中報文模板的報文結構生成方法的流程示意圖;
圖4是本發明一實施例中根據報文結構初始化得到初始模板的示意圖;
圖5是本發明一實施例中報文模板創建方法的流程示意圖;
圖6是本發明一實施例中報文模板的結構示意圖;
圖7是本發明一實施例中核對報文生成方法的流程示意圖;
圖8是本發明一實施例中初始報文生成方法的流程示意圖;
圖9是本發明一實施例中欄位數據錄入的示意圖;
圖10是本發明一實施例中針對待測報文中各區塊及區塊下各欄位的屬性進行校驗的方法流程示意圖;
圖11是本發明一實施例中針對待測報文中各欄位的限定符進行校驗的方法流程示意圖;
圖12是本發明一實施例中針對待測報文中各欄位的數據格式進行校驗的方法流程示意圖;
圖13是本發明一實施例中報文內容校驗方法的流程示意圖;
圖14是本發明另一實施例的數據通信測試方法的流程示意圖;
圖15是本發明又一實施例的數據通信測試方法的流程示意圖;
圖16是本發明一實施例的數據通信測試裝置的結構示意圖;
圖17是本發明一實施例中報文模板創建單元的結構示意圖;
圖18是本發明一實施例中報文結構生成模塊的結構示意圖;
圖19是本發明一實施例中報文模板創建模塊的結構示意圖;
圖20是本發明一實施例中核對報文生成單元的結構示意圖;
圖21是本發明一實施例中初始報文生成模塊的結構示意圖;
圖22是本發明一實施例中報文校驗單元的結構示意圖;
圖23是本發明另一實施例的數據通信測試裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚明白,下面結合附圖對本發明實施例做進一步詳細說明。在此,本發明的示意性實施例及其說明用于解釋本發明,但并不作為對本發明的限定。
針對目前通過手工檢查、編制和分析報文而導致SWIFT報文測試效率低及質量得不到保證的問題,發明人通過創造性勞動設計出一種數據通信測試方法,能夠有效解決手工驗證報文時所導致的效率和質量問題。
圖1是本發明一實施例的數據通信測試方法的流程示意圖。如圖1所示,本發明實施例的數據通信測試方法,可包括步驟:
S110:根據待測報文的類型和SWIFT報文國際標準創建報文模板;
S120:利用所述待測報文的待測欄位和所述報文模板生成核對報文;
S130:利用所述SWIFT報文國際標準和所述核對報文分別對所述待測報文的報文格式和報文內容進行校驗,分別生成格式校驗結果和內容校驗結果。
上述待測報文的類型可由三個數字表示,一般可定義為:MT nnn,例如MT950、MT202、MT541等。其中,第1個n可表示類目,可用于描述報文的基礎商業功能,例如類目1=客戶支付和支票;第2個n可表示分組,可用于描述某一特定類目中的報文功能,例如11n=類目1的支票支付報文;第3個n可表示類型,可用于描述具體功能,例如112=支票止付請求的狀態。
在上述步驟S110中,該待測報文可以是從各種應用系統獲取的需要進行測試的報文。該待測報文的類型可以是SWIFT報文國際標準中的各種報文類型,具體報文類型可依據SWIFT報文國際標準的說明確定。
在SWIFT報文國際標準中,報文通常以區塊劃分其內容,一個區塊一般包含若干個欄位。按必輸性,報文區塊可分為必輸區塊(Mandatory Sequence)和可選區塊(Optional Sequence);按可重復性,報文區塊可分為可重復區塊和不可重復區塊。欄位(Field)是報文主體部分的主要組成元素,主要由欄位標簽名、限定符和欄位數據內容組成,欄位數據內容具有一定的欄位格式。
欄位標簽名(Field Tag)顯示欄位的“信息內容”,一般以“:”進行分隔,例如按照“:nn[a]:”的格式進行定義。其中,“n”表示數字,“a”表示欄位的選項,一般以大寫英文字母表示,而且“a”的左右用中括號括起來,表示中括號中的內容可以省略。具體欄位標簽名的選項可根據SWIFT國際標準中的標準欄位標簽名格式確定。
限定符(Qualifier)可以是部分欄位中開頭的字符內容,通常由1-4個字符組成,一個限定符表示該欄位所起的作用。在SWIFT報文國際標準中對各欄位是否存在限定符且有哪些限定符均有注明。欄位數據內容是各欄位所包括的具體數據,例如日期內容20140620、金額內容10000等,欄位數據內容按照SWIFT報文國際標準上對各欄位所規定的欄位格式來定義取數。
欄位格式(Types of Characters)是指欄位標簽名后所帶數據內容的格式要求,即欄位數據格式,一般以“數字+類型”表示,欄位格式中的類型可分以下幾類:
n:只表示數字
a:只表示大寫字母
c:表示數字或大寫字母
x:表示SWIFT報文中所有的字符(包括數字、字母及其他特殊字符)
h:表示數字或大寫字母A-F
d:表示小數
!:表示固定長度
*:表示行數
-:表示最小長度和最大長度。
例如:8n:表示最大長度為8的數字;4!C:表示固定長度為4的字符;4*35x:表示所填入的內容最多4行,每行最多35個字符;16-64h:表示最小長度為16、最大長度為64位的數字或字符(A-F)。
一個實施例中,可以將上述報文模板存儲起來,當需要再次對同樣類型的報文進行測試時可以直接提取使用,不必重復創建報文模板。另一實施例中,可以針對上述SWIFT報文國際標準中的各種報文類型分別創建不同的報文模板,當需要對待測報文進行測試時,可從創建的所有報文模板中選取相應類型的報文模板,以對該待測報文進行測試。如此一來,可以減少例如在一個測試周期內創建報文模板花費的時間,進而能夠提高報文測試效率。
根據待測報文的類型和SWIFT報文國際標準創建好報文模板后,可在該報文模板的基礎上,依據待測報文的待測欄位的信息,生成用于與待測報文進行核對的報文,即核對報文。
在上述步驟S120中,該待測報文的待測欄位一般是該待測報文中納入測試范圍的各種欄位區域。不同待測欄位的限定符及欄位數據內容可根據SWIFT報文國際標準中欄位格式的說明進行增加或刪減。針對上述待測報文的待測欄位的內容,可以為該核對報文設置欄位數據內容,用于與上述待測報文的欄位數據內容進行核對,以實現對待測報文的內容進行校驗。依據上述SWIFT報文國際標準,可以為該核對報文設置報文格式,可包括欄位標簽名、限定符、欄位數據格式等一種或多種格式。
在上述步驟S130中,在生成的上述核對報文的基礎上,可以實現分別對待測報文的報文格式和報文內容進行校驗核對。具體而言,在確定待測報文的報文類型后,即可對照SWIFT報文國際標準中的報文格式,對待測報文的所有欄位進行格式校驗,不受報文內容校驗過程的影響,報文格式校驗過程簡便、針對性強,以此可以提高報文測試的效率。依托SWIFT報文國際標準校驗報文格式,無需測試人員掌握報文的結構內容,以此能夠提高測試結果。而且,自動檢查待測報文的格式可僅需秒級的時間,以此可進一步提高報文的測試效率。此外,在生成核對報文后,即可根據核對報文的欄位數據內容對待測報文的欄位數據內容進行校驗,校驗內容單一,不易發生錯誤,以此可以提高報文測試的準確度。
本發明實施例的數據通信測試方法,首先根據待測報文的報文類型和SWIFT報文國際標準創建報文模板,再利用該待測報文的待測欄位和該報文模板生成核對報文,并利用SWIFT報文國際標準對該待測報文的報文格式進行校驗,利用該核對報文對該待測報文的報文內容進行校驗。待測報文的格式校驗和內容校驗分別進行,格式校驗僅在知曉報文類型的情況下即可進行,以此可提高校驗效率,依托SWIFT報文國際標準校驗報文格式,無需測試人員掌握報文的結構內容,可提高報文測試質量,而且,校驗針對性強,可以提高校驗效率和校驗結果的準確度。進一步,報文模板適用于同一報文類型,同樣類型待測報文不必重建報文模板。
本發明實施例中的報文模板可以通過多種具體的方式進行創建。例如,先根據SWIFT報文國際標準抽取標準欄位并初始化報文結構,再依據設定規則創建報文模板,并可以在其中的每個欄位末添加對應的欄位數據內容的注釋。
圖2是本發明一實施例中報文模板創建方法的流程示意圖。如圖2所示,在上述步驟S110中,根據待測報文的類型和SWIFT報文國際標準創建報文模板的方法,具體可包括步驟:
S111:根據所述SWIFT報文國際標準和所述待測報文的類型定義所述報文模板的報文結構;
S112:根據所述報文結構初始化得到初始模板;
S113:根據所述報文結構和所述初始模板創建所述報文模板。
在上述步驟S111中,該報文結構可以是一系列反映報文模板的結構的信息。該SWIFT報文國際標準可以是SWIFT組織發布的最新國際標準,可以是英文版。該報文模板的報文結構可以通過結構化定義設定報文信息得到,例如,可以通過結構化定義該SWIFT報文國際標準得到。根據設定的報文類型,例如待測報文的類型,可以從該SWIFT報文國際標準中匹配出該類型所對應的標準信息,進而可根據該標準信息整理得到報文模板的報文結構。
具體而言,對SWIFT報文國際標準的結構化定義,可以是將以報文類型的各欄位中的相關內容進行結構化地整理,整理的內容可以包括SWIFT報文國際標準中的內容。例如,可以對欄位標簽名中的各選項所對應的內容進行整理,可以對欄位數據內容在不同選項下的對應聯動進行整理,可以對限定符進行整理,可以對欄位標簽名的注釋及備注進行整理等。
在上述步驟S112中,根據上述報文結構,例如結構性定義后的標準信息,可以依據各區塊、各欄位的順序,進行初始化。初始化處理可將報文結構的內容轉換成模板形式。例如,根據報文結構中欄位的選項對欄位的選項顯示進行初始化,根據報文結構中的限定符的信息對限定符的取值進行初始化,根據報文結構中的欄位號對欄位的數據內容的輸入進行初始化,根據報文結構中的欄位數據格式的信息對欄位數據格式的校驗進行初始化,根據報文結構中欄位的不同選項的信息可以初始化生成相應的選項內容。通過上述步驟S112可將上述報文結構處理成模板。
在上述步驟S113中,根據上述報文結構和上述初始模板可在前臺創建標準化的報文模板,以便系統管理者或使用者利用該報文模板生成核對報文。本發明實施例中待測報文一般是根據SWIFT報文國際標準得到的標準化報文,所以,該標準化的報文模板可以和標準化的待測報文很好地對應,有利于提高對待測報文進行格式校驗的準確性,提高測試結果的質量。
一個實施例中,上述報文模板中可以包括標示必輸欄位的標記,例如以星號作為標記,如此一來,可使系統管理者或使用者容易、快速地識別報文模板中的必輸欄位,有助于提高后續在該報文模板的基礎上生成核對報文的效率。
圖3是本發明一實施例中報文模板的報文結構生成方法的流程示意圖。如圖3所示,在上述步驟S111中,根據所述SWIFT報文國際標準和所述待測報文的類型定義所述報文模板的報文結構的方法,可包括步驟:
S1111:從所述SWIFT報文國際標準抽取標準欄位;
S1112:根據所述待測報文的類型對所述標準欄位的內容進行結構化整理,生成所述報文結構。
本實施例中,從SWIFT報文國際標準抽取標準欄位,并根據待測報文的類型對抽取的標準欄位的內容進行結構化整理得到的報文結構,可以與待測報文的格式信息相對應,有助于實現對待測報文進行格式校驗。
一個具體實施例中,SWIFT報文國際標準可如表1所示,該SWIFT報文國際標準為英文版,其中可包括欄位必輸性、欄位號、限定符、欄位注釋、欄位選項等信息。在上述步驟S1111中,可根據需要從表1所示的SWIFT報文國際標準中抽取標準欄位的相關信息。
表1 SWIFT報文國際標準示例
表2是根據表1所示的SWIFT報文國際標準結構性定義的報文結構。在上述步驟S1112中,可根據表1所示的SWIFT報文國際標準抽取標準欄位的信息,并按一待測報文的類型經由結構化整理后得到如表2所示的報文結構。與表1相比,結構化整理后的表2的表結構有所調整,可增加備注、欄位中文名稱、欄位是否重復、區塊是否可選等信息,該些信息可根據待測報文的類型確定。
表2 根據SWIFT報文國際標準結構性定義的報文結構示例
一個實施例中,在上述步驟S112中,根據所述報文結構初始化得到初始模板的方法,可包括步驟:
S1121:根據所述報文結構對欄位選項顯示、欄位限定符取值、欄位數據輸入、欄位數據格式校驗及欄位區塊復用進行初始化,生成所述初始模板。
本實施例中,通過對欄位相關信息進行初始化,可以將結構化整理得到的報文結構轉化為模板,有助于實現報文模板的創建。
在上述步驟S1121中,可依據區塊順序和區塊下的欄位順序,對欄位選項顯示、欄位限定符取值、欄位數據輸入及欄位數據格式校驗進行初始化。其中,欄位選項顯示可根據報文結構中的欄位選項信息進行初始化,欄位限定符取值可根據報文結構中的相應欄位的限定符取值進行初始化,欄位數據輸入可以根據報文結構中的欄位數據內容初始化,欄位數據輸入位置可依據區塊及欄位的順序設置,欄位數據格式校驗可根據報文結構中相應欄位的數據格式要求進行初始化。若報文結構的欄位存在多個選項,則對欄位中的不同選項根據報文結構中的相應欄位相應選項的內容及格式進行初始化,可自動初始化成相應的選項內容。
通過上述步驟S1121可將結構化整理出來的報文結構處理成模板,具體地,例如可自動補錄冒號(例如欄位簽名中的冒號),可對有多選項的欄位標簽進行多選項的處理,可將限定符進行多選項的處理,可自動創建欄位數據的錄入區,并根據SWIFT報文國際標準中規定的欄位格式對輸入內容進行限制控制。同時,可針對不同選項,在限定符和欄位數據格式不一致時進行聯動控制。
在上述步驟S1121中,通過對欄位區塊復用進行初始化,可對重復區塊進行復用。例如,重復區塊開始處可以“+”號標志,若點擊該“+”號,可自動將本區塊復制顯示,同時“+”號變為“-”號,而若點擊該“-”號則可將重復區塊刪除,以此循環往復,可以提高模板創建效率。
圖4是本發明一實施例中根據報文結構初始化得到初始模板的示意圖。如圖4所示,左半部分是根據上述待測報文的類型對抽取的標準欄位的內容進行結構化整理生成的報文結構,該報文結構為多種形式,例如按欄位順序排列。根據該報文結構初始化可到右半部分所示的初始模板。該初始模板可包含欄位簽名、欄位數據輸入區、區塊復用標記“+”號、多選項等內容。在該初始模板中可以輸入欄位數據,并可對輸入內容進行格式校驗,不同的欄位選項可對應不同的格式控制方式。
圖5是本發明一實施例中報文模板創建方法的流程示意圖。如圖5所示,在上述步驟S113中,根據所述報文結構和所述初始模板創建所述報文模板的方法,可包括步驟:
S1131:根據所述報文結構為所述初始模板添加欄位注釋;
S1132:根據添加欄位注釋后的初始模板生成所述報文模板。
本實施例中,在上述步驟S1131中,根據上述報文結構的內容,例如上述報文結構中的欄位(英文)、欄位(中文)、備注及欄位格式等信息,為上述初始模板添加欄位注釋,再通過上述步驟S1132例如在前臺創建標準化的報文模板。報文模板中的欄位注釋可以方便使用者對報文模板的理解。
一個實施例中,可以先在報文結構中添加欄位注釋,再根據添加欄位注釋后的報文結構進行初始化得到報文模板。表3是添加報文注釋后的報文結構示例,如表3所示,每個欄位均可對應有相應的報文注釋。報文注釋中可包括準備日期/時間、限定符、欄位格式等信息,以此可以方便地理解本欄位的情況。
表3 添加報文注釋后的報文結構示例
圖6是本發明一實施例中報文模板的結構示意圖。如圖6所示,根據表3所示的報文結構和報文注釋可在前臺創建相應的報文模板。其中,每個欄位均可對應相應的欄位注釋,且必輸欄位可用星號表示,以便使用者直觀得知欄位信息。
圖7是本發明一實施例中核對報文生成方法的流程示意圖。如圖7所示,在上述步驟S120中,利用所述待測報文的待測欄位和所述報文模板生成核對報文的方法,可包括步驟:
S121:根據所述待測欄位為所述報文模板設置欄位數據,生成初始報文;
S122:依據所述初始模板的欄位限定符及欄位格式要求,為所述初始報文中尚未設置欄位數據的必輸欄位補充設置欄位數據,生成所述核對報文。
在上述步驟S121中,可以依據待測欄位的多種信息例如欄位名稱、欄位數據等為報文模板設置欄位數據,報文模板中的欄位數據可用于對待測報文進行內容校驗。
通過上述步驟S121可對核對報文中納入核對測試的欄位區域設置欄位數據。通過上述步驟S122可依據對欄位定義的限定符和格式的規則,進一步補齊待測報文和上述核對報文二者間未共同覆蓋部分的信息。如此一來,可以保證所有必輸欄位的信息完整,生成一個完整的核對報文。
一個實施例中,日期和周次為必輸項,但未納入核對測試的欄位區域,故可補齊日期和周次的信息,補齊日期和周次信息后的初始報文所存儲數據可如下所示:
<MSG TYPE="MT541">
<FIELD ID="1"NAME=":16R:"VALUE="GENL"TFLAG="0"/>
<FIELD ID="2"NAME=":20C:"VALUE=":SEME//ICBCTRANSMSG"TFLAG="1"http://>
<FIELD ID="3"NAME=":23G:"VALUE="NEWM/CODU"TFLAG="1"/>
<FIELD ID="4"NAME=":98A:"VALUE=":PREP//20140611"TFLAG="1"/>
<FIELD ID="5"NAME=":69A:"VALUE=":STAT//20140611/20140613"TFLAG="0"/>
<FIELD ID="6"NAME=":22F:"VALUE=":SFRE//WEEK"TFLAG="0"/>
</MSG>
一個實施例中,通過上述步驟S121~S122,可生成一個完整的報文,包含標簽、欄位、信息等所有內容,所生成的核對報文可如下所示:
:16R:GENL
:28E:1/ONLY
:20C::SEME//ICBCTRANSMSG
:23G:NEWM/CODU
:98a::PREP//20140611
:69a::STAT//20140611/20140613
:22F::SFRE//WEEK
:97A::SAFE//078100003677
:17B::ACTI//Y
:17B::CONS//N
:16S:GENL
......
圖8是本發明一實施例中初始報文生成方法的流程示意圖。如圖8所示,在上述步驟S121中,根據所述待測欄位為所述報文模板設置欄位數據,生成初始報文的方法,可包括步驟:
S1211:為所述報文模板上與所述待測欄位相對應的核對欄位設置核對標記,并為所述核對欄位設置相應的欄位數據期望值;
S1212:依據所述報文模板的欄位限定符及欄位格式要求,對設置欄位數據期望值后的核對欄位進行格式校驗;
S1213:對格式校驗通過的核對欄位進行結構化處理,生成所述初始報文。
在上述步驟S1211中,在上述報文模板的基礎上,對于與待測報文中應測試欄位對應的核對報文的欄位進行期望值/預期值錄入,即在核對報文中標識哪些欄位用于核對測試并設定核對結果,上述核對標識可存儲在TFLAG中。該期望值/預期值可用于與待測報文中待測欄位的內容進行比較,以對待測報文進行內容校驗。
本實施例中,在依據SWIFT報文國際標準抽取規則生成報文模板的基礎上,通過設置納入核對測試的欄位區域的預期值(期望值),并自動補齊必輸欄位,能夠準確地生成一份滿足所需欄位要求、欄位數據完整、格式正確的核對報文,從而能夠更精準把握測試重點。
圖9是本發明一實施例中欄位數據錄入的示意圖。如圖9所示,可對欄位數據例如日期/時間的期望值進行錄入,還可以對欄位的不同選項錄入不同的欄位數據。
在完成欄位數據錄入后,可通過上述步驟S1212對報文模板中錄入的欄位數據(期望值/預期值)進行格式校驗,以使報文模板欄位信息錄入遵循報文模板中已控制的限定符和格式等的要求。通過上述步驟S1213,可將報文模板中已標識的欄位和期望值進行結構化處理,并可存儲起來。一個實施例中,結構化后存儲的數據可如下所示:
<MSG TYPE="MT541">
<FIELD ID="1"NAME=":16R:"VALUE="GENL"TFLAG="0"/>
<FIELD ID="2"NAME=":20C:"VALUE=":SEME//ICBCTRANSMSG"TFLAG="1"/>
<FIELD ID="3"NAME=":23G:"VALUE="NEWM/CODU"TFLAG="1"/>
<FIELD ID="4"NAME=":98A"VALUE=":PREP//20140611"TFLAG="1"/>
<FIELD ID="5"NAME=":69A:"VALUE=""TFLAG="0"/>
<FIELD ID="6"NAME=":22F:"VALUE=""TFLAG="0"/>
</MSG>
在上述步驟S130中,對待測報文的報文內容校驗和報文格式校驗可以分別進行。
一個實施例中,在上述步驟S130中,利用所述SWIFT報文國際標準對所述待測報文的報文格式進行校驗的方法,可包括步驟:
S131:利用所述SWIFT報文國際標準對所述待測報文的區塊涵蓋性、區塊必輸性、欄位涵蓋性、欄位必輸性、限定符及欄位數據格式進行校驗,生成所述格式校驗結果。
在上述步驟S131中,區塊涵蓋性可指待測報文中是否存在一區塊或是否存在一多余區塊。欄位涵蓋性可指一區塊(例如必輸區塊)下是否存在一欄位或是否存在一多余欄位。欄位必輸性可知該欄位是否為必輸欄位。根據SWIFT報文國際標準中的區塊信息可以對待測報文的區塊屬性(包括區塊涵蓋性、區塊必輸性)進行校驗,根據SWIFT報文國際標準中的欄位信息可以對待測報文的欄位屬性(欄位涵蓋性、欄位必輸性、限定符及欄位數據格式)進行校驗。
通過上述步驟S131,可針對待測報文的報文格式進行校驗,包括區塊的校驗、限定符的校驗、欄位必輸性及數據格式的校驗等。本實施例的方法,能夠有效排除欄位缺失、限定符錯誤、欄位數據格式錯誤等問題。
圖10是本發明一實施例中針對待測報文中各區塊及區塊下各欄位的屬性進行校驗的方法流程示意圖。區塊屬性的校驗可包括區塊的必輸性的校驗,欄位屬性的校驗可包括區塊內各欄位標簽的正確性和必輸性的校驗,如圖10所示,具體校驗方法可包含如下步驟:
S301:根據SWIFT報文國際標準中的區塊,校驗待測報文(如MT541類報文)的必輸(Mandatory)區塊是否存在,若不存在,則將校驗結果記錄下來;
S302:在完成對必輸區塊的校驗后,根據SWIFT報文國際標準中的欄位,對必輸區塊中各個欄位的必輸性進行校驗,若其中缺少必輸欄位,則將校驗結果記錄下來;
S303:根據SWIFT報文國際標準中的欄位,校驗必輸區塊中是否存在非本區塊的欄位,若存在,則將校驗結果記錄下來;
S304:根據SWIFT報文國際標準中的區塊及欄位,校驗待測報文中可選區塊中各欄位的必輸性,若該可選區塊中缺少必輸欄位,則將校驗結果記錄下來;
S305:根據SWIFT報文國際標準中的欄位標簽名,對待測報文中各欄位標簽名的格式進行校驗,校驗各個欄位標簽名前后是否以冒號開始和結束,且當欄位標簽名的欄位選項為多個時其選項是否正確,若欄位標簽名的格式校驗結果顯示格式錯誤,則將校驗結果記錄下來。
一個實施例中,從一設定應用系統中獲取的MT541待測報文可為:
:16R:GENL
:20C::SEME//TN13395306000021352
:16S:GERL
:16R:TRADDET
:98D::TRAD//20080230
:98A::SETT//20080219
:90B::DEAL/USD97,8
:35B:ISIN CN0006326812
IBM COMPUTER SCIENCE
:16S:TRADDET
:16R:SETDET
:23F::SETR//TRAD
:16R:SETPRTY
:95P::DEAG//GSASHKH1XXX
:16S:SETPRTY
......
:16R:AMT
:19A::DEAL//USD97800
:16S:AMT
:16R:AMT
:19A::STAM//USD125.5
:16S:AMT
:16R:AMT
:19A::SETT//USD979x5
:16S:AMT
一個實施例中,對上述待測報文進行報文格式校驗所得到的格式校驗結果可為:
:16R:GENL
:20C::SEME//TN13395306000021352
--本報文中缺少必輸欄位23G
:16S:GERL
:16R:TRADDET
:98A:TRAD//20080230
:98D::SETT//20080219 --必輸區塊B區98a欄位的選項錯誤,
該欄位的選項只能為A,B,C,E。
:90B::DEAL/USD97,8
:35B:ISIN CN0006326812
IBM COMPUTER SCIENCE
:16S:TRADDET
--本報文中缺少必輸區塊C區的相關內容
:16R:SETDET
:23F::SETR//TRAD --必輸區塊E區中不存在23F欄位
……
上述步驟S301~S305的校驗結果可記錄在相應的單元、區塊或欄位的位置,較佳地,記錄在便于使用者理解的位置。如上述格式校驗結果所示,上述步驟S301的校驗結果可如其中的C區說明所示“--本報文中缺少必輸區塊C區的相關內容”;上述步驟S302的校驗結果可如其中缺少必輸欄位23G;上述步驟S303的校驗結果可如其中的23F所示;上述步驟S304的校驗規則可與步驟S302的校驗規則類似;上述步驟S305的校驗結果可如其中的98a所示。
圖11是本發明一實施例中針對待測報文中各欄位的限定符進行校驗的方法流程示意圖。如圖11所示,針對待測報文中各欄位是否存在限定符及限定符正確性進行校驗,具體校驗方法可包括步驟:
S401:根據SWIFT報文國際標準中的欄位,對待測報文中各報文欄位是否存在進行校驗,若待測報文中缺失SWIFT報文國際標準中存在的欄位,或待測報文中存在SWIFT報文國際標準中不存在的欄位,則將校驗結果記錄下來;
S402:根據SWIFT報文國際標準中的欄位限定符,對待測報文中各報文欄位限定符前的冒號格式進行校驗,若SWIFT報文國際標準中規定欄位的限定符前存在冒號而待測報文中缺失,則將校驗結果記錄下來;
S403:根據SWIFT報文國際標準中的欄位字典值,對待測報文中存在限定符的欄位的字典值進行校驗,若錯誤,則將校驗結果記錄下來。
上述步驟S401~S403的校驗結果可記錄在便于使用者理解的位置,例如相應欄位的后面。一個實施例中,對待測報文中各欄位是否存在限定符及限定符正確性的校驗結果可為:
:16R:GENL
:20C::SEME//TN13395306000021352
:16S:GERL --該欄位限定符GERL錯誤
:16R:TRADDET
:98A:TRAD//20080230 --:98A:后缺少冒號
:98A::SETT//20080219
:90B::DEAL/USD97,8 --該欄位存在2個限定符,現只有DEAL
……
如上述格式校驗結果所示,上述步驟S401的校驗結果可如其中的90B所示;上述步驟S402的校驗結果可如其中的98A所示;上述步驟S403中,具體各欄位的字典值在SWIFT報文國際標準中有詳細說明,該步驟的校驗結果可如其中的16S所示。
圖12是本發明一實施例中針對待測報文中各欄位的數據格式進行校驗的方法流程示意圖。如圖12所示,針對待測報文中各欄位的數據內容格式即欄位數據格式進行校驗,具體方法可包括步驟:
S501:根據SWIFT報文國際標準中欄位數據長度,校驗待測報文中相應欄位數據長度;
S502:根據SWIFT報文國際標準中欄位數據精度,校驗待測報文中相應欄位數據的精度;
S503:根據SWIFT報文國際標準中欄位數據字符格式,校驗待測報文中相應欄位數據字符格式;
S504:根據SWIFT報文國際標準中欄位數據的斜杠格式,校驗待測報文中相應欄位數據的斜杠格式的校驗。
上述步驟S501~S504的校驗結果可以記錄下來,例如記錄在相應欄位的末尾。一個實施例中,對待測報文中各欄位的數據內容格式的校驗結果可以為:
:16R:GENL
:20C::SEME//TN13395306000021352 --本欄位的數據長度超長,標準格式為16x
……
:95P::SELL//GSILGB2XXXX
:97A::SAFE/B01451 --本欄位數據的格式錯誤,SAFE后缺少斜杠
……
:16R:AMT
:19A::STAM//USD125.5 --本欄位數據的精度錯誤,應該為125,5
:16S:AMT
:16R:AMT
:19A::SETT//USD979x5 --本欄位數據的類型錯誤,標準格式為15d
:16S:AMT
如上述格式校驗結果所示,上述步驟S501的校驗結果可如其中的20C所示;上述步驟S502的校驗結果可如其中的:19A::DEAL所示(該實施例中對于數值型的欄位,如有小數點位數,則在SWIFT報文國際標準中小數點可以英文逗號代替);上述步驟S503的校驗結果可如其中的:19A::SETT所示;上述步驟S504的校驗結果可如其中的97A所示。
圖13是本發明一實施例中報文內容校驗方法的流程示意圖。如圖13所示,在上述步驟S130中,利用所述核對報文對所述待測報文的報文內容進行校驗的方法,可包括步驟:
S132:依據所述核對標記獲取所述核對欄位的位置信息;
S133:根據所述位置信息從所述待測報文和所述核對報文分別提取待測欄位數據和核對欄位數據;
S134:比較所述待測欄位數據和相應欄位的核對欄位數據,生成所述內容校驗結果。
可首先根據核對報文,自動解析核對報文的XML定義文件。再通過上述步驟S132,依據核對報文中欄位的核對標識(TFLAG),提取納入核對測試的欄位區域信息即位置信息,可以數組[<2,20C>,<3,23G>,<4,98a>]的形式存儲起來。
通過上述步驟S133,根據提取的納入核對測試的欄位區域信息,分別從待測報文和核對報文將相應欄位的信息提取出來,可分別形成待測報文X組、核對報文Y組欄位數據組。從核對報文提取的三組欄位信息可如下所示:
[<2,20C,:SEME//ICBCTRANSMSG>,
<3,23G,NEWM/CODU>,
<4,98A,:PREP//20140611>]
通過上述步驟S134,根據待測報文的X組欄位數據組和核對報文的Y組欄位數據組,逐一進行對應欄位的內容進行一致性比較,并可記錄每組欄位的比較結果。若比較結果一致,則可記為Y,若比較結果不一致,則可記為N,同時可保存待測報文和核對報文中的具體欄位數據,格式可為“待測報文欄位數據#核對報文欄位數據”。
完成待測報文和核對報文的所有欄位的比較后,可匯總各個欄位的比較結果,并可將比較結果存儲起來,以便作進一步數據處理,生成測試報告。比較結果可如下所示:
[<2,20C,Y>,
<3,23G,N,NEWM/DUPL#NEWM/CODU>,
<4,98A,N,:PREP//20140611#:PREP//20140613>]
圖14是本發明另一實施例的數據通信測試方法的流程示意圖。如圖14所示,圖1所示的數據通信測試方法,還可包括步驟:
S140:根據所述格式校驗結果和所述內容校驗結果,按設定組合格式生成所述待測報文的異常欄位信息;
S150:根據所述異常欄位信息對所述待測報文中的異常欄位進行標注,并將標注后的待測報文另存為測試結果報文;
S160:根據所述測試結果報文生成包括報文類型、待測欄位、格式校驗結果及內容校驗結果的信息的報文測試報告。
在上述步驟S140中,該格式校驗結果可以包括對一種或多種報文中相關格式的校驗結果。該設定組合格式可以是各種形式,具體可根據需要進行設定。例如該設定組合格式可為[<1,16R,Y>,<2,20C,Y>,<3,23G,N,:4!c//8!n>......]。一個實施例中,可以根據格式校驗結果計算已檢查欄位數a1,不通過欄位數b1,并做差錯率c1=b1/a1的統計,統計結果可用于制作待測報文的測試報告。
在上述步驟S140中,該內容校驗結果可以包括對一種或多種報文中相關內容的校驗結果。一個實施例中,可進一步計算已核對欄位數a2,不通過欄位數b2,并做差錯率c2=b2/a2的統計,統計結果可用于制作待測報文的測試報告。
在上述步驟S140中,根據格式校驗結果與內容校驗結果,可按欄位將兩種校驗結果進行整合,形成例如<序號,欄位,格式核對結果,格式參考值,內容核對結果,內容參考值>的信息組,其中,該格式參考值可根據SWIFT報文國際標準確定,該內容參考值可為上述錄入的預期值/期望值。信息組可用于制作待測報文的測試報告。例如,該信息組可如下所示:
[<1,16R,Y,,,>,
<2,20C,Y,,Y,>,
<3,23G,N,:4!c//8!n,N,NEW/DUPL#NEWM/CODU>,
<4,98a,Y,,N,:PREP//20140611#:PREP//20140613>]
在上述步驟S150中,根據異常欄位信息組對待測報文相應的欄位進行異常標注,并另存為測試結果報文,有助于通過結果報文方便得知待測報文的測試結果。該測試結果報文可用于制作待測報文的測試報告。例如,測試結果報文可如下所示:
:16R:GENL
:20C::SEME//ICBCTRANSMSG
:23G:NEW/CODU #:4!c//8!n格式不匹配;內容不匹配NEWM/CODU
:98a::PREP//20140611 #內容不匹配:PREP//20140613
:69a::STAT//20140611/20140613
:22F::SFRE//WEEK
:97A::SAFE//078100003677
:17B::ACTI//Y
:17B::CONS//N
:16S:GENL
......
一個實施例中,上述報文測試報告可根據上述格式校驗結果、內容校驗結果、統計結果、異常欄位信息、信息組、測試結果報文等數據中的一個或多個生成。例如,該報文測試報告可包括基本信息、核對結果和附件三部分。其中,該基本信息可涵蓋報文類型、核對范圍、核對結論等信息;該核對結果可涵蓋格式校驗結果的異常明細、內容校驗結果的異常明細、按欄位顯示的異常情況等信息;該附件可涵蓋待測報文、核對報文和測試結果報文(可帶標注),測試報告的內容可如表4所示。
表4 報文測試報告示例
圖15是本發明又一實施例的數據通信測試方法的流程示意圖。如圖15所示,本發明實施例的數據通信測試方法,可包括步驟:
S601:根據待測報文的類型獲取結構化定義的SWIFT報文國際標準,即報文結構;
S602:根據上述報文結構,進行初始化,包括對必輸欄位、必輸區塊、限定符和欄位數據格式進行初始化,并對每個欄位所表述的業務含義進行注釋,得到報文模板;
S603:在上述模板報文中,對納入核對測試的核對欄位,根據報文模板的指引和提示,進行信息錄入;
S604:在完成核對欄位的信息錄入后,對于報文模板中剩余的必輸欄位,根據欄位屬性自動補齊數據;
S605:結合錄入的核對欄位的信息和自動補齊的欄位信息,生成完整的核對報文,并對納入核對測試的欄位區域進行標記;
S606:獲取待測報文,并依據SWIFT報文國際標準對該待測報文做報文格式及內容格式的校驗,校驗內容包括涵蓋區塊、限定符、必輸性、數據格式信息;
S607:在完成格式校驗后,以<欄位、檢查結果、說明>的結構化的數據對象保存格式校驗結果;
S608:根據核對報文中的欄位標記,提取納入核對測試的欄位區域,并以此對核對報文和待測報文提取欄位信息,然后對核對報文和待測報文的欄位信息的內容一致性進行比對檢查,即校驗;
S609:在完成內容一致性檢查后,以<欄位、比對結果、參照值>的結構化數據對象保存內容校驗結果;
S610:解析格式校驗結果和內容核對結果,并將二者整合成欄位視角的詳細測試結果,對于測試結果異常的欄位,在待測報文的基礎上進行異常信息標注,形成測試結果報文;
S611:生成含有基本信息、核對結果和附件三部分的完整的報文測試報告。
在上述步驟S611中,該基本信息可涵蓋報文類型、核對范圍、核對結論等信息;該核對結果可涵蓋格式校驗結果的異常明細、內容校驗結果的異常明細、按欄位顯示的異常情況等信息;該附件可涵蓋待測報文、核對報文和測試結果報文。
上述各步驟在不發生沖突的情況下可以結合上述各實施例的數據通信測試方法使用,例如,上述各實施例中格式校驗結果和內容校驗結果可以分別整理成上述步驟S607中結構化的數據的格式<欄位、檢查結果、說明>和上述步驟S609結構化的數據的格式<欄位、比對結果、參照值>的形式。
本實施例中,詳細地記錄了待測報文測試的各類明細信息,并形成測試結果值和預期值/期望值的清晰對照,最終生成一份規范準確的測試報告,核對結果更清晰直觀。
本發明實施例的數據通信測試方法,待測報文的格式和內容分別校驗,能夠有效提升測試效率。在確定待測報文的類型后,即可對照SWIFT報文國際標準,對測試報文的各種欄位格式進行校驗,能夠有效排除各種格式問題,具有較高檢查效率,依托SWIFT報文國際標準校驗報文格式,無需測試人員掌握報文的結構內容,能夠提高報文測試質量。本發明依托SWIFT報文國際標準對待測報文進行校驗,能夠更精準地把握測試重點,能夠提高測試效率。
基于與圖1所示的數據通信測試方法相同的發明構思,本申請實施例還提供了一種數據通信測試裝置,如下面實施例上述。由于數據通信測試裝置解決問題的原理與數據通信測試方法相似,因此該數據通信測試裝置的實施可以參見數據通信測試方法的實施,重復之處不再贅述。
圖16是本發明一實施例的數據通信測試裝置的結構示意圖。如圖16所示,本發明實施例的數據通信測試裝置的結構示意圖,可包括:報文模板創建單元210、核對報文生成單元220及報文校驗單元230,上述各單元順序連接。
報文模板創建單元210用于根據待測報文的類型和SWIFT報文國際標準創建報文模板。
核對報文生成單元220用于利用所述待測報文的待測欄位和所述報文模板生成核對報文。
報文校驗單元230用于利用所述SWIFT報文國際標準和所述核對報文分別對所述待測報文的報文格式和報文內容進行校驗,分別生成格式校驗結果和內容校驗結果。
在報文模板創建單元210中,該待測報文可以是從各種應用系統獲取的需要進行測試的報文。該待測報文的類型可以是SWIFT報文國際標準中的各種報文類型,具體報文類型可依據SWIFT報文國際標準的說明確定。
一個實施例中,該裝置可以包括一存儲單元,可以用于將上述報文模板存儲起來,當需要再次對同樣類型的報文進行測試時可以直接提取使用,不必重復創建報文模板。另一實施例中,可以針對上述SWIFT報文國際標準中的各種報文類型分別創建不同的報文模板,存儲于存儲單元中,當需要對待測報文進行測試時,可從存儲模塊中選取相應類型的報文模板,以對該待測報文進行測試。如此一來,可以減少例如在一個測試周期內創建報文模板花費的時間,進而能夠提高報文測試效率。
報文模板創建單元210根據待測報文的類型和SWIFT報文國際標準創建好報文模板后,核對報文生成單元220可在該報文模板的基礎上,依據待測報文的待測欄位的信息,生成用于與待測報文進行核對的報文,即核對報文。
在核對報文生成單元220中,該待測報文的待測欄位一般是該待測報文中納入測試范圍的各種欄位區域。不同待測欄位的限定符及欄位數據內容可根據SWIFT報文國際標準中欄位格式的說明進行增加或刪減。
本發明實施例的數據通信測試裝置,在報文模板創建單元210確定待測報文的報文類型后,報文校驗單元230即可對照SWIFT報文國際標準中的報文格式,對待測報文的所有欄位進行格式校驗,不受報文內容校驗過程的影響,報文格式校驗過程簡便、針對性強,以此可以提高報文測試的效率。依托SWIFT報文國際標準校驗報文格式,無需測試人員掌握報文的結構內容,可以提高報文測試質量。
圖17是本發明一實施例中報文模板創建單元的結構示意圖。如圖17所示,所述報文模板創建單元210可包括:報文結構生成模塊211、初始模板生成模塊212及報文模板創建模塊213,上述各模塊順序連接。
報文結構生成模塊211用于根據所述SWIFT報文國際標準和所述待測報文的類型定義所述報文模板的報文結構。
初始模板生成模塊212用于根據所述報文結構初始化得到初始模板。
報文模板創建模塊213用于根據所述報文結構和所述初始模板創建所述報文模板。
在報文結構生成模塊211中,該報文結構可以是一系列反映報文模板的結構的信息。該報文模板的報文結構可以通過結構化定義設定報文信息得到,例如,可以通過結構化定義該SWIFT報文國際標準得到。根據設定的報文類型,例如待測報文的類型,可以從該SWIFT報文國際標準中匹配出該類型所對應的標準信息,進而可根據該標準信息整理得到報文模板的報文結構。
通過初始模板生成模塊212,根據上述報文結構,例如結構性定義后的標準信息,可以依據各區塊、各欄位的順序,進行初始化。初始化處理可將報文結構的內容轉換成模板形式。例如,根據報文結構中欄位的選項對欄位的選項顯示進行初始化,根據報文結構中的限定符的信息對限定符的取值進行初始化,根據報文結構中的欄位號對欄位的數據內容的輸入進行初始化,根據報文結構中的欄位數據格式的信息對欄位數據格式的校驗進行初始化,根據報文結構中欄位的不同選項的信息可以初始化生成相應的選項內容。通過上述初始模板生成模塊212可將上述報文結構處理成模板。
本實施例中,該標準化的報文模板可以和標準化的待測報文很好地對應,有利于提高對待測報文進行格式校驗的準確性,提高測試結果的質量。
圖18是本發明一實施例中報文結構生成模塊的結構示意圖。如圖18所示,所述報文結構生成模塊211可包括:標準欄位抽取模塊2111和結構化整理模塊2112,二者相互連接。
標準欄位抽取模塊2111用于從所述SWIFT報文國際標準抽取標準欄位。
結構化整理模塊2112用于根據所述待測報文的類型對所述標準欄位的內容進行結構化整理,生成所述報文結構。
本實施例中,通過標準欄位抽取模塊2111從SWIFT報文國際標準抽取標準欄位,并通過結構化整理模塊2112根據待測報文的類型對抽取的標準欄位的內容進行結構化整理得到的報文結構,可以與待測報文的格式信息相對應,有助于實現對待測報文進行格式校驗。
一個實施例中,所述初始模板生成模塊212可包括:初始化模塊2121。
初始化模塊2121用于根據所述報文結構對欄位選項顯示、欄位限定符取值、欄位數據輸入、欄位數據格式校驗及欄位區塊復用進行初始化,生成所述初始模板。
本實施例中,通過初始化模塊2121對欄位相關信息進行初始化,可以將結構化整理得到的報文結構轉化為模板,有助于實現報文模板的創建。
通過初始化模塊2121可將結構化整理出來的報文結構處理成模板,具體地,例如可自動補錄冒號(例如欄位簽名中的冒號),可對有多選項的欄位標簽進行多選項的處理,可將限定符進行多選項的處理,可自動創建欄位數據的錄入區,并根據SWIFT報文國際標準中規定的欄位格式對輸入內容進行限制控制。同時,可針對不同選項,在限定符和欄位數據格式不一致時進行聯動控制。
通過初始化模塊2121對欄位區塊復用進行初始化,可對重復區塊進行復用。例如,重復區塊開始處可以“+”號標志,若點擊該“+”號,可自動將本區塊復制顯示,同時“+”號變為“-”號,而若點擊該“-”號則可將重復區塊刪除,以此循環往復,可以提高模板創建效率。
圖19是本發明一實施例中報文模板創建模塊的結構示意圖。如圖19所示,所述報文模板創建模塊213可包括:欄位注釋模塊2131和模板生成模塊2132,二者相互連接。
欄位注釋模塊2131用于根據所述報文結構為所述初始模板添加欄位注釋。
模板生成模塊2132用于根據添加欄位注釋后的初始模板生成所述報文模板。
本實施例中,欄位注釋模塊2131根據上述報文結構的內容,例如上述報文結構中的欄位(英文)、欄位(中文)、備注及欄位格式等信息,為上述初始模板添加欄位注釋,再通過模板生成模塊2132例如在前臺創建標準化的報文模板。報文模板中的欄位注釋可以方便使用者對報文模板的理解。
圖20是本發明一實施例中核對報文生成單元的結構示意圖。如圖20所示,所述核對報文生成單元220可包括:初始報文生成模塊221和核對報文生成模塊222,二者相互連接。
初始報文生成模塊221用于根據所述待測欄位為所述報文模板設置欄位數據,生成初始報文。
核對報文生成模塊222用于依據所述初始模板的欄位限定符及欄位格式要求,為所述初始報文中尚未設置欄位數據的必輸欄位補充設置欄位數據,生成所述核對報文。
本實施例中,初始報文生成模塊221可以依據待測欄位的多種信息例如欄位名稱、欄位數據等為報文模板設置欄位數據,報文模板中的欄位數據可用于對待測報文進行內容校驗。可對核對報文中納入核對測試的欄位區域設置欄位數據。核對報文生成模塊222可依據對欄位定義的限定符和格式的規則,進一步補齊待測報文和上述核對報文二者間未共同覆蓋部分的信息。如此一來,可以保證所有必輸欄位的信息完整,生成一個完整的核對報文。
圖21是本發明一實施例中初始報文生成模塊的結構示意圖。如圖21所示,所述初始報文生成模塊221可包括:期望值錄入模塊2211、期望值校驗模塊2212及欄位結構化模塊2213,上述各模塊順序連接。
期望值錄入模塊2211用于為所述報文模板上與所述待測欄位相對應的核對欄位設置核對標記,并為所述核對欄位設置相應的欄位數據期望值。
期望值校驗模塊2212用于依據所述報文模板的欄位限定符及欄位格式要求,對設置欄位數據期望值后的核對欄位進行格式校驗。
欄位結構化模塊2213用于對格式校驗通過的核對欄位進行結構化處理,生成所述初始報文。
期望值錄入模塊2211在上述報文模板的基礎上,對于與待測報文中應測試欄位對應的核對報文的欄位進行期望值/預期值錄入,即在核對報文中標識哪些欄位用于核對測試并設定核對結果,上述核對標識可存儲在TFLAG中。該期望值/預期值可用于與待測報文中待測欄位的內容進行比較,以對待測報文進行內容校驗。
本實施例中,在依據SWIFT報文國際標準抽取規則生成報文模板的基礎上,通過設置納入核對測試的欄位區域的預期值(期望值),并自動補齊必輸欄位,能夠準確地生成一份滿足所需欄位要求、欄位數據完整、格式正確的核對報文,從而能夠更精準把握測試重點。
一個實施例中,所述報文校驗單元230可包括:
報文格式校驗模塊231用于利用所述SWIFT報文國際標準對所述待測報文的區塊涵蓋性、區塊必輸性、欄位涵蓋性、欄位必輸性、限定符及欄位數據格式進行校驗,生成所述格式校驗結果。
本實施例中,區塊涵蓋性可指待測報文中是否存在一區塊或是否存在一多余區塊。欄位涵蓋性可指一區塊(例如必輸區塊)下是否存在一欄位或是否存在一多余欄位。欄位必輸性可知該欄位是否為必輸欄位。根據SWIFT報文國際標準中的區塊信息可以對待測報文的區塊屬性(包括區塊涵蓋性、區塊必輸性)進行校驗,根據SWIFT報文國際標準中的欄位信息可以對待測報文的欄位屬性(欄位涵蓋性、欄位必輸性、限定符及欄位數據格式)進行校驗。通過報文格式校驗模塊231,可針對待測報文的報文格式進行校驗,包括區塊的校驗、限定符的校驗、欄位必輸性及數據格式的校驗等。本實施例的方法,能夠有效排除欄位缺失、限定符錯誤、欄位數據格式錯誤等問題。
圖22是本發明一實施例中報文校驗單元的結構示意圖。如圖22所示,所述報文校驗單元230可包括:欄位位置獲取模塊232、欄位數據提取模塊233及報文內容校驗模塊234,上述各模塊順序連接。
欄位位置獲取模塊232用于依據所述核對標記獲取所述核對欄位的位置信息。
欄位數據提取模塊233用于根據所述位置信息從所述待測報文和所述核對報文分別提取待測欄位數據和核對欄位數據。
報文內容校驗模塊234用于比較所述待測欄位數據和相應欄位的核對欄位數據,生成所述內容校驗結果。
可首先根據核對報文,自動解析核對報文的XML定義文件。再通過上述欄位位置獲取模塊232,依據核對報文中欄位的核對標識(TFLAG),提取納入核對測試的欄位區域信息即位置信息,可以數組[<2,20C>,<3,23G>,<4,98a>]的形式存儲起來。
通過上述欄位數據提取模塊233,根據提取的納入核對測試的欄位區域信息,分別從待測報文和核對報文將相應欄位的信息提取出來,可分別形成待測報文X組、核對報文Y組欄位數據組。
通過上述報文內容校驗模塊234,根據待測報文的X組欄位數據組和核對報文的Y組欄位數據組,逐一進行對應欄位的內容進行一致性比較,并可記錄每組欄位的比較結果。若比較結果一致,則可記為Y,若比較結果不一致,則可記為N,同時可保存待測報文和核對報文中的具體欄位數據,格式可為“待測報文欄位數據#核對報文欄位數據”。
圖23是本發明另一實施例的數據通信測試裝置的結構示意圖。如圖23所示,圖16所示的數據通信測試裝置還可包括:異常欄位信息生成單元240、測試結果報文生成單元250及報文測試報告生成單元260,上述單元順序連接,且異常欄位信息生成單元240與上述報文校驗單元230連接。
異常欄位信息生成單元240用于根據所述格式校驗結果和所述內容校驗結果,按設定組合格式生成所述待測報文的異常欄位信息。
測試結果報文生成單元250用于根據所述異常欄位信息對所述待測報文中的異常欄位進行標注,并將標注后的待測報文另存為測試結果報文。
報文測試報告生成單元260用于根據所述測試結果報文生成包括報文類型、待測欄位、格式校驗結果及內容校驗結果的信息的報文測試報告。
通過異常欄位信息生成單元240,該格式校驗結果可以包括對一種或多種報文中相關格式的校驗結果。該設定組合格式可以是各種形式,具體可根據需要進行設定。例如該設定組合格式可為[<1,16R,Y>,<2,20C,Y>,<3,23G,N,:4!c//8!n>......]。
一個實施例中,異常欄位信息生成單元240可以根據格式校驗結果計算已檢查欄位數a1,不通過欄位數b1,并做差錯率c1=b1/a1的統計,統計結果可用于制作待測報文的測試報告。
一個實施例中,異常欄位信息生成單元240可進一步計算已核對欄位數a2,不通過欄位數b2,并做差錯率c2=b2/a2的統計,統計結果可用于制作待測報文的測試報告。
在異常欄位信息生成單元240中,根據格式校驗結果與內容校驗結果,可按欄位將兩種校驗結果進行整合,形成例如<序號,欄位,格式核對結果,格式參考值,內容核對結果,內容參考值>的信息組,其中,該格式參考值可根據SWIFT報文國際標準確定,該內容參考值可為上述錄入的預期值/期望值。信息組可用于制作待測報文的測試報告。
一個實施例中,上述報文測試報告可根據上述格式校驗結果、內容校驗結果、統計結果、異常欄位信息、信息組、測試結果報文等數據中的一個或多個生成。例如,該報文測試報告可包括基本信息、核對結果和附件三部分。其中,該基本信息可涵蓋報文類型、核對范圍、核對結論等信息;該核對結果可涵蓋格式校驗結果的異常明細、內容校驗結果的異常明細、按欄位顯示的異常情況等信息;該附件可涵蓋待測報文、核對報文和測試結果報文(可帶標注)。
本實施例中,詳細地記錄了待測報文測試的各類明細信息,并形成測試結果值和預期值/期望值的清晰對照,最終生成一份規范準確的測試報告,核對結果更清晰直觀。
本發明實施例的數據通信測試裝置,待測報文的格式和內容分別校驗,能夠有效提升測試效率。在確定待測報文的類型后,即可對照SWIFT報文國際標準,對測試報文的各種欄位格式進行校驗,能夠有效排除各種格式問題,具有較高檢查效率和測試質量。本發明依托SWIFT報文國際標準對待測報文進行校驗,能夠更精準地把握測試重點,能夠提高測試效率,無需測試人員掌握報文的結構內容,能夠提高報文測試質量。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在本說明書的描述中,參考術語“一個實施例”、“一個具體實施例”、“一些實施例”、“例如”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
以上所述的具體實施例,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施例而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。