本申請涉及測試技術(shù),特別是涉及一種多服務器交互業(yè)務的測試方法及系統(tǒng)。
背景技術(shù):隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡上的業(yè)務往往是由多個系統(tǒng)共同完成的,所述系統(tǒng)可能分屬于不同的企業(yè),因此在對該業(yè)務進行測試時,通常都是企業(yè)各自針對自己的系統(tǒng)進行測試。使用時,單個系統(tǒng)的內(nèi)部業(yè)務可能都是正常的,但是在系統(tǒng)間的業(yè)務交互卻可能出現(xiàn)錯誤,而目前沒有一種方法能夠?qū)υ摌I(yè)務的整個流程進行測試。例如,某一企業(yè)的內(nèi)部系統(tǒng)是一個開放式的平臺,內(nèi)部服務器通過接口與外部服務器協(xié)同交互來處理業(yè)務。業(yè)務的處理流程是第一外部服務器發(fā)送業(yè)務請求到內(nèi)部服務器,內(nèi)部服務器創(chuàng)建業(yè)務并發(fā)送業(yè)務數(shù)據(jù)到第二外部服務器,然后根據(jù)接收的第二外部服務器的返回數(shù)據(jù)進行相應的處理?,F(xiàn)有技術(shù)是針對所述內(nèi)部服務器的內(nèi)部流程進行測試的,主要是測試其內(nèi)部流程是否存在異常。首先,內(nèi)部服務器接收業(yè)務請求并生成業(yè)務,然后通過接口發(fā)送業(yè)務數(shù)據(jù)到外部服務器,并根據(jù)接收的返回數(shù)據(jù)執(zhí)行后續(xù)的處理操作。但測試中不會真實與調(diào)用外部服務器交互,而是預先模擬出與外部服務器交互的接口,并模擬好所述接口的返回數(shù)據(jù),因此當調(diào)用接口來發(fā)送業(yè)務數(shù)據(jù)時,直接接收對應模擬好的返回數(shù)據(jù),而沒有與外部服務器進行交互。上述內(nèi)部服務器的內(nèi)部流程測試中,并沒有真實的涉及到外部服務器的參與,因而也沒有模擬出多服務器的交互行為,所以不能測試出多服務器在交互處理業(yè)務中是否存在異常問題。
技術(shù)實現(xiàn)要素:本申請?zhí)峁┮环N多服務器交互業(yè)務的測試方法及系統(tǒng),以解決現(xiàn)有技術(shù)中無法測試多服務器交互業(yè)務整個流程的問題。為了解決上述問題,本申請公開了一種多服務器交互業(yè)務的測試方法,其特征在于,包括:創(chuàng)建模擬服務器,所述模擬服務器用于模擬與內(nèi)部服務器進行真實交互的外部服務器;內(nèi)部服務器根據(jù)接收的業(yè)務請求生成業(yè)務,并將對應的業(yè)務數(shù)據(jù)發(fā)送至模擬服務器,其中業(yè)務狀態(tài)為創(chuàng)建中;若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù),則根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作;若在預置的時間內(nèi)未接收到模擬服務器處理的返回數(shù)據(jù),則重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器;若上述所有過程都執(zhí)行正常,則多服務器交互業(yè)務的測試通過。相應的,本申請還公開了一種多服務器交互業(yè)務的測試系統(tǒng),其特征在于,包括內(nèi)部服務器和模擬服務器,其中,所述模擬服務器用于模擬與內(nèi)部服務器進行交互的外部服務器,所述內(nèi)部服務器包括:創(chuàng)建模塊,用于根據(jù)接收的業(yè)務請求創(chuàng)建業(yè)務;第一發(fā)送模塊,用于將對應的業(yè)務數(shù)據(jù)發(fā)送至模擬服務器;處理模塊,用于若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù),則根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作;第二發(fā)送模塊,用于若在預置的時間內(nèi)未接收到模擬服務器處理的返回數(shù)據(jù),則重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點:首先,本申請所述的方法模擬出了業(yè)務處理中內(nèi)部服務器與外部服務器的交互過程,最初創(chuàng)建模擬服務器,所述模擬服務器用于模擬與內(nèi)部服務器進行交互的外部服務器,內(nèi)部服務器根據(jù)接收的業(yè)務請求生成業(yè)務,并將所述業(yè)務數(shù)據(jù)發(fā)送至模擬服務器,其中,業(yè)務狀態(tài)為創(chuàng)建中。真實服務器若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù),則根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作;真實服務器若在預置的時間內(nèi)未接收到模擬服務器處理的返回數(shù)據(jù),則重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器。本申請在測試中會調(diào)用模擬服務器,并且針對模擬服務器處理后的返回數(shù)據(jù),真實服務器可以執(zhí)行相應的處理措施。本申請模擬出了多服務器的交互行為,能夠測試出多服務器在交互處理業(yè)務中是否存在異常問題,從而可以使多服務器交互業(yè)務更加完善,使業(yè)務的處理更加流暢并且有保障。其次,本申請充分的測試出了業(yè)務交互過程中的各種可能性。模擬服務器會根據(jù)業(yè)務數(shù)據(jù)的不同情況,發(fā)送不同的返回數(shù)據(jù),而真實服務器會根據(jù)模擬服務器的不同返回數(shù)據(jù)執(zhí)行不同的操作,使得業(yè)務的整個流程的測試更加豐富,測試場景更加全面。再次,本申請中模擬了真實業(yè)務處理中的場景,設立了消息重發(fā)機制,但在業(yè)務處理中消息不是無限次重發(fā)的,因此,當發(fā)送業(yè)務數(shù)據(jù)的次數(shù)超過預置的范圍時,會標識業(yè)務狀態(tài)為創(chuàng)建失敗,更加符合真實業(yè)務處理操作,并且綜合考慮了業(yè)務流程中的各種可能性,更加接近于真實的業(yè)務處理場景。附圖說明圖1是本申請實施例所述一種多服務器交互業(yè)務的測試方法流程圖;圖2是本申請實施例所述一種多服務器交互業(yè)務的測試方法第一種交互示意圖;圖3是本申請實施例所述一種多服務器交互業(yè)務的測試方法第二種交互示意圖;圖4是本申請實施例所述一種多服務器交互業(yè)務的測試方法第三種交互示意圖;圖5是本申請優(yōu)選實施例所述一種多服務器交互業(yè)務的測試方法流程圖;圖6是本申請實施例所述一種多服務器交互業(yè)務的測試系統(tǒng)結(jié)構(gòu)圖。具體實施方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進一步詳細的說明。業(yè)務的處理流程是第一外部服務器發(fā)送業(yè)務請求到內(nèi)部服務器,內(nèi)部服務器創(chuàng)建業(yè)務并發(fā)送業(yè)務數(shù)據(jù)到第二外部服務器,然后根據(jù)接收的第二外部服務器的返回數(shù)據(jù)進行相應的處理?,F(xiàn)有技術(shù)是針對所述內(nèi)部服務器的內(nèi)部流程進行測試的,主要是測試其內(nèi)部流程是否存在異常。測試中不會真實與調(diào)用外部服務器交互,而是預先模擬出與外部服務器交互的接口,并模擬好所述接口的返回數(shù)據(jù),因此當調(diào)用接口來發(fā)送業(yè)務數(shù)據(jù)時,直接接收對應模擬好的返回數(shù)據(jù),而沒有與外部服務器進行交互。本申請?zhí)峁┝艘环N多服務器交互業(yè)務的測試方法,本申請在測試中會調(diào)用模擬服務器,并且針對模擬服務器處理后的返回數(shù)據(jù),真實服務器可以執(zhí)行相應的處理措施。本申請模擬出了多服務器的交互行為,能夠測試出多服務器在交互處理業(yè)務中是否存在異常問題,從而可以使多服務器交互業(yè)務更加完善,使業(yè)務的處理更加流暢并且有保障。參照圖1,其給出了本申請實施例所述一種多服務器交互業(yè)務的測試方法流程圖。步驟11,創(chuàng)建模擬服務器,所述模擬服務器用于模擬與內(nèi)部服務器進行真實交互的外部服務器;由于內(nèi)部服務器是一個開放式的平臺,其通過接口與不同企業(yè)的外部服務器協(xié)同交互來處理業(yè)務。測試中不能調(diào)用真實的外部服務器,因此本申請首先創(chuàng)建模擬服務器,所述模擬服務器用于模擬與內(nèi)部服務器進行真實交互的外部服務器。所述模擬服務器可以采用JETTY服務器,因此可以在測試腳本中嵌入所述JETTY服務器,則測試中當內(nèi)部服務器通過接口調(diào)用外部服務器進行交互時,就會調(diào)用模擬服務器模擬該交互。所述JETTY服務器是一個開源的JAVA服務器,JETTY是一個開源的servlet容器,是基于Java的web內(nèi)容。步驟12,內(nèi)部服務器根據(jù)接收的業(yè)務請求生成業(yè)務,并將對應的業(yè)務數(shù)據(jù)發(fā)送至模擬服務器,其中業(yè)務狀態(tài)為創(chuàng)建中;測試腳本啟動時會同時啟動模擬服務器,測試腳本調(diào)用內(nèi)部服務器的接口生成業(yè)務請求,并傳輸給內(nèi)部服務器。內(nèi)部服務器接收業(yè)務請求,并根據(jù)業(yè)務請求生成業(yè)務,然后將對應的業(yè)務數(shù)據(jù)發(fā)送至模擬服務器,初始時,將業(yè)務狀態(tài)標識為創(chuàng)建中。步驟13,判斷在預置的時間內(nèi)是否接收到模擬服務器處理的返回數(shù)據(jù);內(nèi)部服務器會判斷在預置的時間內(nèi),是否接收到了模擬服務器處理的返回數(shù)據(jù)。若是,則執(zhí)行步驟14,若否,則執(zhí)行步驟15。其中,內(nèi)部服務器的處理過程是異步的,例如在發(fā)送完業(yè)務B的業(yè)務數(shù)據(jù)后,可以繼續(xù)處理關(guān)于業(yè)務C的業(yè)務請求,或處理關(guān)于業(yè)務A的返回數(shù)據(jù),于此同時針對業(yè)務B判斷在預置的時間內(nèi),內(nèi)部服務器是否接收到模擬服務器處理的返回數(shù)據(jù)。步驟14,根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作;模擬服務器在接收到內(nèi)部服務器的業(yè)務數(shù)據(jù)后,會根據(jù)業(yè)務數(shù)據(jù)的不同,執(zhí)行不同的處理并返回不同的返回數(shù)據(jù)。內(nèi)部服務器在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)后,可以根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作。步驟15,重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器。優(yōu)選的,若發(fā)送業(yè)務數(shù)據(jù)的次數(shù)達到預置的范圍后,仍未收到模擬服務器處理的返回數(shù)據(jù),則標識業(yè)務狀態(tài)為創(chuàng)建失敗。若內(nèi)部服務器在預置的時間內(nèi)未接收到模擬服務器處理的返回數(shù)據(jù),則所述內(nèi)部服務器會重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器。但是針對某個業(yè)務,內(nèi)部服務器不能一直重復發(fā)送業(yè)務數(shù)據(jù),因此在內(nèi)部服務器中預置了某一范圍,若發(fā)送業(yè)務數(shù)據(jù)的次數(shù)達到預置的范圍后,仍未收到模擬服務器處理的返回數(shù)據(jù),則不會再從新發(fā)送業(yè)務數(shù)據(jù),而是標識業(yè)務狀態(tài)為創(chuàng)建失敗。業(yè)務在處理中可能會出現(xiàn)阻塞的問題,因此有些業(yè)務數(shù)據(jù)發(fā)送后可能丟失或不能及時處理,針對此種情況在內(nèi)部服務器中設置了業(yè)務數(shù)據(jù)的重發(fā)機制。本申請為了模擬此種情況,本申請為模擬服務器設置了睡眠狀態(tài)及睡眠狀態(tài)的持續(xù)時間,一旦模擬服務器處于睡眠狀態(tài)時就不能接受業(yè)務數(shù)據(jù),直到模擬服務器恢復正常狀態(tài)。例如,設置內(nèi)部服務器的重發(fā)時間為2s,模擬服務器睡眠狀態(tài)的持續(xù)時間為10s,服務器發(fā)送業(yè)務B的業(yè)務數(shù)據(jù),此時模擬服務器剛好處于睡眠狀態(tài)。若內(nèi)部服務器的重發(fā)次數(shù)為3次(包含首次發(fā)送業(yè)務數(shù)據(jù)),則當內(nèi)部服務器第3次發(fā)送數(shù)據(jù)給模擬服務器時,模擬服務器依然處于睡眠狀態(tài)不能處理業(yè)務,2s后內(nèi)部服務器仍然沒有接收到模擬服務器的返回數(shù)據(jù),此時會標識業(yè)務狀態(tài)為創(chuàng)建失敗。若內(nèi)部服務器的重發(fā)次數(shù)為6次(包含首次發(fā)送業(yè)務數(shù)據(jù)),則當內(nèi)部服務器第6次發(fā)送數(shù)據(jù)給模擬服務器時,模擬服務器處于正常狀態(tài),則可以正常的接收并處理業(yè)務數(shù)據(jù)。若上述所有過程都執(zhí)行正常,則多服務器交互業(yè)務的測試通過。若某個過程執(zhí)行異常,則多服務器交互業(yè)務的測試中存在異常情況,需要進行調(diào)試直到所有過程都執(zhí)行正常,多服務器交互業(yè)務的測試通過為止。在本申請中,內(nèi)部服務器發(fā)送業(yè)務數(shù)據(jù)到模擬服務器,模擬服務器接收到業(yè)務數(shù)據(jù)后的處理步驟包括:若模擬服務器接收到不完整的業(yè)務數(shù)據(jù),則返回數(shù)據(jù)為系統(tǒng)錯誤;若模擬服務器接收到完整的業(yè)務數(shù)據(jù),但所述業(yè)務數(shù)據(jù)無效,則返回數(shù)據(jù)為業(yè)務處理失?。蝗裟M服務器接收到完整的業(yè)務數(shù)據(jù),且所述業(yè)務數(shù)據(jù)有效,則返回數(shù)據(jù)為業(yè)務處理成功。其中,當所述業(yè)務數(shù)據(jù)存在業(yè)務性的錯誤時,所述業(yè)務數(shù)據(jù)是無效的,其中,所述業(yè)務的ID和數(shù)據(jù)與已有的業(yè)務的ID和數(shù)據(jù)重復,倉庫編碼錯誤或密碼錯誤等均為業(yè)務性的錯誤。若所述業(yè)務數(shù)據(jù)不包含上述業(yè)務性的錯誤,則可認為該業(yè)務數(shù)據(jù)有效。例如,內(nèi)部服務器發(fā)送的業(yè)務數(shù)據(jù)是一個XML格式的數(shù)據(jù),所述數(shù)據(jù)的格式如<request><id>100</id><name>鉛筆</name></request>。若模擬服務器接收到的業(yè)務數(shù)據(jù)為<request><id>100</id>,則該數(shù)據(jù)為不完整的業(yè)務數(shù)據(jù),此時業(yè)務數(shù)據(jù)出現(xiàn)異常,模擬服務器會將所述異常數(shù)據(jù)直接拋出,然后返回數(shù)據(jù)給內(nèi)部服務器,所述返回數(shù)據(jù)為系統(tǒng)錯誤。若模擬服務器接收到的業(yè)務數(shù)據(jù)為<request><id>100</id><name>鉛筆</name></request>,則該數(shù)據(jù)是完整的業(yè)務數(shù)據(jù),此時會判斷該數(shù)據(jù)在業(yè)務上是否是有效的,例如,若模擬服務器發(fā)現(xiàn)該業(yè)務的ID和數(shù)據(jù),與已有的業(yè)務的ID和數(shù)據(jù)重復,則此時模擬服務器會返回數(shù)據(jù)告知內(nèi)部服務器該業(yè)務無法處理,其中所述返回數(shù)據(jù)為業(yè)務處理失敗。所述返回數(shù)據(jù)也可以采用XML格式數(shù)據(jù)表示。若模擬服務器接收到的業(yè)務數(shù)據(jù)為<request><id>100</id><name>鉛筆</name></request>,則該數(shù)據(jù)是完整的業(yè)務數(shù)據(jù),并且所述業(yè)務數(shù)據(jù)有效。模擬服務器會執(zhí)行相應的處理,并發(fā)送返回數(shù)據(jù)給內(nèi)部服務器,所述返回數(shù)據(jù)為業(yè)務處理成功。對應模擬服務器處理的返回數(shù)據(jù),內(nèi)部服務器的處理步驟包括:若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)為系統(tǒng)錯誤,則不執(zhí)行任何操作;若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)為業(yè)務處理失敗,則將業(yè)務狀態(tài)標識為創(chuàng)建失敗;若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)為業(yè)務處理成功,則將業(yè)務狀態(tài)標識為創(chuàng)建成功。其中,若所述業(yè)務創(chuàng)建失敗,內(nèi)部服務器可以將接返回錯誤數(shù)據(jù)給測試腳本,告知其業(yè)務創(chuàng)建失敗。參照圖2,其給出了本申請實施例所述一種多服務器交互業(yè)務的測試方法第一種交互示意圖。內(nèi)部服務器與模擬服務器交互業(yè)務的第一種處理過程包括:1.內(nèi)部服務器接收業(yè)務請求,并生成業(yè)務;2.內(nèi)部服務器發(fā)送業(yè)務數(shù)據(jù)到模擬服務器;3.模擬服務器處理業(yè)務數(shù)據(jù);4.模擬服務器處理完業(yè)務數(shù)據(jù)并生成返回數(shù)據(jù)后,發(fā)送返回數(shù)據(jù)給內(nèi)部服務器;5.內(nèi)部服務器針對不同的返回數(shù)據(jù),執(zhí)行不同的處理操作。參照圖3,其給出了本申請實施例所述一種多服務器交互業(yè)務的測試方法第二種交互示意圖。內(nèi)部服務器與模擬服務器交互業(yè)務的第二種處理過程包括:1.內(nèi)部服務器接收業(yè)務請求,并生成業(yè)務;2.內(nèi)部服務器發(fā)送業(yè)務數(shù)據(jù)到模擬服務器;此時模擬服務器處于睡眠狀態(tài),不能接收并處理業(yè)務數(shù)據(jù);3.超過預定的時間,內(nèi)部服務器未接收到模擬服務器處理的返回數(shù)據(jù),此時會重新發(fā)送業(yè)務數(shù)據(jù)到模擬服務器;4.當業(yè)務數(shù)據(jù)發(fā)送的次數(shù)達到預置的范圍,并且認為未收到返回數(shù)據(jù),此時內(nèi)部服務器標識業(yè)務處理狀態(tài)為處理失敗。參照圖4,其給出了本申請實施例所述一種多服務器交互業(yè)務的測試方法第三種交互示意圖。內(nèi)部服務器與模擬服務器交互業(yè)務的第三種處理過程包括:1.內(nèi)部服務器接收業(yè)務請求,并生成業(yè)務;2.內(nèi)部服務器發(fā)送業(yè)務數(shù)據(jù)到模擬服務器;此時模擬服務器處于睡眠狀態(tài),不能接收并處理業(yè)務數(shù)據(jù);3.超過預定的時間,內(nèi)部服務器未接收到模擬服務器處理的返回數(shù)據(jù),此時會重新發(fā)送業(yè)務數(shù)據(jù)到模擬服務器;4.模擬服務器的睡眠狀態(tài)結(jié)束,恢復正常狀態(tài),此時模擬服務器正常處理業(yè)務數(shù)據(jù);5.模擬服務器處理完業(yè)務數(shù)據(jù)并生成返回數(shù)據(jù)后,發(fā)送返回數(shù)據(jù)給內(nèi)部服務器;6.內(nèi)部服務器針對不同的返回數(shù)據(jù),執(zhí)行不同的處理操作。隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡上的業(yè)務往往是由多個系統(tǒng)共同完成的,下面舉例論述所述業(yè)務的流程測試。例如,內(nèi)部服務器為物流系統(tǒng)服務器,模擬服務器為模擬的倉庫系統(tǒng)服務器。物流系統(tǒng)會接收訂單后,會創(chuàng)建訂單并發(fā)送訂單到倉庫系統(tǒng)服務器,具體流程如下:參照圖5,其給出了本申請優(yōu)選實施例所述一種多服務器交互業(yè)務的測試方法流程圖。步驟21,創(chuàng)建模擬的倉庫系統(tǒng)服務器,所述模擬的倉庫系統(tǒng)服務器用于模擬與物流系統(tǒng)服務器進行真實交互的倉庫系統(tǒng)服務器;步驟22,物流系統(tǒng)服務器根據(jù)接收的訂單創(chuàng)建請求創(chuàng)建訂單,并將對應的訂單數(shù)據(jù)發(fā)送至模擬的倉庫系統(tǒng)服務器,其中訂單狀態(tài)為創(chuàng)建中;其中,模擬的倉庫系統(tǒng)服務器接收到訂單數(shù)據(jù)后的處理步驟包括:若模擬的倉庫系統(tǒng)服務器接收到不完整的訂單數(shù)據(jù),則返回數(shù)據(jù)為系統(tǒng)錯誤;若模擬的倉庫系統(tǒng)服務器接收到完整的訂單數(shù)據(jù),但所述訂單數(shù)據(jù)無效,則返回數(shù)據(jù)為業(yè)務處理失敗;若模擬的倉庫系統(tǒng)服務器接收到完整的訂單數(shù)據(jù),且所述訂單數(shù)據(jù)有效,則返回數(shù)據(jù)為業(yè)務處理成功。步驟23,判斷在預置的時間內(nèi)是否接收到模擬的倉庫系統(tǒng)服務器處理的返回數(shù)據(jù);若是,則執(zhí)行步驟24,若否,則執(zhí)行步驟25。步驟24,判斷返回數(shù)據(jù)的類型;若所返回數(shù)據(jù)為系統(tǒng)錯誤,則執(zhí)行步驟26;若返回數(shù)據(jù)業(yè)務處理失敗,則執(zhí)行步驟27;若返回數(shù)據(jù)業(yè)務處理成功,則執(zhí)行步驟28;步驟25,模擬的倉庫系統(tǒng)服務器出現(xiàn)阻塞的情況,此時重新發(fā)送訂單數(shù)據(jù)發(fā)送至模擬的倉庫系統(tǒng)服務器。步驟26,不執(zhí)行任何操作;步驟27,將業(yè)務狀態(tài)標識為創(chuàng)建失?。徊襟E28,將業(yè)務狀態(tài)標識為創(chuàng)建成功。步驟29,若發(fā)送業(yè)務數(shù)據(jù)的次數(shù)達到預置的范圍后,仍未收到模擬服務器處理的返回數(shù)據(jù),則標識業(yè)務狀態(tài)為創(chuàng)建失敗。若上述所有過程都執(zhí)行正常,則多服務器交互業(yè)務的測試通過。實際在處理中還可以創(chuàng)建一個模擬的ERP服務器,通過所述模擬的ERP服務器發(fā)送訂單創(chuàng)建請求給物流系統(tǒng)服務器,然后物流服務器再創(chuàng)建訂單。若測試中訂單創(chuàng)建失敗,物流系統(tǒng)服務器可以直接發(fā)送錯誤數(shù)據(jù)給模擬的ERP服務器,告知其訂單創(chuàng)建失敗的事件。綜上所述,首先本申請所述的方法模擬出了業(yè)務處理中內(nèi)部服務器與外部服務器的交互過程,最初創(chuàng)建模擬服務器,所述模擬服務器用于模擬與內(nèi)部服務器進行交互的外部服務器,內(nèi)部服務器根據(jù)接收的業(yè)務請求生成業(yè)務,并將所述業(yè)務數(shù)據(jù)發(fā)送至模擬服務器,其中業(yè)務狀態(tài)為創(chuàng)建中。真實服務器若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù),則根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作;真實服務器若在預置的時間內(nèi)未接收到模擬服務器處理的返回數(shù)據(jù),則重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器。本申請在測試中會調(diào)用模擬服務器,并且針對模擬服務器處理后的返回數(shù)據(jù),真實服務器可以執(zhí)行相應的處理措施。本申請模擬出了多服務器的交互行為,能夠測試出多服務器在交互處理業(yè)務中是否存在異常問題,從而可以使多服務器交互業(yè)務更加完善,使業(yè)務的處理更加流暢并且有保障。其次,本申請充分的測試出了業(yè)務交互過程中的各種可能性。模擬服務器會根據(jù)業(yè)務數(shù)據(jù)的不同情況,發(fā)送不同的返回數(shù)據(jù),而真實服務器會根據(jù)模擬服務器的不同返回數(shù)據(jù)執(zhí)行不同的操作,使得業(yè)務的整個流程的測試更加豐富,測試場景更加全面。再次,本申請中模擬了真實業(yè)務處理中的場景,設立了消息重發(fā)機制,但在業(yè)務處理中消息不是無限次重發(fā)的,因此當發(fā)送業(yè)務數(shù)據(jù)的次數(shù)超過預置的范圍時,會標識業(yè)務狀態(tài)為創(chuàng)建失敗,更加符合真實業(yè)務處理操作,并且綜合考慮了業(yè)務流程中的各種可能性,更加接近于真實的業(yè)務處理場景。參照圖6,其給出了本申請實施例所述一種多服務器交互業(yè)務的測試系統(tǒng)結(jié)構(gòu)圖。相應的,本申請還提供了一種多服務器交互業(yè)務的測試系統(tǒng),包括內(nèi)部服務器11和模擬服務器12,其中,所述模擬服務器12用于模擬與內(nèi)部服務器11進行交互的外部服務器。所述內(nèi)部服務器11包括:創(chuàng)建模塊111,用于根據(jù)接收的業(yè)務請求創(chuàng)建業(yè)務;第一發(fā)送模塊112,用于將對應的業(yè)務數(shù)據(jù)發(fā)送至模擬服務器;此時,業(yè)務狀態(tài)為創(chuàng)建中。處理模塊113,用于若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù),則根據(jù)不同的返回數(shù)據(jù)執(zhí)行不同的處理操作;第二發(fā)送模塊114,用于若在預置的時間內(nèi)未接收到模擬服務器處理的返回數(shù)據(jù),則重新發(fā)送業(yè)務數(shù)據(jù)至模擬服務器。所述模擬服務器12包括:第一返回模塊121,用于若模擬服務器接收到不完整的業(yè)務數(shù)據(jù),則返回數(shù)據(jù)為系統(tǒng)錯誤;第二返回模塊122,用于若模擬服務器接收到完整的業(yè)務數(shù)據(jù),但所述業(yè)務數(shù)據(jù)無效,則返回數(shù)據(jù)為業(yè)務處理失??;第三返回模塊123,用于若模擬服務器接收到完整的業(yè)務數(shù)據(jù),且所述業(yè)務數(shù)據(jù)有效,則返回數(shù)據(jù)為業(yè)務處理成功。優(yōu)選的,所述處理模塊包括:第一處理單元,用于若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)為系統(tǒng)錯誤,則不執(zhí)行任何操作;第二處理單元,用于若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)業(yè)務處理失敗,則將業(yè)務狀態(tài)標識為創(chuàng)建失??;第三處理單元,若在預置的時間內(nèi)接收到模擬服務器處理的返回數(shù)據(jù)業(yè)務處理成功,則將業(yè)務狀態(tài)標識為創(chuàng)建成功。優(yōu)選的,第二發(fā)送模塊114,還用于若發(fā)送業(yè)務數(shù)據(jù)的次數(shù)達到預置的范圍后,仍未收到模擬服務器處理的返回數(shù)據(jù),則標識業(yè)務狀態(tài)為創(chuàng)建失敗。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。本申請可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。以上對本申請所提供的一種多服務器交互業(yè)務的測試方法及系統(tǒng),進行了詳細介紹,本文中應用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本申請的限制。