一種工作流自動(dòng)化測(cè)試系統(tǒng)及方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種工作流自動(dòng)化測(cè)試系統(tǒng)及方法,用于實(shí)現(xiàn)跨租戶(hù)的工作流自動(dòng)化測(cè)試,該系統(tǒng)包括:測(cè)試執(zhí)行裝置以及租戶(hù)動(dòng)態(tài)切換裝置;測(cè)試執(zhí)行裝置,用于啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;根據(jù)線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求;租戶(hù)動(dòng)態(tài)切換裝置,用于保存獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法;保存線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。
【專(zhuān)利說(shuō)明】
一種工作流自動(dòng)化測(cè)試系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及工作流技術(shù)領(lǐng)域,具體涉及一種工作流自動(dòng)化測(cè)試系統(tǒng)及方法。
【背景技術(shù)】
[0002]隨著云技術(shù)、多租戶(hù)技術(shù)的發(fā)展,使得很多企業(yè)都致力于建設(shè)云平臺(tái),以實(shí)現(xiàn)對(duì)企業(yè)技術(shù)架構(gòu)和資源的統(tǒng)一管理,在業(yè)務(wù)流程領(lǐng)域也不例外。工作流云服務(wù)一般是建立一個(gè)企業(yè)級(jí)的服務(wù),企業(yè)內(nèi)的所有應(yīng)用系統(tǒng)如果有流程方面的需求,可以共享使用該服務(wù)。因?yàn)楣蚕硎褂靡粋€(gè)云服務(wù),所以對(duì)各個(gè)應(yīng)用系統(tǒng)必須建立數(shù)據(jù)隔離機(jī)制,而采用多租戶(hù)技術(shù)進(jìn)行數(shù)據(jù)隔離是一個(gè)很好的實(shí)現(xiàn)方式。另一方面,從整體的視角來(lái)看業(yè)務(wù)流程,一筆業(yè)務(wù)的完整流程往往是以分段的方式分散在多個(gè)應(yīng)用系統(tǒng)中的、跨系統(tǒng)、跨部門(mén),如果使用多租戶(hù)工作流云服務(wù),就體現(xiàn)為業(yè)務(wù)流程分段存在于多個(gè)租戶(hù)中,因此整體完成一筆業(yè)務(wù)需要多個(gè)租戶(hù)之間的流程交互。
[0003]同時(shí),在建設(shè)大量業(yè)務(wù)流程的過(guò)程中,業(yè)務(wù)流程的設(shè)計(jì)、開(kāi)發(fā)、投產(chǎn)、變更都需要經(jīng)過(guò)完善的測(cè)試之后才能投入生產(chǎn)。在現(xiàn)有技術(shù)中,可以采用自動(dòng)化測(cè)試的方式通過(guò)編寫(xiě)或錄制測(cè)試腳本對(duì)工作流進(jìn)行測(cè)試。現(xiàn)有工作流服務(wù)的業(yè)務(wù)流程自動(dòng)化測(cè)試,一般是將一個(gè)業(yè)務(wù)流程測(cè)試集,在一個(gè)工作流服務(wù)上測(cè)試執(zhí)行,測(cè)試僅限于在這個(gè)工作流服務(wù)內(nèi)。而對(duì)于多租戶(hù)工作流云服務(wù),需要將多個(gè)租戶(hù)的測(cè)試集集中起來(lái)進(jìn)行跨租戶(hù)的業(yè)務(wù)流程的自動(dòng)化測(cè)試。但是,在現(xiàn)有技術(shù)中無(wú)法對(duì)租戶(hù)進(jìn)行動(dòng)態(tài)切換從而無(wú)法實(shí)現(xiàn)跨租戶(hù)的工作流自動(dòng)化測(cè)試。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種工作流自動(dòng)化測(cè)試系統(tǒng)及方法,以解決現(xiàn)有技術(shù)中無(wú)法實(shí)現(xiàn)跨租戶(hù)的工作流自動(dòng)化測(cè)試。
[0005]為解決上述問(wèn)題,本發(fā)明提供的技術(shù)方案如下:
[0006]—種工作流自動(dòng)化測(cè)試系統(tǒng),所述系統(tǒng)包括:
[0007]測(cè)試執(zhí)行裝置以及租戶(hù)動(dòng)態(tài)切換裝置;
[0008]所述測(cè)試執(zhí)行裝置,用于啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,所述測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;根據(jù)所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向所述線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求;
[0009]所述租戶(hù)動(dòng)態(tài)切換裝置,用于保存所述獲取線(xiàn)程當(dāng)前租戶(hù)算法、所述切換線(xiàn)程當(dāng)前租戶(hù)算法、所述反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及所述重置線(xiàn)程當(dāng)前租戶(hù)算法;保存所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,所述租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。
[0010]相應(yīng)的,所述測(cè)試執(zhí)行裝置還用于調(diào)用初始化默認(rèn)租戶(hù)算法設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息;所述租戶(hù)動(dòng)態(tài)切換裝置還用于保存所述初始化默認(rèn)租戶(hù)算法以及所述默認(rèn)租戶(hù)的租戶(hù)信息;
[0011]所述初始化默認(rèn)租戶(hù)算法包括采用輸入的默認(rèn)租戶(hù)信息設(shè)置所述默認(rèn)租戶(hù)的租戶(hù)信息。
[0012]相應(yīng)的,所述租戶(hù)動(dòng)態(tài)切換裝置還用于保存線(xiàn)程歷史租戶(hù)的租戶(hù)信息;
[0013]所述獲取線(xiàn)程當(dāng)前租戶(hù)算法包括讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置并獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息;
[0014]所述切換線(xiàn)程當(dāng)前租戶(hù)算法包括調(diào)用所述獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;將所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息設(shè)置為線(xiàn)程歷史租戶(hù)的租戶(hù)信息;采用輸入的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;
[0015]所述反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息不為空,讀取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,將所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息與所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息進(jìn)行置換;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程歷史租戶(hù)為空的異常信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程當(dāng)前租戶(hù)為空的異常信息;
[0016]所述重置線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息。
[0017]相應(yīng)的,所述系統(tǒng)還包括:
[0018]調(diào)度裝置,用于將測(cè)試程序分解為η個(gè)部分,以使所述測(cè)試執(zhí)行裝置啟動(dòng)η個(gè)線(xiàn)程,每個(gè)線(xiàn)程執(zhí)行一部分測(cè)試程序,其中,η為正整數(shù);
[0019]所述租戶(hù)動(dòng)態(tài)切換裝置還用于保存每個(gè)線(xiàn)程的線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息以及每個(gè)線(xiàn)程的線(xiàn)程歷史租戶(hù)的租戶(hù)信息。
[0020]相應(yīng)的,所述系統(tǒng)還包括:
[0021]驗(yàn)證裝置以及報(bào)告裝置;
[0022]所述驗(yàn)證裝置,用于對(duì)所述測(cè)試程序的執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確信息、錯(cuò)誤信息或異常信息;
[0023]所述報(bào)告裝置,用于對(duì)所述執(zhí)行結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告。
[0024]—種工作流自動(dòng)化測(cè)試方法,所述方法包括:
[0025]啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,所述測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;
[0026]根據(jù)所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向所述線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求,所述租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。
[0027]相應(yīng)的,所述方法還包括:
[0028]調(diào)用初始化默認(rèn)租戶(hù)算法設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息;
[0029]所述初始化默認(rèn)租戶(hù)算法包括采用輸入的默認(rèn)租戶(hù)信息設(shè)置所述默認(rèn)租戶(hù)的租戶(hù)信息。
[0030]相應(yīng)的,所述獲取線(xiàn)程當(dāng)前租戶(hù)算法包括讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置并獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息;
[0031]所述切換線(xiàn)程當(dāng)前租戶(hù)算法包括調(diào)用所述獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;將所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息設(shè)置為線(xiàn)程歷史租戶(hù)的租戶(hù)信息;采用輸入的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;
[0032]所述反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息不為空,讀取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,將所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息與所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息進(jìn)行置換;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程歷史租戶(hù)為空的異常信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程當(dāng)前租戶(hù)為空的異常信息;
[0033]所述重置線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息。
[0034]相應(yīng)的,所述方法還包括:
[0035]將測(cè)試程序分解為η個(gè)部分;
[0036]所述啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,包括:
[0037]啟動(dòng)η個(gè)線(xiàn)程,每個(gè)線(xiàn)程執(zhí)行一部分測(cè)試程序,其中,η為正整數(shù)。
[0038]相應(yīng)的,所述方法還包括:
[0039]對(duì)所述測(cè)試程序的執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確信息、錯(cuò)誤信息或異常信息;
[0040]和/或,對(duì)所述執(zhí)行結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告。
[0041]由此可見(jiàn),本發(fā)明實(shí)施例具有如下有益效果:
[0042]本發(fā)明實(shí)施例可以應(yīng)用于多租戶(hù)工作流云服務(wù)自動(dòng)化測(cè)試中,在自動(dòng)化測(cè)試過(guò)程中,能夠設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,從而向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求,即能夠?qū)崿F(xiàn)動(dòng)態(tài)租戶(hù)切換,使得測(cè)試程序可以根據(jù)需要,達(dá)到動(dòng)態(tài)切換目標(biāo)租戶(hù)、測(cè)試跨租戶(hù)工作流的目的,因此可以測(cè)試整個(gè)多租戶(hù)工作流云服務(wù),以保證多租戶(hù)工作流云服務(wù)系統(tǒng)變更的正確性。
【附圖說(shuō)明】
[0043]圖1為本發(fā)明提供的實(shí)現(xiàn)工作流自動(dòng)化測(cè)試系統(tǒng)實(shí)施例的示意圖;
[0044]圖2為本發(fā)明提供的實(shí)現(xiàn)工作流自動(dòng)化測(cè)試系統(tǒng)實(shí)施例的工作原理示意圖;
[0045]圖3為本發(fā)明實(shí)施例中租戶(hù)動(dòng)態(tài)切換裝置的示意圖;
[0046]圖4為本發(fā)明實(shí)施例租戶(hù)動(dòng)態(tài)切換裝置中數(shù)據(jù)結(jié)構(gòu)的示意圖;
[0047]圖5為本發(fā)明實(shí)施例中初始化默認(rèn)租戶(hù)算法的流程圖;
[0048]圖6為本發(fā)明實(shí)施例中獲取線(xiàn)程當(dāng)前租戶(hù)算法的流程圖;
[0049]圖7為本發(fā)明實(shí)施例中切換線(xiàn)程當(dāng)前租戶(hù)算法的流程圖;
[0050]圖8為本發(fā)明實(shí)施例中反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法的流程圖;
[0051 ]圖9為本發(fā)明實(shí)施例中重置線(xiàn)程當(dāng)前租戶(hù)算法的流程圖;
[0052]圖10為本發(fā)明提供的實(shí)現(xiàn)工作流自動(dòng)化測(cè)試方法實(shí)施例的流程圖。
【具體實(shí)施方式】
[0053]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)的說(shuō)明。
[0054]首先對(duì)本發(fā)明實(shí)施例中涉及的專(zhuān)業(yè)術(shù)語(yǔ)進(jìn)行解釋說(shuō)明。
[0055]多租戶(hù)技術(shù)(mult1-tenancy technology),或稱(chēng)多重租賃技術(shù),是一種軟件架構(gòu)技術(shù),它是在探討與實(shí)現(xiàn)如何于多用戶(hù)的環(huán)境下共用相同的系統(tǒng)或程序組件,并且仍可確保各用戶(hù)之間數(shù)據(jù)的隔離性。在多租戶(hù)技術(shù)中,租戶(hù)(tenant)是多租戶(hù)技術(shù)中的一個(gè)租戶(hù),是指使用系統(tǒng)或電腦運(yùn)算資源的客戶(hù)。在多租戶(hù)技術(shù)中,租戶(hù)包含在系統(tǒng)中可識(shí)別為指定用戶(hù)的一切數(shù)據(jù),例如帳戶(hù)與統(tǒng)計(jì)信息(accounting data),用戶(hù)在系統(tǒng)中建置的各式數(shù)據(jù),以及用戶(hù)本身的客制化應(yīng)用程序環(huán)境等,都屬于租戶(hù)的范圍,而租戶(hù)所使用的則是基于供應(yīng)商所開(kāi)發(fā)或建置的應(yīng)用系統(tǒng)或運(yùn)算資源等,供應(yīng)商所設(shè)計(jì)的應(yīng)用系統(tǒng)會(huì)容納數(shù)個(gè)以上的用戶(hù)在同一個(gè)環(huán)境下使用,為了要讓多個(gè)用戶(hù)的環(huán)境能力同一個(gè)應(yīng)用程序與運(yùn)算環(huán)境上使用,則應(yīng)用程序與運(yùn)算環(huán)境必須要特別設(shè)計(jì),除了可以讓系統(tǒng)平臺(tái)可以允許同時(shí)讓多份相同的應(yīng)用程序運(yùn)行外,保護(hù)租戶(hù)數(shù)據(jù)的隱私與安全也是多租戶(hù)技術(shù)的關(guān)鍵之一。技術(shù)上,多租戶(hù)技術(shù)可以通過(guò)許多不同的方式來(lái)切割用戶(hù)的應(yīng)用程序環(huán)境或數(shù)據(jù)。
[0056]租戶(hù)信息是指租戶(hù)需要具備標(biāo)識(shí)自己的信息,可以使用租戶(hù)碼,這個(gè)租戶(hù)碼在一個(gè)云服務(wù)上是唯一的標(biāo)識(shí)符。但是如果有多個(gè)云存在的時(shí)候,一個(gè)云服務(wù)的URL(UniformResource Locator,統(tǒng)一資源定位符)+租戶(hù)碼是全局唯一的。此外,在本發(fā)明實(shí)施例中可以對(duì)一個(gè)租戶(hù)設(shè)計(jì)更多的租戶(hù)信息包括租戶(hù)類(lèi)型、接入用戶(hù)名稱(chēng)、接入用戶(hù)口令,一個(gè)租戶(hù)可以擁有多個(gè)接入用戶(hù),但是在一次訪(fǎng)問(wèn)中,只能以一個(gè)接入用戶(hù)身份進(jìn)行接入一個(gè)租戶(hù)。
[0057]工作流是指“業(yè)務(wù)過(guò)程的部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境下的自動(dòng)化”,是對(duì)工作流程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括描述。
[0058]云服務(wù)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。
[0059]多租戶(hù)工作流云服務(wù)是指工作流以云服務(wù)的方式對(duì)外提供服務(wù),為多個(gè)應(yīng)用系統(tǒng)提供共享接入,使用多租戶(hù)技術(shù)實(shí)現(xiàn)多個(gè)應(yīng)用系統(tǒng)的服務(wù)能力定制和數(shù)據(jù)隔離,每個(gè)接入的應(yīng)用系統(tǒng)即一個(gè)租戶(hù)。
[0060]流程也稱(chēng)為業(yè)務(wù)流程,由多個(gè)業(yè)務(wù)環(huán)節(jié)(或稱(chēng)步驟、活動(dòng)等)構(gòu)成一個(gè)完整的業(yè)務(wù)行為的過(guò)程可稱(chēng)為流程。環(huán)節(jié)即構(gòu)成流程的各個(gè)步驟,稱(chēng)為環(huán)節(jié)。流程實(shí)例則是對(duì)流程的一次執(zhí)行。任務(wù)(任務(wù)實(shí)例)是工作流中一類(lèi)對(duì)象,它一般是現(xiàn)實(shí)生活中一些事宜、任務(wù)、事項(xiàng)、步驟的抽象,在流程執(zhí)行到任務(wù)環(huán)節(jié)的時(shí)候會(huì)產(chǎn)生任務(wù)實(shí)例?;顒?dòng)實(shí)例也是工作流中一類(lèi)對(duì)象,它一般是現(xiàn)實(shí)生活中一些事宜、事項(xiàng)、步驟的抽象,在流程執(zhí)行到自動(dòng)活動(dòng)環(huán)節(jié)的時(shí)候會(huì)產(chǎn)生一條活動(dòng)實(shí)例。
[0061]—般情況下,一個(gè)接入工作流云服務(wù)的應(yīng)用系統(tǒng)即對(duì)應(yīng)一個(gè)租戶(hù),系統(tǒng)即可用該租戶(hù)對(duì)工作流云服務(wù)進(jìn)行訪(fǎng)問(wèn),該系統(tǒng)的業(yè)務(wù)流程完全運(yùn)行于工作流云服務(wù)的一個(gè)租戶(hù)中。但是也存在這種業(yè)務(wù)流程,它的業(yè)務(wù)分段存在于多個(gè)租戶(hù)中,完成這筆流程需要進(jìn)行跨租戶(hù)的運(yùn)作,這種流程可以稱(chēng)為跨租戶(hù)流程。
[0062]回歸測(cè)試是指修改了舊代碼后,重新進(jìn)行測(cè)試以確認(rèn)沒(méi)有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤。在本實(shí)施例中可以實(shí)現(xiàn)對(duì)“流程”的回歸測(cè)試,即修改了舊的流程后,重新進(jìn)行流程測(cè)試以確認(rèn)對(duì)整個(gè)系統(tǒng)以及流程運(yùn)行沒(méi)有引入新的錯(cuò)誤或?qū)е缕渌δ墚a(chǎn)生錯(cuò)誤。
[0063]對(duì)多租戶(hù)工作流云服務(wù)場(chǎng)景下,因?yàn)樵跍y(cè)試集的一個(gè)測(cè)試場(chǎng)景中,一部分測(cè)試環(huán)節(jié)是使用租戶(hù)A進(jìn)行訪(fǎng)問(wèn),一部分測(cè)試環(huán)節(jié)是使用租戶(hù)B進(jìn)行訪(fǎng)問(wèn),租戶(hù)數(shù)量甚至更多,還有反復(fù)需要切換租戶(hù)。因此,在現(xiàn)有技術(shù)中,對(duì)于跨租戶(hù)的流程,不具備租戶(hù)動(dòng)態(tài)切換的功能,難以做到自動(dòng)化測(cè)試。
[0064]為此,本發(fā)明實(shí)施例解決在業(yè)務(wù)流程自動(dòng)化測(cè)試過(guò)程中,需要?jiǎng)討B(tài)切換租戶(hù)進(jìn)行多個(gè)租戶(hù)的測(cè)試和執(zhí)行跨租戶(hù)業(yè)務(wù)流程測(cè)試邏輯的問(wèn)題??梢詰?yīng)用于企業(yè)級(jí)多租戶(hù)工作流云服務(wù)的自動(dòng)化測(cè)試系統(tǒng)中,提供進(jìn)行系統(tǒng)回歸測(cè)試時(shí),對(duì)于多租戶(hù)測(cè)試集、跨租戶(hù)業(yè)務(wù)流程提供租戶(hù)動(dòng)態(tài)切換的功能。本發(fā)明實(shí)施例的核心是在工作流自動(dòng)化測(cè)試系統(tǒng)中增加一個(gè)租戶(hù)動(dòng)態(tài)切換裝置,它可以根據(jù)訪(fǎng)問(wèn)設(shè)定的租戶(hù)目標(biāo)進(jìn)行租戶(hù)動(dòng)態(tài)切換。
[0065]基于上述思想,參見(jiàn)圖1所示,是本發(fā)明實(shí)施例提供的工作流自動(dòng)化測(cè)試系統(tǒng)實(shí)施例,該系統(tǒng)可以包括:
[0066]測(cè)試執(zhí)行裝置101以及租戶(hù)動(dòng)態(tài)切換裝置102。
[0067]其中,測(cè)試執(zhí)行裝置101,可以用于啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;根據(jù)線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求。
[0068]在本發(fā)明一些可能的實(shí)現(xiàn)方式中,測(cè)試執(zhí)行裝置101還可以用于調(diào)用初始化默認(rèn)租戶(hù)算法設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息。
[0069]租戶(hù)動(dòng)態(tài)切換裝置102,用于保存獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法;保存線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。
[0070]在本發(fā)明一些可能的實(shí)現(xiàn)方式中,租戶(hù)動(dòng)態(tài)切換裝置102還可以用于保存初始化默認(rèn)租戶(hù)算法、默認(rèn)租戶(hù)的租戶(hù)信息以及線(xiàn)程歷史租戶(hù)的租戶(hù)信息。
[0071]在本發(fā)明一些可能的實(shí)現(xiàn)方式中,本發(fā)明實(shí)施例提供的工作流自動(dòng)化測(cè)試系統(tǒng)還可以包括:
[0072]調(diào)度裝置,用于將測(cè)試程序分解為η個(gè)部分,以使測(cè)試執(zhí)行裝置啟動(dòng)η個(gè)線(xiàn)程,每個(gè)線(xiàn)程執(zhí)行一部分測(cè)試程序,其中,η為正整數(shù);
[0073]租戶(hù)動(dòng)態(tài)切換裝置還用于保存每個(gè)線(xiàn)程的線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息以及每個(gè)線(xiàn)程的線(xiàn)程歷史租戶(hù)的租戶(hù)信息。
[0074]在本發(fā)明一些可能的實(shí)現(xiàn)方式中,本發(fā)明實(shí)施例提供的工作流自動(dòng)化測(cè)試系統(tǒng)還可以包括:
[0075]驗(yàn)證裝置以及報(bào)告裝置;
[0076]驗(yàn)證裝置,用于對(duì)測(cè)試程序的執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確信息、錯(cuò)誤信息或異常信息;
[0077]報(bào)告裝置,用于對(duì)執(zhí)行結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告。
[0078]參見(jiàn)圖2所示,對(duì)本發(fā)明實(shí)施例提供的工作流自動(dòng)化測(cè)試系統(tǒng)實(shí)施例的工作原理進(jìn)行說(shuō)明。
[0079]本實(shí)施例提供的工作流自動(dòng)化測(cè)試系統(tǒng)實(shí)施例由調(diào)度裝置、執(zhí)行裝置、租戶(hù)動(dòng)態(tài)切換裝置、驗(yàn)證裝置、報(bào)告裝置構(gòu)成,輸入可以為測(cè)試作業(yè)、測(cè)試的過(guò)程中向多個(gè)工作流云服務(wù)的多個(gè)租戶(hù)發(fā)出測(cè)試請(qǐng)求,獲得測(cè)試結(jié)果,根據(jù)測(cè)試結(jié)果最終輸出為測(cè)試報(bào)告。
[0080]具體的,首先接收輸入的測(cè)試作業(yè),測(cè)試作業(yè)由測(cè)試集構(gòu)成,測(cè)試集中包括測(cè)試程序,測(cè)試程序可以分為測(cè)試邏輯腳本以及租戶(hù)切換腳本。
[0081]調(diào)度裝置可以將測(cè)試集分解成多個(gè)部分,使用多線(xiàn)程技術(shù)每個(gè)執(zhí)行線(xiàn)程認(rèn)領(lǐng)測(cè)試集中的一部分由執(zhí)行裝置進(jìn)行執(zhí)行。在測(cè)試集較小時(shí)也可以不包括調(diào)度裝置,僅由執(zhí)行裝置啟動(dòng)一個(gè)線(xiàn)程執(zhí)行測(cè)試程序。
[0082]執(zhí)行裝置是對(duì)測(cè)試集中的測(cè)試程序進(jìn)行實(shí)際執(zhí)行,測(cè)試程序中的測(cè)試邏輯腳本可以調(diào)用租戶(hù)動(dòng)態(tài)切換裝置中保存的獲取線(xiàn)程當(dāng)前租戶(hù)算法設(shè)置并獲取或者直接獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,將測(cè)試請(qǐng)求發(fā)向當(dāng)前租戶(hù)即目標(biāo)租戶(hù),目標(biāo)租戶(hù)位于一個(gè)工作流云服務(wù)實(shí)例中;在需要進(jìn)行租戶(hù)切換時(shí),測(cè)試程序中的租戶(hù)切換腳本可以調(diào)用租戶(hù)動(dòng)態(tài)切換裝置中保存的切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,再由測(cè)試邏輯腳本調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。這樣目標(biāo)租戶(hù)的動(dòng)態(tài)切換由保存在租戶(hù)動(dòng)態(tài)切換裝置中的算法實(shí)現(xiàn)。
[0083]驗(yàn)證裝置可以對(duì)執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確、錯(cuò)誤(錯(cuò)誤時(shí)有錯(cuò)誤信息)、異常等信息;報(bào)告裝置對(duì)所有測(cè)試結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告,可以包含成功數(shù)、錯(cuò)誤數(shù)、異常數(shù)、成功率、覆蓋率、錯(cuò)誤信息、異常信息等內(nèi)容。
[0084]參見(jiàn)圖3所示,租戶(hù)動(dòng)態(tài)切換裝置可以由數(shù)據(jù)存儲(chǔ)模塊以及算法和接口模塊構(gòu)成,數(shù)據(jù)存儲(chǔ)模塊用來(lái)存儲(chǔ)默認(rèn)租戶(hù)的租戶(hù)信息以及線(xiàn)程租戶(hù)信息列表,線(xiàn)程租戶(hù)信息列表保存每個(gè)線(xiàn)程的線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息以及每個(gè)線(xiàn)程的線(xiàn)程歷史租戶(hù)的租戶(hù)信息,租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。算法和接口模塊用以完成租戶(hù)動(dòng)態(tài)切換,提供了一系列租戶(hù)動(dòng)態(tài)切換的算法包括初始化默認(rèn)租戶(hù)算法、獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法,其中切換線(xiàn)程當(dāng)前租戶(hù)算法用來(lái)動(dòng)態(tài)切換租戶(hù),反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法是它的回退操作,重置線(xiàn)程當(dāng)前租戶(hù)算法是重置為默認(rèn)租戶(hù)的操作,獲取線(xiàn)程當(dāng)前租戶(hù)算法是讀取信息操作,初始化默認(rèn)租戶(hù)算法是裝置初始化時(shí)的操作,五個(gè)算法配合完成租戶(hù)動(dòng)態(tài)切換,在后續(xù)實(shí)施例中會(huì)再詳細(xì)說(shuō)明各個(gè)算法的實(shí)現(xiàn)過(guò)程。同時(shí)對(duì)這些算法提供對(duì)外服務(wù)的操作接口,也就是說(shuō),執(zhí)行裝置可以通過(guò)算法和接口模塊調(diào)用這些算法。
[0085]參見(jiàn)圖4所示,在具體實(shí)現(xiàn)中,為了本發(fā)明實(shí)施例的租戶(hù)動(dòng)態(tài)切換裝置的實(shí)現(xiàn)設(shè)計(jì)了租戶(hù)動(dòng)態(tài)切換器、租戶(hù)信息以及執(zhí)行線(xiàn)程租戶(hù)信息三個(gè)數(shù)據(jù)結(jié)構(gòu)。
[0086]租戶(hù)動(dòng)態(tài)切換器保存一個(gè)默認(rèn)租戶(hù)的租戶(hù)信息、一個(gè)執(zhí)行線(xiàn)程租戶(hù)信息列表以及保存了初始化默認(rèn)租戶(hù)算法、獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法。其中,默認(rèn)租戶(hù)是系統(tǒng)初始化的時(shí)候,會(huì)設(shè)定一個(gè)默認(rèn)租戶(hù),對(duì)于測(cè)試集中所有的測(cè)試程序,如果沒(méi)有設(shè)定目標(biāo)租戶(hù),則使用默認(rèn)租戶(hù)的租戶(hù)信息作為線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。執(zhí)行線(xiàn)程租戶(hù)信息列表是一個(gè)集合,對(duì)應(yīng)自動(dòng)化測(cè)試過(guò)程中的多個(gè)執(zhí)行線(xiàn)程,集合中的每個(gè)項(xiàng)為執(zhí)行線(xiàn)程租戶(hù)信息,每個(gè)執(zhí)行線(xiàn)程租戶(hù)信息包含一個(gè)線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息和一個(gè)線(xiàn)程歷史租戶(hù)的租戶(hù)信息。其中,當(dāng)前租戶(hù)是該執(zhí)行線(xiàn)程當(dāng)前正在使用的租戶(hù),歷史租戶(hù)是該執(zhí)行線(xiàn)程在做租戶(hù)動(dòng)態(tài)切換之前使用的租戶(hù),這個(gè)屬性的設(shè)置主要是用來(lái)便于做兩個(gè)租戶(hù)間的頻繁切換使用。
[0087]租戶(hù)信息包含租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令、云服務(wù)地址,是實(shí)際訪(fǎng)問(wèn)多租戶(hù)工作流云服務(wù)中一個(gè)具體租戶(hù)空間的必不可少的信息。其中,租戶(hù)碼是唯一標(biāo)識(shí)一個(gè)租戶(hù)的代碼;租戶(hù)類(lèi)型用于描述租戶(hù)的類(lèi)型,可以是普通租戶(hù)和管理類(lèi)租戶(hù);接入用戶(hù)是一個(gè)租戶(hù)通過(guò)接入用戶(hù)來(lái)訪(fǎng)問(wèn)工作流云服務(wù);接入口令是接入用戶(hù)的口令,用于訪(fǎng)問(wèn)工作流云服務(wù)的時(shí)候進(jìn)行身份驗(yàn)證;云服務(wù)地址是一個(gè)租戶(hù)所屬的工作流云服務(wù)的URL,這個(gè)URL在訪(fǎng)問(wèn)時(shí)也作為尋址使用。
[0088]以下再對(duì)租戶(hù)動(dòng)態(tài)切換裝置中實(shí)現(xiàn)的初始化默認(rèn)租戶(hù)算法、獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法分別進(jìn)行說(shuō)明。
[0089]參見(jiàn)圖5所示,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例中初始化默認(rèn)租戶(hù)算法可以包括:
[0090]步驟501:采用輸入的默認(rèn)租戶(hù)信息設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息。
[0091]初始化默認(rèn)租戶(hù)算法發(fā)生在租戶(hù)動(dòng)態(tài)切換裝置初始化的時(shí)候,這時(shí)候會(huì)根據(jù)輸入的參數(shù)設(shè)置數(shù)據(jù)存儲(chǔ)模塊中的默認(rèn)租戶(hù)的租戶(hù)信息。
[0092]參見(jiàn)圖6所示,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例中獲取線(xiàn)程當(dāng)前租戶(hù)算法可以包括:
[0093]步驟601:讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;
[0094]步驟602:判斷線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息是否為空,如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,進(jìn)入步驟603,如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,進(jìn)入步驟607。
[0095]步驟603:讀取默認(rèn)租戶(hù)的租戶(hù)信息。
[0096]步驟604:判斷默認(rèn)租戶(hù)的租戶(hù)信息是否為空,如果默認(rèn)租戶(hù)的租戶(hù)信息為空,進(jìn)入步驟605,如果默認(rèn)租戶(hù)的租戶(hù)信息不為空,進(jìn)入步驟606。
[0097]步驟605:拋出默認(rèn)租戶(hù)為空的異常信息,結(jié)束當(dāng)前流程。
[0098]步驟606:采用默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。
[0099]步驟607:獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,結(jié)束當(dāng)前流程。
[0100]在線(xiàn)程執(zhí)行測(cè)試的時(shí)候,對(duì)工作流云服務(wù)的某個(gè)租戶(hù)進(jìn)行訪(fǎng)問(wèn),需要知曉訪(fǎng)問(wèn)的目標(biāo)租戶(hù),此時(shí)執(zhí)行裝置調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法來(lái)獲取本線(xiàn)程的當(dāng)前租戶(hù),以向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求。
[0101]參見(jiàn)圖7所示,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例中切換線(xiàn)程當(dāng)前租戶(hù)算法可以包括:
[0102]步驟701:調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。
[0103]步驟702:將線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息設(shè)置為線(xiàn)程歷史租戶(hù)的租戶(hù)信息。
[0104]步驟703:采用輸入的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。
[0105]在線(xiàn)程執(zhí)行測(cè)試的時(shí)候,如果需要切換線(xiàn)程當(dāng)前租戶(hù)以對(duì)另一個(gè)租戶(hù)發(fā)出測(cè)試請(qǐng)求的時(shí)候,此時(shí)執(zhí)行裝置調(diào)用切換線(xiàn)程當(dāng)前租戶(hù)算法來(lái)切換本線(xiàn)程的當(dāng)前租戶(hù)。
[0106]參見(jiàn)圖8所示,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例中反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法可以包括:
[0107]步驟801:讀取線(xiàn)程歷史租戶(hù)的租戶(hù)信息。
[0108]步驟802:判斷線(xiàn)程歷史租戶(hù)的租戶(hù)信息是否為空,如果線(xiàn)程歷史租戶(hù)的租戶(hù)信息為空,進(jìn)入步驟803,如果線(xiàn)程歷史租戶(hù)的租戶(hù)信息不為空,進(jìn)入步驟804。
[0109]步驟803:拋出線(xiàn)程歷史租戶(hù)為空的異常信息,結(jié)束當(dāng)前流程。
[0110]步驟804:讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。
[0111]步驟805:判斷線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息是否為空,如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,進(jìn)入步驟806,如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,進(jìn)入步驟807。
[0112]步驟806:拋出線(xiàn)程當(dāng)前租戶(hù)為空的異常信息,結(jié)束當(dāng)前流程。
[0113]步驟807:將線(xiàn)程歷史租戶(hù)的租戶(hù)信息與線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息進(jìn)行置換,結(jié)束當(dāng)前流程。
[0114]在執(zhí)行線(xiàn)程執(zhí)行測(cè)試的時(shí)候,如果需要切換線(xiàn)程當(dāng)前租戶(hù)到本次切換前的租戶(hù),此時(shí)執(zhí)行裝置可以調(diào)用反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法,該功能主要是用來(lái)適應(yīng)測(cè)試中很多租戶(hù)動(dòng)態(tài)切換場(chǎng)景都是在兩個(gè)租戶(hù)間的頻繁切換,采用這種方法,用戶(hù)則無(wú)需輸入切換的參數(shù),而是直接反轉(zhuǎn)至上一次切換的租戶(hù)即可。
[0115]參見(jiàn)圖9所示,在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,在本發(fā)明實(shí)施例中重置線(xiàn)程當(dāng)前租戶(hù)算法可以包括:
[0116]步驟901:讀取默認(rèn)租戶(hù)的租戶(hù)信息。
[0117]步驟902:判斷默認(rèn)租戶(hù)的租戶(hù)信息是否為空,如果默認(rèn)租戶(hù)的租戶(hù)信息為空,進(jìn)入步驟903,如果默認(rèn)租戶(hù)的租戶(hù)信息不為空,進(jìn)入步驟904。
[0118]步驟903:拋出默認(rèn)租戶(hù)為空的異常信息,結(jié)束當(dāng)前流程。
[0119]步驟904:采用默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,結(jié)束當(dāng)前流程。
[0120]在線(xiàn)程執(zhí)行測(cè)試的時(shí)候,如果需要將線(xiàn)程當(dāng)前租戶(hù)重置為默認(rèn)租戶(hù),此時(shí)執(zhí)行裝置可以調(diào)用重置線(xiàn)程當(dāng)前租戶(hù)算法,將線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息重置為默認(rèn)租戶(hù)的租戶(hù)信息。
[0121]這樣,本發(fā)明實(shí)施例可以應(yīng)用于多租戶(hù)工作流云服務(wù)自動(dòng)化測(cè)試中,在自動(dòng)化測(cè)試過(guò)程中,能夠設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,從而向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求,即能夠?qū)崿F(xiàn)動(dòng)態(tài)租戶(hù)切換,使得測(cè)試程序可以根據(jù)需要,達(dá)到動(dòng)態(tài)切換目標(biāo)租戶(hù)、測(cè)試跨租戶(hù)工作流的目的,因此可以測(cè)試整個(gè)多租戶(hù)工作流云服務(wù),以保證多租戶(hù)工作流云服務(wù)系統(tǒng)變更的正確性。
[0122]參見(jiàn)圖10所示,本發(fā)明實(shí)施例還提供一種工作流自動(dòng)化測(cè)試方法實(shí)施例,可以包括以下步驟:
[0123]步驟1001:啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。
[0124]步驟1002:根據(jù)線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求,租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。
[0125]在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,還可以包括:調(diào)用初始化默認(rèn)租戶(hù)算法設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息。
[0126]具體的,初始化默認(rèn)租戶(hù)算法可以包括采用輸入的默認(rèn)租戶(hù)信息設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息。
[0127]獲取線(xiàn)程當(dāng)前租戶(hù)算法可以包括讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,讀取默認(rèn)租戶(hù)的租戶(hù)信息;如果默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置并獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出默認(rèn)租戶(hù)為空的異常?目息。
[0128]切換線(xiàn)程當(dāng)前租戶(hù)算法可以包括調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;將線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息設(shè)置為線(xiàn)程歷史租戶(hù)的租戶(hù)信息;采用輸入的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息。
[0129]反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法可以包括讀取線(xiàn)程歷史租戶(hù)的租戶(hù)信息;如果線(xiàn)程歷史租戶(hù)的租戶(hù)信息不為空,讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,將線(xiàn)程歷史租戶(hù)的租戶(hù)信息與線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息進(jìn)行置換;如果線(xiàn)程歷史租戶(hù)的租戶(hù)信息為空,拋出線(xiàn)程歷史租戶(hù)為空的異常信息;如果線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,拋出線(xiàn)程當(dāng)前租戶(hù)為空的異常信息。
[0130]重置線(xiàn)程當(dāng)前租戶(hù)算法可以包括讀取默認(rèn)租戶(hù)的租戶(hù)信息;如果默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出默認(rèn)租戶(hù)為空的異常信息。
[0131]在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,還可以包括:將測(cè)試程序分解為η個(gè)部分。則啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,包括:啟動(dòng)η個(gè)線(xiàn)程,每個(gè)線(xiàn)程執(zhí)行一部分測(cè)試程序,其中,η為正整數(shù)。
[0132]在本發(fā)明的一些可能的實(shí)現(xiàn)方式中,還可以包括:
[0133]對(duì)測(cè)試程序的執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確信息、錯(cuò)誤信息或異常信息;
[0134]和/或,對(duì)執(zhí)行結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告。
[0135]本發(fā)明實(shí)施例可以應(yīng)用于工作流自動(dòng)化測(cè)試系統(tǒng),工作流自動(dòng)化測(cè)試系統(tǒng)可以參見(jiàn)上述實(shí)施例的說(shuō)明,在此不再贅述。
[0136]這樣,本發(fā)明實(shí)施例可以應(yīng)用于多租戶(hù)工作流云服務(wù)自動(dòng)化測(cè)試中,在自動(dòng)化測(cè)試過(guò)程中,能夠設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,從而向線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求,即能夠?qū)崿F(xiàn)動(dòng)態(tài)租戶(hù)切換,使得測(cè)試程序可以根據(jù)需要,達(dá)到動(dòng)態(tài)切換目標(biāo)租戶(hù)、測(cè)試跨租戶(hù)工作流的目的,因此可以測(cè)試整個(gè)多租戶(hù)工作流云服務(wù),以保證多租戶(hù)工作流云服務(wù)系統(tǒng)變更的正確性。
[0137]需要說(shuō)明的是,本說(shuō)明書(shū)中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見(jiàn)即可。對(duì)于實(shí)施例公開(kāi)的系統(tǒng)或裝置而言,由于其與實(shí)施例公開(kāi)的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法部分說(shuō)明即可。
[0138]還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0139]結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(R0M)、電可編程R0M、電可擦除可編程R0M、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0140]對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專(zhuān)業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。
【主權(quán)項(xiàng)】
1.一種工作流自動(dòng)化測(cè)試系統(tǒng),其特征在于,所述系統(tǒng)包括: 測(cè)試執(zhí)行裝置以及租戶(hù)動(dòng)態(tài)切換裝置; 所述測(cè)試執(zhí)行裝置,用于啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,所述測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;根據(jù)所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向所述線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求; 所述租戶(hù)動(dòng)態(tài)切換裝置,用于保存所述獲取線(xiàn)程當(dāng)前租戶(hù)算法、所述切換線(xiàn)程當(dāng)前租戶(hù)算法、所述反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及所述重置線(xiàn)程當(dāng)前租戶(hù)算法;保存所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,所述租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述測(cè)試執(zhí)行裝置還用于調(diào)用初始化默認(rèn)租戶(hù)算法設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息;所述租戶(hù)動(dòng)態(tài)切換裝置還用于保存所述初始化默認(rèn)租戶(hù)算法以及所述默認(rèn)租戶(hù)的租戶(hù)信息; 所述初始化默認(rèn)租戶(hù)算法包括采用輸入的默認(rèn)租戶(hù)信息設(shè)置所述默認(rèn)租戶(hù)的租戶(hù)信息。3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述租戶(hù)動(dòng)態(tài)切換裝置還用于保存線(xiàn)程歷史租戶(hù)的租戶(hù)信息; 所述獲取線(xiàn)程當(dāng)前租戶(hù)算法包括讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置并獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息; 所述切換線(xiàn)程當(dāng)前租戶(hù)算法包括調(diào)用所述獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;將所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息設(shè)置為線(xiàn)程歷史租戶(hù)的租戶(hù)信息;采用輸入的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息; 所述反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息不為空,讀取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,將所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息與所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息進(jìn)行置換;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程歷史租戶(hù)為空的異常信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程當(dāng)前租戶(hù)為空的異常信息; 所述重置線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息。4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 調(diào)度裝置,用于將測(cè)試程序分解為η個(gè)部分,以使所述測(cè)試執(zhí)行裝置啟動(dòng)η個(gè)線(xiàn)程,每個(gè)線(xiàn)程執(zhí)行一部分測(cè)試程序,其中,η為正整數(shù); 所述租戶(hù)動(dòng)態(tài)切換裝置還用于保存每個(gè)線(xiàn)程的線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息以及每個(gè)線(xiàn)程的線(xiàn)程歷史租戶(hù)的租戶(hù)信息。5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 驗(yàn)證裝置以及報(bào)告裝置; 所述驗(yàn)證裝置,用于對(duì)所述測(cè)試程序的執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確信息、錯(cuò)誤信息或異常?目息; 所述報(bào)告裝置,用于對(duì)所述執(zhí)行結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告。6.一種工作流自動(dòng)化測(cè)試方法,其特征在于,所述方法包括: 啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,所述測(cè)試程序在執(zhí)行過(guò)程中調(diào)用獲取線(xiàn)程當(dāng)前租戶(hù)算法、切換線(xiàn)程當(dāng)前租戶(hù)算法、反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法以及重置線(xiàn)程當(dāng)前租戶(hù)算法中的一個(gè)或多個(gè)設(shè)置和/或獲取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息; 根據(jù)所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,向所述線(xiàn)程當(dāng)前租戶(hù)發(fā)送測(cè)試請(qǐng)求,所述租戶(hù)信息包括租戶(hù)碼、租戶(hù)類(lèi)型、接入用戶(hù)、接入口令以及云服務(wù)地址。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括: 調(diào)用初始化默認(rèn)租戶(hù)算法設(shè)置默認(rèn)租戶(hù)的租戶(hù)信息; 所述初始化默認(rèn)租戶(hù)算法包括采用輸入的默認(rèn)租戶(hù)信息設(shè)置所述默認(rèn)租戶(hù)的租戶(hù)信息。8.根據(jù)權(quán)利要求7所述的方法,其特征在于, 所述獲取線(xiàn)程當(dāng)前租戶(hù)算法包括讀取線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息,如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置并獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息; 所述切換線(xiàn)程當(dāng)前租戶(hù)算法包括調(diào)用所述獲取線(xiàn)程當(dāng)前租戶(hù)算法獲取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;將所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息設(shè)置為線(xiàn)程歷史租戶(hù)的租戶(hù)信息;采用輸入的租戶(hù)信息設(shè)置線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息; 所述反轉(zhuǎn)線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息不為空,讀取所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息不為空,將所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息與所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息進(jìn)行置換;如果所述線(xiàn)程歷史租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程歷史租戶(hù)為空的異常信息;如果所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息為空,拋出所述線(xiàn)程當(dāng)前租戶(hù)為空的異常信息; 所述重置線(xiàn)程當(dāng)前租戶(hù)算法包括讀取所述默認(rèn)租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息不為空,采用所述默認(rèn)租戶(hù)的租戶(hù)信息設(shè)置所述線(xiàn)程當(dāng)前租戶(hù)的租戶(hù)信息;如果所述默認(rèn)租戶(hù)的租戶(hù)信息為空,拋出所述默認(rèn)租戶(hù)為空的異常信息。9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括: 將測(cè)試程序分解為η個(gè)部分; 所述啟動(dòng)線(xiàn)程執(zhí)行測(cè)試程序,包括: 啟動(dòng)η個(gè)線(xiàn)程,每個(gè)線(xiàn)程執(zhí)行一部分測(cè)試程序,其中,η為正整數(shù)。10.根據(jù)權(quán)利要求6-9任一項(xiàng)所述的方法,其特征在于,所述方法還包括: 對(duì)所述測(cè)試程序的執(zhí)行結(jié)果進(jìn)行驗(yàn)證,輸出正確信息、錯(cuò)誤信息或異常信息; 和/或,對(duì)所述執(zhí)行結(jié)果進(jìn)行匯總,輸出測(cè)試報(bào)告。
【文檔編號(hào)】G06F11/36GK105955885SQ201610274571
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年4月28日
【發(fā)明人】牛志嘉, 劉旭, 王賀, 丁醫(yī), 史湘君
【申請(qǐng)人】中國(guó)農(nóng)業(yè)銀行股份有限公司