本說(shuō)明書(shū)涉及軟件測(cè)試,尤其是涉及一種基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法、系統(tǒng)及設(shè)備。
背景技術(shù):
1、ui自動(dòng)化測(cè)試是通過(guò)使用特定的測(cè)試工具來(lái)自動(dòng)化執(zhí)行軟件測(cè)試任務(wù)的方法。它可以替代絕大部分手動(dòng)測(cè)試,提高測(cè)試的準(zhǔn)確性和測(cè)試效率,實(shí)現(xiàn)更全面的測(cè)試內(nèi)容覆蓋,簡(jiǎn)化手動(dòng)測(cè)試中的大量重復(fù)操作。
2、然而,在現(xiàn)有的測(cè)試工具中,多數(shù)的測(cè)試工具只支持單一的測(cè)試場(chǎng)景,例如只能通過(guò)模擬前端頁(yè)面的操作進(jìn)行測(cè)試,或者直接對(duì)后端代碼進(jìn)行簡(jiǎn)單的接口測(cè)試,難以適合復(fù)雜的測(cè)試場(chǎng)景。不僅如此,在需要多瀏覽器或多語(yǔ)言切換的場(chǎng)景下,由于ui自動(dòng)化測(cè)試對(duì)測(cè)試場(chǎng)景全覆蓋的必要性,現(xiàn)有的測(cè)試工具容易出現(xiàn)執(zhí)行時(shí)間長(zhǎng)、腳本編寫(xiě)冗余等問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、本說(shuō)明書(shū)實(shí)施例的目的在于提供一種基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法、系統(tǒng)及設(shè)備,以降低復(fù)雜場(chǎng)景下ui自動(dòng)化測(cè)試的維護(hù)成本,提高復(fù)雜場(chǎng)景下ui自動(dòng)化測(cè)試的測(cè)試效率。
2、為達(dá)到上述目的,一方面,本說(shuō)明書(shū)實(shí)施例提供了一種基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法,包括:
3、提供多個(gè)測(cè)試腳本集合;所述多個(gè)測(cè)試腳本集合基于同一套業(yè)務(wù)邏輯生成,且每個(gè)所述測(cè)試腳本集合對(duì)應(yīng)一個(gè)不同的客戶(hù)端版本;
4、監(jiān)控執(zhí)行機(jī)集群的狀態(tài),并從所述執(zhí)行機(jī)集群中根據(jù)執(zhí)行機(jī)狀態(tài)選擇多個(gè)目標(biāo)執(zhí)行機(jī);
5、使調(diào)度機(jī)按照分發(fā)策略將所述測(cè)試腳本集合中的測(cè)試腳本分發(fā)至所述多個(gè)目標(biāo)執(zhí)行機(jī);
6、利用所述多個(gè)目標(biāo)執(zhí)行機(jī)并發(fā)執(zhí)行測(cè)試,并將測(cè)試結(jié)果保存至指定路徑。
7、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述多個(gè)測(cè)試腳本集合預(yù)先根據(jù)以下方式生成:
8、獲取全量的業(yè)務(wù)動(dòng)作函數(shù),并形成業(yè)務(wù)動(dòng)作函數(shù)庫(kù);所述業(yè)務(wù)動(dòng)作函數(shù)用于表征用戶(hù)的業(yè)務(wù)操作行為;
9、構(gòu)建所述業(yè)務(wù)動(dòng)作函數(shù)庫(kù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)集;
10、將所述業(yè)務(wù)動(dòng)作函數(shù)庫(kù)與所述業(yè)務(wù)數(shù)據(jù)集進(jìn)行元素排列組合,形成ui測(cè)試組件庫(kù);
11、構(gòu)建所述ui測(cè)試組件庫(kù)對(duì)應(yīng)的測(cè)試點(diǎn)集;
12、將所述ui測(cè)試組件庫(kù)與所述測(cè)試點(diǎn)集按需進(jìn)行元素排列組合,形成每個(gè)客戶(hù)端版本的測(cè)試腳本集合。
13、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述按照分發(fā)策略將所述測(cè)試腳本集合中的測(cè)試腳本分發(fā)至所述多個(gè)目標(biāo)執(zhí)行機(jī),包括:
14、從測(cè)試腳本集合中選擇第一個(gè)測(cè)試腳本,將所述第一個(gè)測(cè)試腳本識(shí)別為腳本分類(lèi)分發(fā)集合中的第一類(lèi)元素,并將所述第一個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合確定為所述第一類(lèi)元素的數(shù)據(jù)庫(kù)表集合;
15、從該測(cè)試腳本集合中選擇第二個(gè)測(cè)試腳本,并將所述第二個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合,與所述第一類(lèi)元素的數(shù)據(jù)庫(kù)表集合進(jìn)行取交集操作;
16、判斷交集是否為空;
17、如果交集為空,則將所述第二個(gè)測(cè)試腳本識(shí)別為所述腳本分類(lèi)分發(fā)集合中的第二類(lèi)元素,并將所述第二個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合確定為所述第二類(lèi)元素的數(shù)據(jù)庫(kù)表集合;
18、如果交集不為空,則將所述第二個(gè)測(cè)試腳本識(shí)別為所述腳本分類(lèi)分發(fā)集合中的第一類(lèi)元素,并將所述第二個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合添加至所述第一類(lèi)元素的數(shù)據(jù)庫(kù)表集合中;
19、以此遞推,直至確定該測(cè)試腳本集合中每個(gè)測(cè)試腳本在所述腳本分類(lèi)分發(fā)集合中的類(lèi)別歸屬;
20、利用所述調(diào)度機(jī)將歸屬不同類(lèi)別的元素并發(fā)分發(fā)至所述多個(gè)目標(biāo)執(zhí)行機(jī)。
21、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述數(shù)據(jù)庫(kù)表集合包括涉及寫(xiě)操作的數(shù)據(jù)庫(kù)表集合。
22、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述不同的客戶(hù)端版本包括:
23、不同語(yǔ)言版本的客戶(hù)端,和/或不同種類(lèi)的客戶(hù)端。
24、另一方面,本說(shuō)明書(shū)實(shí)施例還提供了一種基于分布式架構(gòu)的ui自動(dòng)化測(cè)試系統(tǒng),包括:
25、存儲(chǔ)服務(wù)端,用于提供多個(gè)測(cè)試腳本集合;所述多個(gè)測(cè)試腳本集合基于同一套業(yè)務(wù)邏輯生成,且每個(gè)所述測(cè)試腳本集合對(duì)應(yīng)一個(gè)不同的客戶(hù)端版本;
26、心跳監(jiān)控機(jī),用于監(jiān)控執(zhí)行機(jī)集群的狀態(tài),并從所述執(zhí)行機(jī)集群中根據(jù)執(zhí)行機(jī)狀態(tài)選擇多個(gè)目標(biāo)執(zhí)行機(jī);
27、調(diào)度機(jī),用于按照分發(fā)策略將所述測(cè)試腳本集合中的測(cè)試腳本分發(fā)至所述多個(gè)目標(biāo)執(zhí)行機(jī);
28、執(zhí)行機(jī)集群,用于利用所述多個(gè)目標(biāo)執(zhí)行機(jī)并發(fā)執(zhí)行測(cè)試,并將測(cè)試結(jié)果保存至指定路徑。
29、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述多個(gè)測(cè)試腳本集合預(yù)先根據(jù)以下方式生成:
30、獲取全量的業(yè)務(wù)動(dòng)作函數(shù),并形成業(yè)務(wù)動(dòng)作函數(shù)庫(kù);所述業(yè)務(wù)動(dòng)作函數(shù)用于表征用戶(hù)的業(yè)務(wù)操作行為;
31、構(gòu)建所述業(yè)務(wù)動(dòng)作函數(shù)庫(kù)對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)集;
32、將所述業(yè)務(wù)動(dòng)作函數(shù)庫(kù)與所述業(yè)務(wù)數(shù)據(jù)集進(jìn)行元素排列組合,形成ui測(cè)試組件庫(kù);
33、構(gòu)建所述ui測(cè)試組件庫(kù)對(duì)應(yīng)的測(cè)試點(diǎn)集;
34、將所述ui測(cè)試組件庫(kù)與所述測(cè)試點(diǎn)集按需進(jìn)行元素排列組合,形成每個(gè)客戶(hù)端版本的測(cè)試腳本集合。
35、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述按照分發(fā)策略將所述測(cè)試腳本集合中的測(cè)試腳本分發(fā)至所述多個(gè)目標(biāo)執(zhí)行機(jī),包括:
36、從測(cè)試腳本集合中選擇第一個(gè)測(cè)試腳本,將所述第一個(gè)測(cè)試腳本識(shí)別為腳本分類(lèi)分發(fā)集合中的第一類(lèi)元素,并將所述第一個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合確定為所述第一類(lèi)元素的數(shù)據(jù)庫(kù)表集合;
37、從該測(cè)試腳本集合中選擇第二個(gè)測(cè)試腳本,并將所述第二個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合,與所述第一類(lèi)元素的數(shù)據(jù)庫(kù)表集合進(jìn)行取交集操作;
38、判斷交集是否為空;
39、如果交集為空,則將所述第二個(gè)測(cè)試腳本識(shí)別為所述腳本分類(lèi)分發(fā)集合中的第二類(lèi)元素,并將所述第二個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合確定為所述第二類(lèi)元素的數(shù)據(jù)庫(kù)表集合;
40、如果交集不為空,則將所述第二個(gè)測(cè)試腳本識(shí)別為所述腳本分類(lèi)分發(fā)集合中的第一類(lèi)元素,并將所述第二個(gè)測(cè)試腳本中涉及的數(shù)據(jù)庫(kù)表集合添加至所述第一類(lèi)元素的數(shù)據(jù)庫(kù)表集合中;
41、以此遞推,直至確定該測(cè)試腳本集合中每個(gè)測(cè)試腳本在所述腳本分類(lèi)分發(fā)集合中的類(lèi)別歸屬;
42、利用所述調(diào)度機(jī)將歸屬不同類(lèi)別的元素并發(fā)分發(fā)至所述多個(gè)目標(biāo)執(zhí)行機(jī)。
43、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述數(shù)據(jù)庫(kù)表集合包括涉及寫(xiě)操作的數(shù)據(jù)庫(kù)表集合。
44、本說(shuō)明書(shū)實(shí)施例的基于分布式架構(gòu)的ui自動(dòng)化測(cè)試方法中,所述不同的客戶(hù)端版本包括:
45、不同語(yǔ)言版本的客戶(hù)端,和/或不同種類(lèi)的客戶(hù)端。
46、另一方面,本說(shuō)明書(shū)實(shí)施例還提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器、以及存儲(chǔ)在所述存儲(chǔ)器上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器運(yùn)行時(shí),執(zhí)行上述方法的指令。
47、另一方面,本說(shuō)明書(shū)實(shí)施例還提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被計(jì)算機(jī)設(shè)備的處理器運(yùn)行時(shí),執(zhí)行上述方法的指令。
48、另一方面,本說(shuō)明書(shū)實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被計(jì)算機(jī)設(shè)備的處理器運(yùn)行時(shí),執(zhí)行上述方法的指令。
49、由以上本說(shuō)明書(shū)實(shí)施例提供的技術(shù)方案可見(jiàn),本說(shuō)明書(shū)實(shí)施例可以根據(jù)執(zhí)行機(jī)狀態(tài)從執(zhí)行機(jī)集群中選擇多個(gè)目標(biāo)執(zhí)行機(jī),然后由調(diào)度機(jī)根據(jù)分發(fā)策略分配測(cè)試腳本給多個(gè)目標(biāo)執(zhí)行機(jī),由多個(gè)目標(biāo)執(zhí)行機(jī)并發(fā)執(zhí)行測(cè)試并將測(cè)試結(jié)果保存至指定路徑,如此,通過(guò)這種分布式調(diào)度測(cè)試腳本和并發(fā)執(zhí)行測(cè)試腳本,可以大幅提高復(fù)雜場(chǎng)景下ui自動(dòng)化測(cè)試的測(cè)試效率;不僅如此,由于可以預(yù)先基于同一套業(yè)務(wù)邏輯為不同的客戶(hù)端版本生成一一對(duì)應(yīng)的測(cè)試腳本集合,從而可以減少u(mài)i自動(dòng)化測(cè)試在相同或相似的測(cè)試場(chǎng)景會(huì)產(chǎn)生多套與之對(duì)應(yīng)的測(cè)試代碼的冗余情況,極大降低了復(fù)雜場(chǎng)景下ui自動(dòng)化測(cè)試的維護(hù)成本。