專利名稱:一種分布式智能調(diào)度方法
技術(shù)領域:
本發(fā)明涉及自動化軟件測試技術(shù)領域,尤其涉及一種分布式智能調(diào)度方法。
背景技術(shù):
目前ERP產(chǎn)品的特點是功能強大、流程復雜,手工回歸測試工作量大,人力成本過高,所以自動化測試技術(shù)是個最優(yōu)的選擇。但是如果使用一臺機器串行執(zhí)行測試場景完成一次全面的回歸測試,耗時時間長,無法滿足日常補丁測試周期短、頻率高的需求。如何保 證自動化回歸測試能在不增加人力的情況下短期內(nèi)完成日常補丁回歸測試,是需要解決的問題。因此,出現(xiàn)了分布式智能調(diào)度系統(tǒng)。然而,現(xiàn)有的分布式調(diào)度的技術(shù)存在如下缺陷
.1.無法支持用戶靈活選擇測試場景
目前的主流技術(shù)采用關鍵字導出測試場景或按照場景列表按照優(yōu)先級等機制分發(fā)測試場景。這種調(diào)度機制存在的缺陷在于用戶只能運行同一關鍵字的場景組,無法靈活選擇測試場景;或者沒有智能處理場景間的依賴關系,導致某個場景沒有運行的話,后續(xù)腳本都無法走到,增加腳本運行失敗的可能性;
.2.不支持多個數(shù)據(jù)庫實例同時運行的需求
目前現(xiàn)有技術(shù)只實現(xiàn)同一個數(shù)據(jù)庫實例內(nèi)場景運行的調(diào)度,而實際情況需要多個數(shù)據(jù)庫實例并行運行,已有技術(shù)存在局限;
.3.沒有包含中斷處理技術(shù)
目前現(xiàn)有技術(shù)在處理測試機運行失敗后,測試工具就中斷停止,需要重新運行一次,才能繼續(xù)。并且測試日志依賴于測試工具的日志系統(tǒng),無法按照測試需求記錄中斷記錄、日志。故,針對上述現(xiàn)有技術(shù)存在的缺陷,實有必要進行研究,以提供一種分布式智能調(diào)度方法。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的在于提供一種分布式智能調(diào)度方法,其支持用戶靈活選擇測試場景以及多個數(shù)據(jù)庫實例同時運行的需求。為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為
一種分布式智能調(diào)度系統(tǒng)及方法,包括如下步驟
510:提供一支持用戶靈活選擇場景的用戶操作平臺;
511:提供分布式調(diào)度執(zhí)行機制;
512:在操作平臺中為每個數(shù)據(jù)庫實例選擇測試場景;
其中,執(zhí)行步驟SlO之前首先完成場景列表,所述場景列表記錄了所有場景的所屬關鍵應用、業(yè)務類型、場景編號、場景名稱、腳本相對于腳本項目的存放路徑、以及依賴項編號的基本信息;所述用戶操作平臺以該場景列表為依據(jù),支持用戶選擇產(chǎn)品版本、關鍵應用、業(yè)務類型過濾場景,靈活選擇測試場景,生成運行場景列表。
進一步地,所述用戶操作平臺包括有參數(shù)設置界面、選擇場景界面、監(jiān)控機端操作界面、以及測試機端操作界面;其中,參數(shù)設置界面用于設置此次測試任務的唯一標識、以及設置要進行測試的數(shù)據(jù)庫實例名稱;監(jiān)控機端操作界面設置有一個端口號;而測試機端操作界面用于設置要連接的監(jiān)控機IP、端口號、本機腳本項目存放的路徑,進行與監(jiān)控機間的連接。進一步地,所述步驟Sll具體包括
SllO :設置監(jiān)控機端智能調(diào)度機制;
Sm :測試機端接收測試指令,調(diào)用腳本運行,內(nèi)含中斷處理;
5112:測試機實時回傳測試結(jié)果,分配任務運行結(jié)束后返回日志;
5113:監(jiān)控機分析測試結(jié)果,檢查測試機狀態(tài),如果空閑,則轉(zhuǎn)到執(zhí)行步驟S110。進一步地,在所述SllO中,以用戶操作平臺生成的運行場景列表為循環(huán)依據(jù),運 行場景列表中設置運行狀態(tài)字段;調(diào)度機制按順序循環(huán)判斷當前場景的運行條件,當該場景尚未運行,且其依賴項運行成功的才予以進行分發(fā)。進一步地,在所述步驟S113中,監(jiān)控機接收到測試機發(fā)回的運行信息后,進行處理,如果是測試結(jié)果信息,則實時記錄到運行結(jié)果中,如果是測試日志,則說明該測試機運行結(jié)束,將日志信息附到監(jiān)控機端的日志文件后面,返回繼續(xù)進行后續(xù)腳本的分配,直到所有的場景運行結(jié)束。進一步地,在所述步驟S12中,通過運行場景生成機制把已選場景放在一個運行場景列表中,用實例名稱字段標識運行的實例,在腳本執(zhí)行時,腳本會判斷當前實例名稱是否是要運行的實例,進行選擇實例處理,再進行測試。相較于現(xiàn)有技術(shù),本發(fā)明分布式智能調(diào)度方法的用戶操作平臺支持用戶靈活選擇測試場景;通過監(jiān)控機調(diào)度機制,實現(xiàn)測試場景間關系的智能處理;支持多個數(shù)據(jù)庫實例并行運行;腳本內(nèi)含中斷處理,實現(xiàn)測試結(jié)果記錄內(nèi)容的隨需而變。
圖I是是本發(fā)明的分布式運行設計示意 圖2是是本發(fā)明的用戶操作平臺的參數(shù)設置界面示意 圖3是是本發(fā)明的用戶操作平臺的選擇場景界面示意 圖4是是本發(fā)明的用戶操作平臺的監(jiān)控機端界面示意 圖5是是本發(fā)明的用戶操作平臺的測試機端界面示意 圖6是本發(fā)明智能調(diào)度程序?qū)崿F(xiàn)流程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請參照圖I所示,本發(fā)明分布式智能調(diào)度方法包括如下步驟
SlO :提供一支持用戶靈活選擇場景的用戶操作平臺
首先完成場景列表,請參照圖I中的輸入文件-場景列表所示,場景列表文件用excel表的形式,每個產(chǎn)品版本作為一個sheet頁進行存放,記錄了所有場景的所屬關鍵應用、業(yè)務類型、場景編號、場景名稱、腳本相對于腳本項目的存放路徑、依賴項編號等基本信息,該列表在場景腳本開發(fā)結(jié)束后進行完善。用戶操作平臺以場景列表為依據(jù),支持用戶選擇產(chǎn)品版本、關鍵應用、業(yè)務類型過濾場景,靈活選擇測試場景,生成運行場景列表。該用戶操作平臺包括有參數(shù)設置界面、選擇場景界面、監(jiān)控機端操作界面、以及測試機端操作界面。其中,參數(shù)設置界面,參照圖2所示,具體為設置此次測試任務的唯一標識;選擇場景界面,參照圖3所示,實現(xiàn)從場景列表中根據(jù)用戶選擇的產(chǎn)品版本、關鍵應用、業(yè)務類型過濾出來場景,用戶可以靈活選擇運行場景,而后指定在哪個數(shù)據(jù)庫實例中運行,生成運行場景列表;監(jiān)控機端操作界面,參照圖4所示,可設置監(jiān)控機端的端口號,開啟這個端口號的socket,開啟監(jiān)聽。提供狀態(tài)欄,顯示各個測試機已經(jīng)運行的場景數(shù)量,當前運行的場景名稱、運行日志等信息;而測試機端操作界面,參照圖5所示,可設置要連接的監(jiān)控機IP、端口號、本機腳本項目存放的路徑,進行與監(jiān)控機間的連接。其內(nèi)測試指令窗口實時顯示接收的監(jiān)控機端的指令,運行狀態(tài)窗口實時顯示當前運行場景的日志。Sll :提供分布式調(diào)度執(zhí)行機制,其中,該步驟Sll具體包括
SllO :實現(xiàn)監(jiān)控機端智能調(diào)度機制。參照圖I所示,監(jiān)控機端實現(xiàn)開啟監(jiān)聽、測試場景 的智能調(diào)度、結(jié)果處理、以及根據(jù)結(jié)果進行后續(xù)場景的再分配,直到所有的場景運行結(jié)束。詳細的程序處理流程圖請參照圖6,以用戶操作平臺生成的運行場景列表為循環(huán)依據(jù),運行場景列表中設置運行狀態(tài)字段,分為未運行、正在運行、運行失敗、依賴項運行失敗無法運行。調(diào)度機制按順序循環(huán)判斷當前場景的運行條件。當該場景尚未運行,并且其依賴項運行成功的才予以進行分發(fā);如果場景正在運行或者已運行,依賴項運行失敗或由于其依賴項運行失敗無法運行的情況,則該場景不進行調(diào)度;如果該場景尚未運行,依賴項也尚未運行的情況,則找到其直接依賴項判斷是否滿足執(zhí)行條件,若滿足則運行,若不滿足則依次上溯循環(huán)判斷其依賴項,直到找到最源頭的依賴項,進行運行條件的判斷,若滿足則執(zhí)行,當起初要調(diào)度的場景的所有前序依賴項都檢查、運行完畢后,再進行此場景的調(diào)度執(zhí)行。對于運行標識的書寫使用依賴項運行失敗,所有的后續(xù)場景直接標識為“依賴項***運行失敗,無法運行”。這種智能調(diào)度方式就擺脫了用戶選擇場景必須按內(nèi)在順序排列的要求,支持用戶的靈活選擇,實現(xiàn)場景間關系的智能處理。Slll :測試機端實現(xiàn)內(nèi)容,請參照圖I測試機端,以兩臺測試機為例。測試機端實現(xiàn)接收測試指令,調(diào)用腳本運行,并進行中斷處理。腳本在處理運行中的非預期窗口實現(xiàn)中斷處理技術(shù)。預知非預期窗口可能有哪幾類,分別實現(xiàn)對這些窗口的異常處理方法;對于不可預知的異常情況,才重新啟動被測程序,實現(xiàn)測試工具無中斷運行。同時該技術(shù)實現(xiàn)了自己的錯誤記錄方法,不僅記錄中斷截圖、還可復制異常窗口的詳細信息、獲取測試工具返回的錯誤堆棧信息,實現(xiàn)了錯誤信息獲取的個性化需求。S112 :測試機實時回傳測試結(jié)果,分配任務運行結(jié)束后返回日志。S113 :監(jiān)控機分析測試結(jié)果,檢查測試機狀態(tài),如果空閑,則轉(zhuǎn)到執(zhí)行步驟S110。S114:監(jiān)控機接收到測試機發(fā)回的運行信息后,進行處理,如果是測試結(jié)果信息實時記錄到運行結(jié)果中,如果是測試日志,則說明該測試機運行結(jié)束,將日志信息附到監(jiān)控機端的日志文件后面,返回第一步繼續(xù)進行后續(xù)腳本的分配,直到所有的場景運行結(jié)束。S12 :在操作平臺中為每個數(shù)據(jù)庫實例選擇測試場景參照圖3選擇場景所示,選擇場景時,通過運行實例輸入框,設定已選場景在哪個數(shù)據(jù)庫實例中運行,運行場景生成機制會把所有的已選場景放在一個運行場景列表中,用實例名稱字段進行標識。在腳本執(zhí)行時,腳本會判斷當前實例名稱是否是要運行的實例,進行選擇實例處理,再進行測試。運行結(jié)果文件會分數(shù)據(jù)庫實例分別予以存放,實現(xiàn)數(shù)據(jù)庫實例測試結(jié)果的便捷分析。本發(fā)明方法使用Socket TCP/IP協(xié)議,實現(xiàn)監(jiān)控機與測試機間的通信,在此基礎上拓展四大部分用戶操作平臺、監(jiān)控機端、測試機端、運行結(jié)果文件,形成自動化測試分布式智能調(diào)度系統(tǒng)。通過提供用戶操作平臺、監(jiān)控機調(diào)度機制、測試腳本內(nèi)含中斷處理技術(shù)以解決目前現(xiàn)有技術(shù)存在的問題。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種分布式智能調(diào)度方法,其特征在于,包括如下步驟 510:提供一支持用戶靈活選擇場景的用戶操作平臺; 511:提供分布式調(diào)度執(zhí)行機制; 512:在操作平臺中為每個數(shù)據(jù)庫實例選擇測試場景; 其中,執(zhí)行步驟SlO之前首先完成場景列表,所述場景列表記錄了所有場景的所屬關鍵應用、業(yè)務類型、場景編號、場景名稱、腳本相對于腳本項目的存放路徑、以及依賴項編號的基本信息;所述用戶操作平臺以該場景列表為依據(jù),支持用戶選擇產(chǎn)品版本、關鍵應用、業(yè)務類型過濾場景,靈活選擇測試場景,生成運行場景列表。
2.如權(quán)利要求I所述分布式智能調(diào)度方法,其特征在于所述用戶操作平臺包括有參數(shù)設置界面、選擇場景界面、監(jiān)控機端操作界面、以及測試機端監(jiān)控界面;其中,參數(shù)設置界面用于設置此次測試任務的唯一標識、以及設置要進行測試的數(shù)據(jù)庫實例名稱;監(jiān)控機端操作界面設置有一個端口號;而測試機端操作界面用于設置要連接的監(jiān)控機IP、端口號、本機腳本項目存放的路徑,進行與監(jiān)控機間的連接。
3.如權(quán)利要求2所述分布式智能調(diào)度方法,其特征在于所述步驟Sll具體包括 5110:設置監(jiān)控機端智能調(diào)度機制; 5111:測試機端接收測試指令,調(diào)用腳本運行,內(nèi)含中斷處理; 5112:測試機實時回傳測試結(jié)果,分配任務運行結(jié)束后返回日志; 5113:監(jiān)控機分析測試結(jié)果,檢查測試機狀態(tài),如果空閑,則轉(zhuǎn)到執(zhí)行步驟S110。
4.如權(quán)利要求3所述分布式智能調(diào)度方法,其特征在于在所述SllO中,以用戶操作平臺生成的運行場景列表為循環(huán)依據(jù),運行場景列表中設置運行狀態(tài)字段;調(diào)度機制按順序循環(huán)判斷當前場景的運行條件,當該場景尚未運行,且其依賴項運行成功的才予以進行分發(fā)。
5.如權(quán)利要求4所述分布式智能調(diào)度方法,其特征在于在所述步驟S113中,監(jiān)控機接收到測試機發(fā)回的運行信息后,進行處理,如果是測試結(jié)果信息,則實時記錄到運行結(jié)果中,如果是測試日志,則說明該測試機運行結(jié)束,將日志信息附到監(jiān)控機端的日志文件后面,返回繼續(xù)進行后續(xù)腳本的分配,直到所有的場景運行結(jié)束。
6.如權(quán)利要求5所述分布式智能調(diào)度方法,其特征在于在所述步驟S12中,通過運行場景生成機制把已選場景放在一個運行場景列表中,用實例名稱字段標識運行的實例,在腳本執(zhí)行時,腳本會判斷當前實例名稱是否是要運行的實例,進行選擇實例處理,再進行測試。
全文摘要
本發(fā)明公開了一種分布式智能調(diào)度方法,包括如下步驟S10提供一支持用戶靈活選擇場景的用戶操作平臺;S11提供分布式調(diào)度執(zhí)行機制;S12在操作平臺中為每個數(shù)據(jù)庫實例選擇測試場景;其中,執(zhí)行步驟S10之前首先完成場景列表,所述場景列表記錄了所有場景的所屬關鍵應用、業(yè)務類型、場景編號、場景名稱、腳本相對于腳本項目的存放路徑、以及依賴項編號的基本信息。本發(fā)明的用戶操作平臺支持用戶靈活選擇測試場景;通過監(jiān)控機調(diào)度機制,實現(xiàn)測試場景間關系的智能處理;支持多個數(shù)據(jù)庫實例并行運行;腳本內(nèi)含中斷處理,實現(xiàn)測試結(jié)果記錄內(nèi)容的隨需而變。
文檔編號G06F11/36GK102799526SQ20121023609
公開日2012年11月28日 申請日期2012年7月10日 優(yōu)先權(quán)日2012年7月10日
發(fā)明者趙超, 程寶君, 劉俊紅 申請人:浪潮集團山東通用軟件有限公司