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