[0030] 通過步驟S140,能夠將暫時因沒有任務執(zhí)行而空閑下來的設備按照其設備標識存 儲到對應的設備空閑隊列中,通過定期查詢設備空閑隊列及其對應的任務等待隊列,可W 在出現測試任務時及時為其分配任務,從而確保所有設備能夠有效利用。具體地,由于設備 空閑隊列也是多個按照設備標識進行區(qū)分的隊列,因此,直接根據設備空閑隊列中的設備 標識來查詢相應標識的任務等待隊列,從而大幅縮小了查詢范圍,提高了查詢速度,進而提 高了設備調度的效率。 陽〇3U 實施例二、
[0032] 圖2示出了本發(fā)明一個具體實施例提供的基于云測試平臺的設備調度方法的流 程圖,如圖2所示,該方法包括如下步驟:
[0033] 步驟S210 :根據接收到的用戶終端發(fā)出的測試請求來確定測試任務。
[0034] 首先,根據用戶終端發(fā)出的測試請求來確定其中包含的任務類型W及設備數量。 其中,任務類型包括多種,例如可W是UI遍歷測試、兼容覆蓋測試、安全性能測試W及腳本 測試等多種類型。設備數量是指用來運行各種類型的任務的終端設備的數量。然后,將測 試請求中包含的任務類型的數量乘W設備的數量就可W得到測試任務的總數量。例如,假 設用戶終端發(fā)出的測試請求中包含的任務類型為UI遍歷測試和兼容覆蓋測試,終端設備 的數量為16,通過任務類型數乘W終端設備數得到一個2*16的矩陣,該矩陣中包含32個元 素,每個元素分別對應一個測試任務,則該測試請求中包含的測試任務的總數量為32。
[0035] 由此可見,在本發(fā)明中所說的一個測試任務,是指在一款終端設備上運行的一種 類型的任務。其中,一款終端設備是由該終端設備的品牌/型號W及該終端設備上安裝的 系統版本號唯一標識的。例如,=星S4W及其上安裝的安卓版本共同構成一款終端設備。 本實施例中的終端設備的品牌包括但不限于:HTC、華為、步步高、谷歌W及金立等,系統版 本號包括但不限于:4. 0. 3、4. 1.2、4. 2. 1、4. 2. 2、4. 3、4. 4. 2W及4. 4. 4等,通過上述品牌與 系統版本號的組合能夠定義多款不同的終端設備。
[0036] 步驟S220 :針對每一個測試任務,獲取該測試任務中包含的設備標識。
[0037] 由于一個測試任務是指在一款終端設備上運行的一種類型的任務,因此,該測試 任務中包含的設備標識即為運行該任務的終端設備的設備標識。例如,假設一個測試任務 為"對金立E6 4. 2. 1運一款設備的兼容覆蓋情況進行測試",則該測試任務中包含的設備 標識為"金立E6 4. 2. 1",該設備標識由品牌"金立"、型號"E6"化及系統版本號"4. 2. 1"運 S項內容共同組成。
[0038] 當一個測試請求中包含多個測試任務時,分別通過上述方式獲取每一個測試任務 中包含的設備標識。
[0039] 步驟S230 :根據測試任務中包含的設備標識查找與該設備標識對應的設備空閑 隊列,當設備空閑隊列中有可用設備時,執(zhí)行步驟S240 ;當設備空閑隊列中沒有可用設備 時,執(zhí)行步驟S250。
[0040] 其中,設備空閑隊列為多個按照設備標識進行區(qū)分的隊列,每個設備空閑隊列對 應唯一的設備標識,用于存儲該設備標識所對應的所有空閑狀態(tài)的設備。由于云測試平臺 能夠同時處理大量用戶終端提交的測試請求,因此,該平臺中包含海量的設備,對于每一款 設備來說,往往有多個相同的設備。
[0041] 表1和表2分別列出了設備空閑隊列的兩種可能狀態(tài):
[0042]表1
[0043]
[0044]表2
[0045]
[0047] 假設云測試平臺中共包含四款設備,每款設備部署了 =個完全相同的設備,即云 測試平臺中共有12個設備(此數據僅為便于理解,實際情況中包含海量的設備)。表1示 出了當云測試平臺中沒有正在執(zhí)行的測試任務,因而各個設備均處于空閑狀態(tài)時的設備空 閑隊列。從表1中可W看出,設備空閑隊列共有四個,每個隊列具有唯一的設備標識,用于 存儲該設備標識所對應的所有空閑狀態(tài)的設備。表2示出了當云測試平臺中有多個正在執(zhí) 行的測試任務時的設備空閑隊列。從表2中可W看出,設備標識為"金立E6 4.2. 1"的設備 空閑隊列為空(具體實現時,既可W將該隊列設置為空隊列,也可W直接將該隊列刪除), 其中沒有任何設備,則說明"金立E6 4. 2. 1"運一款設備全部處于運行狀態(tài);設備標識為 "谷歌化XUS4 4. 4. 4"的設備空閑隊列中僅有一臺設備,則說明"金立E6 4.2. 1"運一款設 備中的其余兩臺設備正處于運行狀態(tài);設備標識為"HUA肥IY511 4.2.2"和"金立610肥£ 4. 1. 2"的設備空閑隊列中均有S臺設備,則說明運兩款設備全部處于空閑狀態(tài)。表1和表 2中W各款設備的數量均為=臺為例進行說明,在實際情況中,也可W根據各款設備的利用 率來設置其數量,從而將熱口設備設置為更多的數量,而將非熱口設備設置為較少的數量。
[0048] 假設在本步驟中,設備空閑隊列如表2所示。如果測試任務中包含的設備標識為 "谷歌化XUS4 4. 4. 4",則確定與該設備標識對應的設備空閑隊列中有可用設備,因而執(zhí)行 步驟S240。如果測試任務中包含的設備標識為"金立E6 4.2. 1",則確定與該設備標識對應 的設備空閑隊列中沒有可用設備,因而執(zhí)行步驟S250。
[0049] 步驟S240 :將測試任務分配給設備空閑隊列中的可用設備。
[0050] 例如,當測試任務中包含的設備標識為"谷歌化XUS4 4. 4. 4"時,與該設備標識對 應的設備空閑隊列中有一個可用設備"谷歌化XUS4 4. 4. 4(1)",因此,將該測試任務分配 給該可用設備執(zhí)行。同時,將該可用設備從設備空閑隊列中刪除,因此,執(zhí)行本步驟后,設備 標識為"谷歌化XUS4 4. 4. 4"的設備空閑隊列為空。
[0051] 步驟S250 :將測試任務按照其中包含的設備標識存儲到對應的任務等待隊列。
[0052] 例如,當測試任務中包含的設備標識為"金立E6 4. 2. 1"時,與該設備標識對應的 設備空閑隊列中沒有可用設備,因此,該測試任務暫時無法執(zhí)行,運時,將該測試任務按照 其中包含的設備標識"金立E6 4.2. 1"存儲到對應的任務等待隊列。其中,任務等待隊列為 多個按照設備標識進行區(qū)分的隊列,每個任務等待隊列對應唯一的設備標識,用于存儲該 設備標識所對應的所有待執(zhí)行的任務。表3列出了任務等待隊列的一種可能狀態(tài):
[0053]表 3
[0054]
[0055] 通過表3可W看出,由于"金立E6 4. 2. 1"為熱口設備,其對應的設備空閑隊列為 空,因此,當前有=個測試任務位于設備標識為"金立E6 4. 2. 1"的任務等待隊列中排隊。
[0056] 在上述各個步驟中僅W-個測試任務為例進行說明,當測試任務為多個時,分別 對每個測試任務執(zhí)行上述的處理步驟即可。由此可見,在上述的步驟S210至步驟S250中, 每當接收到新的測試任務時,根據該測試任務中包含的設備標識查找與該設備標識對應的 設備空閑隊列,并從設備空閑隊列中提取可用設備來執(zhí)行該任務,當設備空閑隊列中沒有 可用設備時,則將該測試任務按照其中包含的設備標識存儲到對應的任務等待隊列中排 隊。通過設備空閑隊列,能夠使測試任務主動找到空閑設備,因此,只要系統中有空閑設備, 該測試任務就能第一時間得W執(zhí)行。
[0057]另外,為了使任務等待隊列中待執(zhí)行的測試任務能夠在平臺中出現空閑設備時第 一時間得W執(zhí)行,本實施例中的方法還進一步包括下述的步驟S201至步驟S205。其中,下 述的步驟S201至步驟S205與上述的步驟S210至步驟S250之間通過單獨的進程并行執(zhí)行。
[0058] 步驟S201 :監(jiān)測云測試平臺中各個設備的狀態(tài),每當監(jiān)測到從運行狀態(tài)轉變?yōu)榭?閑狀態(tài)的設備時,將從運行狀態(tài)轉變?yōu)榭臻e狀態(tài)的設備加入預設的設備空閑總隊列中。
[0059] 具體地,在監(jiān)測各個設備的狀態(tài)時可W靈活采取多種方式。例如,在云測試平臺 中,每當一個設備上線后,就將其狀態(tài)作為屯、跳包發(fā)送給服務器,即:每個上線的設備每隔 一定的時間間隔就向服務器匯報一次狀態(tài),使服務器能夠及時了解其當前狀態(tài)。或者