測試系統(tǒng)、方法和裝置的制造方法
【技術(shù)領域】
[0001] 本發(fā)明涉及計算機技術(shù)領域,特別是一種測試系統(tǒng)、方法和裝置。
【背景技術(shù)】
[0002] USB (Universal Serial Bus,通用串行總線)是連接計算機系統(tǒng)與外部設備的一 個串口總線標準,也是一種輸入輸出接口的技術(shù)規(guī)范,被廣泛應用于個人電腦和移動設備 等信息通訊產(chǎn)品,并擴展至攝影器材、數(shù)字電視(機頂盒)、游戲機等其它相關領域。目前, 常見的USB設備包括U盤(全稱USB閃存驅(qū)動器)、攝像頭、鍵盤、鼠標、打印機、掃描儀等。 很多軟件的功能涉及到與USB設備交互,因此此類軟件的測試環(huán)節(jié)中,測試人員需要在實 體機上插入USB設備進行測試。
[0003] 相關技術(shù)中,USB設備測試主要依靠測試人員在實體機上手工進行測試。為了模擬 USB設備初始連接系統(tǒng)、以及從系統(tǒng)斷開等場景,測試過程需要經(jīng)常手工插拔設備。由于人 工能夠同時操作的實體機數(shù)量以及單臺實體機上能操作的USB設備的數(shù)量限制,導致手工 測試效率非常低。針對該問題,已有的半自動化測試方案是將USB設備的插拔過程工具化, 測試人員可以使用實體機上的工具操作USB設備,在一定程度上提高了測試效率。然而,這 種半自動化測試方案仍然不能解決大量USB設備測試的問題,測試效率提升幅度小。
[0004] 因此,在大量設備測試的需求下,如何提高測試效率成為目前亟待解決的技術(shù)問 題。
【發(fā)明內(nèi)容】
[0005] 鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的測試系統(tǒng)、方法和相應的裝置。
[0006] 依據(jù)本發(fā)明的第一個方面,提供了一種測試系統(tǒng),包括中央控制器,至少一臺實體 機,以及同所述實體機的連接器接口物理連接的多個被測試設備,其中,
[0007] 所述至少一臺實體機,每臺實體機上設置有至少一個能夠?qū)Ρ粶y試設備進行測試 的虛擬機;
[0008] 所述中央控制器,適于接收測試任務,向一個或多個虛擬機各自所在的實體機下 發(fā)測試命令;
[0009] 所述至少一臺實體機,適于接收所述測試命令,啟動實體機上對應的虛擬機,由啟 動的各虛擬機識別被測試設備,以執(zhí)行所述測試任務。
[0010] 所述中央控制器,接收測試任務,根據(jù)預先存儲的測試任務與虛擬機的對應關系, 查詢能夠執(zhí)行所述測試任務的一個或多個虛擬機;
[0011] 所述中央控制器下發(fā)的所述測試命令中攜帶有對應的實體機上能夠執(zhí)行所述測 試任務的虛擬機的信息;
[0012] 所述至少一臺實體機,根據(jù)所述測試命令中攜帶的虛擬機的信息啟動實體機上對 應的虛擬機。
[0013] 可選地,由啟動的各虛擬機執(zhí)行所述測試任務之前,啟動的各虛擬機,檢查其是否 識別被測試設備,若是,則在虛擬機中執(zhí)行所述測試任務;若否,則在虛擬機中生成表示虛 擬機未識別被測試設備的日志文件,以在所述實體機掃描到所述日志文件時,由所述實體 機關閉虛擬機,并先禁用再啟用被測試設備,進而重新啟動虛擬機執(zhí)行所述測試任務。
[0014] 可選地,所述各虛擬機,創(chuàng)建與被測試設備建立初始連接的虛擬機快照,并保存; 所述虛擬機通過回滾到所述虛擬機快照,進而遍歷其上所有設備的設備標識,通將對被測 試設備的識別結(jié)果同所述虛擬機快照比對,判斷虛擬機是否識別被測試設備。
[0015] 可選地,所述設備標識包括下列至少之一:
[0016] 設備類型;
[0017] 設備接口標準協(xié)議分配給各個設備廠商的標識;
[0018] 設備廠商分配給各個設備的標識;
[0019] 設備接口的標識。
[0020] 可選地,由啟動的各虛擬機執(zhí)行所述測試任務之后,所述至少一臺實體機,檢查被 測試設備是否已從虛擬機中釋放;若否,則先禁用再啟用被測試設備,以便下次在虛擬機中 對被測試設備進行測試操作。
[0021] 可選地,所述至少一臺實體機,檢查被測試設備在虛擬機的設備管理器中的設備 名稱;若檢查到的所述設備名稱與被測試設備從虛擬機中釋放后的設備名稱不相同,則確 定被測試設備未從虛擬機中釋放;若檢查到的所述設備名稱與被測試設備從虛擬機中釋放 后的設備名稱相同,則確定被測試設備已從虛擬機中釋放。
[0022] 可選地,所述實體機先禁用再啟用被測試設備,包括:所述實體機遍歷其上所有的 設備句柄,發(fā)現(xiàn)設備句柄的設備實例路徑等于被測試設備的設備標識時,將被測試設備的 連接狀態(tài)先置為斷開disable,然后置為連接enable,實現(xiàn)對被測試設備的插拔操作。
[0023] 可選地,在所述多個被測試設備同所述實體機的連接器接口物理連接、且分別與 所述實體機上設置的虛擬機建立初始連接時,
[0024] 所述至少一臺實體機,根據(jù)被測試設備的類型,為各虛擬機配置能夠執(zhí)行的測試 任務;
[0025] 所述各虛擬機,將其自身的信息、被配置的能夠執(zhí)行的測試任務以及所在的實體 機的信息發(fā)送至所述中央控制器,由所述中央控制器對應存儲;
[0026] 所述中央控制器,還適于接收所述各虛擬機發(fā)送的其自身的信息、被配置的能夠 執(zhí)行的測試任務以及所在的實體機的信息,并對應存儲。
[0027] 依據(jù)本發(fā)明的第二個方面,提供了一種測試方法,應用于至少一臺實體機,每臺實 體機上設置有至少一個能夠?qū)Ρ粶y試設備進行測試的虛擬機,多個被測試設備同所述實體 機的連接器接口物理連接,包括 :
[0028] 接收測試命令,所述測試命令由中央控制器根據(jù)測試任務下發(fā)的;
[0029] 啟動實體機上對應的虛擬機,由啟動的各虛擬機識別被測試設備,以執(zhí)行所述測 試任務。
[0030] 可選地,所述測試命令中攜帶有對應的實體機上能夠執(zhí)行所述測試任務的虛擬機 的信息,所述啟動實體機上對應的虛擬機,包括:
[0031] 根據(jù)所述測試命令中攜帶的虛擬機的信息啟動實體機上對應的虛擬機。
[0032] 可選地,由啟動的各虛擬機執(zhí)行所述測試任務之前,還包括:
[0033] 由啟動的各虛擬機檢查其是否識別被測試設備;
[0034] 若是,則在虛擬機中執(zhí)行所述測試任務;
[0035] 若否,則在虛擬機中生成表示虛擬機未識別被測試設備的日志文件,以在所述實 體機掃描到所述日志文件時,由所述實體機關閉虛擬機,并先禁用再啟用被測試設備,進而 重新啟動虛擬機執(zhí)行所述測試任務。
[0036] 可選地,由啟動的各虛擬機檢查其是否識別被測試設備,包括:
[0037] 所述各虛擬機創(chuàng)建與被測試設備建立初始連接的虛擬機快照,并保存;
[0038] 由啟動的各虛擬機通過回滾到所述虛擬機快照,進而遍歷其上所有設備的設備標 識,通將對被測試設備的識別結(jié)果同所述虛擬機快照比對,判斷虛擬機是否識別被測試設 備。
[0039] 可選地,所述設備標識包括下列至少之一:
[0040] 設備類型;
[0041] 設備接口標準協(xié)議分配給各個設備廠商的標識;
[0042] 設備廠商分配給各個設備的標識;
[0043] 設備接口的標識。
[0044] 可選地,由啟動的各虛擬機執(zhí)行所述測試任務之后,還包括:
[0045] 檢查被測試設備是否已從虛擬機中釋放;
[0046] 若否,則先禁用再啟用被測試設備,以便下次在虛擬機中對被測試設備進行測試 操作。
[0047] 可選地,檢查被測試設備是否已從虛擬機中釋放,包括:
[0048] 檢查被測試設備在虛擬機的設備管理器中的設備名稱;
[0049] 若檢查到的所述設備名稱與被測試設備從虛擬機中釋放后的設備名稱不相同,則 確定被測試設備未從虛擬機中釋放;
[0050] 若檢查到的所述設備名稱與被測試設備從虛擬機中釋放后的設備名稱相同,則確 定被測試設備已從虛擬機中釋放。
[0051] 可選地,所述實體機先禁用再啟用被測試設備,包括:所述實體機遍歷其上所有的 設備句柄,發(fā)現(xiàn)設備句柄的設備實例路徑等于被測試設備的設備標識時,將被測試設備的 連接狀態(tài)先置為斷開disable,然后置為連接enable,實現(xiàn)對被測試設備的插拔操作。
[0052] 可選地,在所述多個被測試設備同所述實體機的連接器接口物理連接、且分別與 所述實體機上設置的虛擬機建立初始連接時,還包括:
[0053] 根據(jù)被測試設備的類型,為各虛擬機配置能夠執(zhí)行的測試任務,由各虛擬機將其 自身的信息、被配置的能夠執(zhí)行的測試任務以及所在的實體機的信息發(fā)送至所述中央控制 器。
[0054] 依據(jù)本發(fā)明的第三個方面,提供了一種測試裝置,應用于至少一臺實體機,每臺實 體機上設置有至少一個能夠?qū)Ρ粶y試設備進行測試的虛擬機,多個被測試設備同所述實體 機的連接器接口物理連接,包括 :
[0055] 接收模塊,適于接收測試命令,所述測試命令由中央控制器根據(jù)測試任務下發(fā) 的;
[0056] 測試模塊,適于啟動實體機上對應的虛擬機,由啟動的各虛擬機識別被測試設備, 以執(zhí)行所述測試任務。
[0057] 可選地,所述測試命令中攜帶有對應的實體機上能夠執(zhí)行測試任務的虛擬機的信 息,所述測試模塊,還適于:
[0058] 根據(jù)所述測試命令中攜帶的虛擬機的信息啟動實體機上對應的虛擬機。
[0059] 可選地,由啟動的各虛擬機執(zhí)行所述測試任務之前,所述測試模塊,還適于:
[0060] 由啟動的各虛擬機檢查其是否識別被測試設備;
[0061] 若是,則在虛擬機中執(zhí)行所述測試任務;
[0062] 若否,則在虛擬機中生成表示虛擬機未識別被測試設備的日志文件,以在所述實 體機掃描到所述日志文件時,由所述實體機關閉虛擬機,并先禁用再啟用被測試設備,進而 重新啟動虛擬機執(zhí)行所述測試任務。
[0063] 可選地,所述裝置還包括:
[0064] 創(chuàng)建模塊,適于所述各虛擬機創(chuàng)建與被測試設備建立初始連接的虛擬機快照,并 保存;
[0065] 所述測試模塊,還適于由啟動的各虛擬機通過回滾到所述虛擬機快照,進而遍歷 其上所有設備的設備標識,通將對被測試設備的識別結(jié)果同所述虛擬機快照比對,判斷虛 擬機是否識別被測試設備。
[0066] 可選地,所述設備標識包括下列至少之一:
[0067] 設備類型;
[0068] 設備接口標準協(xié)議分配給各個設備廠商的標識;
[0069] 設備廠商分配給各個設備的標識;
[0070] 設備接口的標識。
[0071] 可選地,由啟動的各虛擬機執(zhí)行所述測試任務之后,所述測試模塊,還適于:
[0072] 檢查被測試設備是否已從虛擬機中釋放;
[0073] 若否,則先禁用再啟用被測試設備,以便下次在虛擬機中對被測試設備進行測試 操作。
[0074] 可選地,所述測試模塊,還適于:
[0075] 檢查被測試設備在虛擬機的設備管理器中的設備名稱;
[0076] 若檢查到的所述設備名稱與被測試設備從虛擬機中釋放后的設備名稱不相同,則 確定被測試設備未從虛擬機中釋放;
[0077] 若檢查到的所述設備名稱與被測試設備從虛擬機中釋放后的設備名稱