本發明涉及通信技術領域,尤其涉及一種移動終端的測試系統。
背景技術:隨著移動通信技術的發展,移動終端產品越來越豐富,功能越來越復雜,推出的頻率越來越快,導致研發周期縮短。在研發過程中,需要通過對移動終端的測試來保證移動終端的質量和性能,同時又必須提高移動終端的測試效率、控制測試成本,為此需要不斷地積累測試技術,提高測試水平。通常來講,對移動終端的測試主要是指對移動終端版本進行測試,以驗證該版本的有效性。移動終端的版本總是在不斷的更新中,針對不同的版本都有與該版本相對應的測試用例。所謂的移動終端版本測試包括了該版本下的移動終端協議棧測試、物理層測試、接入層(AS,AccessStratum)測試、無線鏈路控制(RLC,RadioLinkControl)模塊測試、人機界面測試、功耗測試、語音測試等,具體測試該版本下移動終端的哪些模塊,則由該版本下的測試用例(測試腳本)來決定,例如:測試用例涉及對移動終端協議棧測試則是用于測試該版本下的移動終端協議棧。現有技術中,通過自動化測試系統對移動終端進行測試。所述自動化測試系統中通常包括:測試執行工具、至少一個基站模擬器、日志數據的分析工具、至少一個移動終端(真實的移動終端)或者移動終端模擬器等。所述測試執行工具啟動基站模擬器,通過基站模擬器以模擬真實的網絡基站,運行用戶選擇的測試用例或者預先設置好的測試用例生成測試命令,并將所述測試命令發送至移動終端/移動終端模擬器,通過所述基站模擬器與移動終端/移動終端模擬器之間的相互交互,以實現對移動終端中各個模塊的測試,在測試完成后所述測試執行工具會將測試結果進行匯總生成相應的測試報告。采用現有的自動化測試系統可以實現移動終端版本的自動化測試,有助于開發人員在移動終端版本測試過程中,及時發現移動終端各個模塊的問題所在并進行相應的修改。然而對于現有的自動化測試系統而言,其測試執行工具、基站模擬器和測試用例通常是運行在一臺測試設備(通常為一臺計算機)上,若測試的移動終端為移動終端模擬器,則所述移動終端模擬器也運行在測試設備上,若測試的移動終端為真實的移動終端,則所述移動終端與該測試設備互連。通過基站模擬器與移動終端/移動終端模擬器之間進行交互,對待測試的移動終端/移動終端模擬器進行一一測試。對于移動終端版本測試而言,一個版本下通常會對應了上萬個測試用例,在一臺測試設備上對移動終端/移動終端模擬器進行一一測試以驗證移動終端版本的有效性,勢必會耗費大量的測試時間,導致測試效率過低。后又有對上述的測試方式進行改進,采用并行的方式來對移動終端/移動終端模擬器進行測試。例如,在一臺測試設備上運行多個基站模擬器和多個移動終端模擬器,或者在一臺測試設備運行多個基站模擬器,并連接多個真實的移動終端來進行測試。又例如,通過多臺測試設備來對移動終端/移動終端模擬器進行測試,具體地,在每一臺測試設備上運行預定數量的測試用例以實現對移動終端/移動終端模擬器的測試。相對于上述的方式,其耗費的時間雖然有所減少,但是測試效率仍然不高。而且,在上述的自動化測試系統中,如果是在一臺測試設備上進行測試,一旦測試設備出現死機,測試過程就會終止,進而導致預期的測試任務無法完成。如果是在多臺測試設備并行測試,一旦一臺測試設備出現死機,運行在該測試設備上的測試用例也無法運行,導致整個測試任務也不能按期完成。因此上述自動化測試系統的可靠性也較差。其他關于移動終端測試的相關技術,可以參見公開號為US2010120371A1,發明名稱為Mobileterminaltesterandmobileterminaltestmethod的美國專利申請。
技術實現要素:本發明解決的問題是現有的自動化測試系統對移動終端進行測試的測試效率低和可靠性差的問題。為解決上述問題,本發明提供一種移動終端的測試系統,包括:分控中心和與所述分控中心相連的至少一測試終端;所述分控中心用于接收測試任務,解析所述測試任務,基于預定的分配策略分配測試用例至相應的測試終端,所述測試任務包括至少一測試用例;所述測試終端用于運行所分配的測試用例,以實現對所述移動終端的測試。可選的,所述基于預定的分配策略分配測試用例至相應的測試終端包括:基于所述測試終端的狀態信息分配測試用例至相應的測試終端。可選的,所述基于預定的分配策略分配測試用例至相應的測試終端包括:基于所述測試任務中的測試用例的依賴關系分配測試用例至相應的測試終端。可選的,所述分控中心還用于在所述測試終端運行測試用例失敗,基于其他測試終端的狀態信息將所述運行失敗的測試用例分配至其他測試終端。可選的,所述移動終端的測試系統還包括:至少一啟動器,所述啟動器對應至少一測試終端;所述分控中心,還用于將所述測試版本的存儲路徑發送至分配有測試用例的測試終端;所述測試終端,還用于將所述分控中心發送的測試版本的存儲路徑發送至對應的啟動器;所述啟動器,用于基于所述測試版本的存儲路徑下載所述測試版本及其下的測試用例。與現有技術相比,本發明的技術方案具有如下有益效果:分控中心接收所述測試任務并基于預定的分配策略分配測試用例至相應的測試終端,具有很大的靈活性,可以充分利用測試終端的資源,有助于提高測試效率。分控中心基于所述測試終端的狀態信息分配測試用例至相應的測試終端,由于其在分配測試用例的同時兼顧了測試終端的狀態,因此避免出現在一個測試終端上運行的測試用例過多,而是在每個測試終端都均衡地分配有測試用例,由于通過多個測試終端運行測試用例,因此,對于測試任務而言可以減少其運行時間,也即提高了測試效率。分控中心重新分配運行失敗的測試用例,即在測試終端運行測試用例失敗,基于其他測試終端的狀態信息將所述運行失敗的測試用例分配至其他測試終端,這樣可以確保測試任務的完成,從而提高了測試效率和可靠性。而且,將運行失敗的測試用例重新分配,可以通過其他測試終端運行所述測試用例來判斷究竟是測試用例的問題還是測試終端的問題,也無需通過手動的方式拷貝失敗的測試用例至其他測試終端,故降低了測試過程中的繁瑣程度,相應地也降低了測試成本。所述移動終端的測試系統包括至少一啟動器,所述啟動器對應至少一個測試終端,通過所述啟動器來下載測試版本及其下的測試用例,且當不同的測試終端對相同的測試版本進行測試時,所述啟動器只進行一次該測試版本及其下的測試用例的下載,減少了對測試版本及其下的測試用例的下載次數,提高了測試效率,且采用所述啟動器來下載測試版本及其下的測試用例也實現了對測試版本及其下的測試用例的集中管理。所述測試終端包括測試代理端、測試運行器和測試工具,進而在通過所述測試終端對移動終端/移動終端模擬器進行測試時,一旦所述測試代理端、測試運行器和測試工具中的任意一個出現異常情況,則可以通過開啟新的測試代理端或測試運行器或測試工具來運行測試用例,因此,提高了測試系統的可靠性。附圖說明圖1是本發明實施方式的移動終端的測試系統的基本結構示意圖;圖2是本發明實施例的移動終端的測試系統的結構示意圖;圖3是本發明實施例的分控中心的結構示意圖;圖4是本發明實施例的應用模塊調用測試用例管理模塊的流程示意圖;圖5是本發明實施例的測試任務文件的示意圖;圖6是本發明實施例的分控中心加載測試任務的流程示意圖;圖7是本發明實施例的測試用例管理模塊分配測試用例的流程示意圖。具體實施方式為使本發明的上述目的、特征和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施方式做詳細的說明。在以下描述中闡述了具體細節以便于充分理解本發明。但是本發明能夠以多種不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣。因此本發明不受下面公開的具體實施方式的限制。在對移動終端進行測試時,每一個測試版本下均包括了上萬的測試用例,通過運行大量的測試用例以實現對移動終端版本的測試,每次進行版本回歸時,所有的測試用例也都需要重新運行以進行版本驗證。而采用現有的測試系統進行移動終端版本測試時,測試成本較高,測試效率低且測試的可靠性較差。發明人經過研究發現,現有技術即使采用并行的方式對移動終端進行測試,都需要預先分配測試用例,例如,通過人工的方式將所述測試用例拷貝到測試設備中,由于測試用例預先分配,不同測試設備的運行能力有差別,會出現有些測試設備運行過多的測試用例或始終處于運行狀態,而有些測試設備則處于空閑狀態,這樣測試設備的資源沒有得到充分利用,降低了測試效率。而且,隨著測試設備和測試版本的增多,需要耗費大量的人力來分配測試用例,必然導致測試成本的增加。此外,對于每一臺測試設備而言,很可能會出現某些測試用例在其上運行失敗的情況,此時需要通過手動的方式將運行失敗的測試用例拷貝至其他的測試設備,若測試用例在其它設備上運行正常,則可能是測試設備的問題,若測試用例在其它測試設備上也無法運行,則可能是測試用例自身的問題。將運行失敗的測試用例拷貝到不同測試設備以判斷究竟是測試用例的問題還是測試設備的問題時,整個過程往往比較繁瑣,浪費人力,也會導致測試成本的增加,測試效率的降低。因此,發明人提出了一種分布式結構的測試系統,將分控中心和多個測試終端相連,所述分控中心在接收到測試任務后,采用預定的分配策略將測試任務中的測試用例分配至相應的測試終端,使得測試用例可以均衡地分配至測試終端,充分利用測試終端的資源,從而提高測試效率。為了能夠更好地理解本發明的技術方案,先對相關名詞加以說明。測試用例,用于測試移動終端的相應功能點,測試終端可以通過運行不同的測試用例以對移動終端版本進行測試。基站模擬器用于模擬基站的行為與移動終端進行交互。移動終端模擬器用于模擬真實的移動終端的行為。圖1是本發明實施方式的移動終端的測試系統的基本結構示意圖,如圖1所示,所述移動終端的測試系統包括:分控中心2和與所述分控中心2相連的測試終端3和4;所述分控中心2用于接收測試任務,解析所述測試任務,基于預定的分配策略分配測試用例至相應的測試終端,所述測試任務包括至少一測試用例。所述測試終端用于運行所分配的測試用例,以實現對所述移動終端的測試。需要說明的是,本實施方式中為了便于說明,圖1中所示的測試系統僅包括了兩個測試終端,在實際測試過程中,所述測試終端的數目由實際需求而定。本實施方式中,所述測試任務包括測試任務文件及測試用例所屬的測試版本的存儲路徑,所述測試任務文件記錄測試任務中測試用例的標識。測試版本及測試用例的具體內容從所述測試版本的存儲路徑下載。所述測試版本為移動終端的運行提供運行環境,進而使得所述測試終端在運行所述測試用例后可以與所述移動終端之間進行交互。或者說在所述移動終端安裝了測試版本后,所述測試終端運行所述測試用例以實現與所述移動終端之間的交互。所述測試任務還可以包括測試類型,即本次測試是針對移動終端進行,還是移動終端模擬器進行。所述測試任務文件還可以記錄所述測試用例所屬的測試版本的標識。所述測試任務具體包括哪些內容,可以根據實際的測試需求和測試環境而定。在其他實施方式中,所述測試任務中也可以包括測試用例的具體內容。本實施方式中,所述分控中心2包括至少一臺計算機。所述分控中心2接收所述測試任務,解析所述測試任務,然后基于預定的分配策略分配測試用例至相應的測試終端。以測試任務包括測試任務文件,所述測試任務文件中記錄了本次測試任務中要運行的測試用例的標識為例,分控中心基于預定的分配策略分配測試用例至相應的測試終端時,是將待運行的測試用例的標識分配至相應的測試終端。所述分控中心2基于預定的分配策略分配測試用例至相應的測試終端可以包括:基于所述測試終端的狀態信息分配測試用例至相應的測試終端。所述分控中心2通過輪詢的方式獲取所述測試終端的狀態信息,具體地,就是每隔預定時間,主動向每個測試終端發信號,通過所述測試終端的反饋以獲取所述測試終端當前的狀態信息。所述預定時間可以為3分鐘、5分鐘等,具體取多少由實際情況而定。所述測試終端的狀態信息包括:測試終端空閑、測試終端運行測試用例超時、測試終端無響應或者測試終端與分控中心連接斷開等。在其他實施方式中,所述測試終端的狀態信息也可以由測試終端每隔一定時間,自發地向所述分控中心2進行報告。本實施方式中,所述分控中心2在獲悉測試終端處于空閑狀態時,為其分配測試用例。舉例來說,分控中心2獲悉測試終端3當前的狀態為空閑、測試終端4當前的狀態為運行測試用例,則分控中心2為測試終端3分配測試用例。在另一實施方式中,所述分控中心基于預定的分配策略分配測試用例至相應的測試終端可以包括:基于所述測試任務中的測試用例的依賴關系分配測試用例至相應的測試終端。具體地,所述分控中心將具有依賴關系的測試用例分配至同一個測試終端,所述具有依賴關系的測試用例可以是后一個測試用例的執行依賴于前一個測試用例的執行結果的一組測試用例,也即所述分控中心將具有先后執行順序的測試用例分配在同一測試終端。在又一實施方式中,所述分控中心基于預定的分配策略分配測試用例至相應的測試終端可以包括:根據每個測試終端的性能來為所述測試終端分配預定數量的測試用例,如:為性能較好的測試終端多分配一些測試用例,為性能一般的測試終端少分配一些測試用例,進而可以在較大程度上利用所述測試終端的資源。在再一實施方式中,所述分控中心基于預定的分配策略分配測試用例至相應的測試終端可以包括:基于測試終端的狀態信息及測試用例的依賴關系分配測試用例至相應的測試終端。舉例來說,所述分控中心在一測試終端的狀態為空閑時為其分配測試用例001,而測試用例001與測試用例002具有依賴關系,此時,即使有其他的處于空閑狀態的測試終端,分控中心也不會將測試用例002分配至其他測試終端,而是在運行測試用例001的測試終端運行完測試用例001后再將測試用例002分配至該測試終端。需要說明的是,上述的分控中心基于預定的分配策略分配測試用例的前提是在測試任務的測試類型與測試終端的測試類型(就是指測試終端支持的測試類型,如:支持測試移動終端和/或移動終端模擬器)相匹配的前提下進行的,在某些測試環境下,測試終端的測試類型是唯一的,如僅僅支持測試移動終端或移動終端模擬器,此時,所述測試任務可以不包括測試類型。而若測試終端支持的測試類型不唯一,則所述測試任務中可以包括測試類型。進一步,所述分控中心2還用于在所述測試終端運行測試用例失敗,基于其他測試終端的狀態信息將所述運行失敗的測試用例分配至其他測試終端。舉例來說,分控中心2獲悉測試終端3運行測試用例001失敗,測試終端4處于空閑狀態,則將測試用例001分配至測試終端4,由測試終端4重新運行(重跑)測試用例001。一般來講,若不考慮在某些情況下測試終端3運行測試用例001失敗的原因可能是由于測試過程中的某種偶然因素而導致的話,那么通過在空閑的測試終端4上重跑測試用例001可以知道究竟是測試用例001有問題還是測試終端3有問題。若在測試終端4上,測試用例001可以重跑成功,則測試終端3可能存在問題,反之則測試用例001存在問題。通過將運行失敗的測試用例分配至其他的空閑的測試終端,在運行測試用例的同時,也可以對出現問題的測試用例或測試終端進行定位,有助于整個測試過程中測試效率的提高。所述測試終端運行所分配的測試用例,發送測試命令至移動終端,通過所述移動終端對測試命令的執行,以完成對移動終端各個功能模塊的測試。本實施方式中,所述移動終端可以是真實的移動終端,也可以是虛擬的移動終端即移動終端模擬器。所述移動終端若為真實的移動終端,則與所述測試終端相連,若為移動終端模擬器,則可以與所述測試終端運行在同一臺計算上。在一臺計算機上也可以運行多個測試終端。由于分控中心在進行測試用例的分配時,是將測試用例的標識分配至相應的測試終端,因此,測試終端在運行測試用例之前,還需要將測試用例及其所屬的版本進行下載。本實施方式中,所述移動終端的測試系統還包括至少一啟動器(圖中未示出),所述啟動器對應至少一測試終端,通過所述啟動器來實現測試版本及測試用例的下載。所述啟動器與所述測試終端可以是一一對應的,也可以是一個啟動器與多個測試終端相對應,優選地,采用啟動器和測試終端為一對多的方式。所述測試任務包括:測試任務文件和測試版本的存儲路徑,所述分控中心2接收并解析所述測試任務后,還用于將所述測試版本的存儲路徑發送至分配有測試用例的測試終端。一般來講,測試版本下的測試用例的存儲路徑為所述測試版本的存儲路徑的子目錄,故知道了測試版本的存儲路徑則可以知道測試用例的存儲路徑。因此,所述測試終端還將所述分控中心2發送的測試版本的存儲路徑發送至所述啟動器,所述啟動器基于所述測試版本的存儲路徑來對測試版本及其下的測試用例進行下載,且啟動器會將和該測試版相關的所有的測試用例進行下載。因此,本實施方式中,優選地,所述啟動器對測試版本及其下的測試用例進行下載前,會判斷所述測試版本及其下的測試用例是否已經下載,若已經下載過,則不再進行下載。在所述啟動器對測試版本及其下的測試用例下載完成后,待測移動終端會安裝所述測試版本(不同的移動終端安裝所述測試版本的方式略有不同,參見后續實施例中相應的說明),而所述測試終端則根據分控中心2分配的測試用例的標識,在啟動器下載的測試用例中進行相應的選擇并運行,以與待測移動終端之間進行交互實現對待測移動終端的測試。通過所述啟動器來下載測試版本及其下的測試用例可以實現測試用例的集中管理,有利于測試效率的提高。本實施方式中,所述啟動器可以與所述測試終端運行在同一臺計算機上,在實際測試過程中,所述計算機的性能及啟動器的性能決定運行在計算機上的測試終端的數目。在其他實施方式中,也可以通過測試終端自身來下載測試用例和測試版本,具體地,所述測試任務中包括了測試用例所屬的測試版本的存儲路徑,因此,所述分控中心會將測試版本的存儲路徑發送至分配有測試用例的測試終端,所述測試終端基于所述測試版本的存儲路徑將所述測試版本及其要運行的測試用例進行下載。待測移動終端安裝所述測試版本,所述測試終端運行其下載的測試用例,以與所述待測移動終端之間進行交互,由此實現對待測移動終端的測試。本實施方式中,所述分控中心2與所述測試終端通過socket接口進行通信,且采用XML-RPC實現所述分控中心2與所述測試終端之間的信息傳遞。所述XML-RPC屬于輕量級消息傳遞協議,XML-RPC是用于遠程過程調用(RPC,remoteprocedurecall)的規范,這種調用使用HTTP作為傳輸協議,XML(extensiblemarkuplanguage)詞匯表作為消息有效負載。為了更好地說明本發明的技術方案,以下結合本發明實施例的移動終端的測試系統來對本發明的技術方案進行相應的說明。圖2是本發明實施例的移動終端的測試系統的結構示意圖,如圖2所示,所述移動終端的測試系統包括:總控中心1、分控中心2、至少一個啟動器,及與所述啟動器對應的至少一個測試終端。本實施例中,為了便于說明,以移動終端的測試系統包括測試終端301、302、401和402、啟動器30和40為例進行相應的說明。本實施例中,所述總控中心1用于下發測試任務至所述分控中心2。具體地,所述總控中心1包括服務器,所述總控中心1提供相應的測試界面,以供用戶設置測試任務。用戶可以在所述測試界面上輸入測試版本,選擇要測試的對象,如:移動終端的協議棧、RLC模塊等,對于移動終端的每一個功能模塊而言,均具有測試該功能模塊的測試用例,用戶在選擇需要測試的功能模塊的同時,也相當于選擇了與該功能模塊相對應的測試用例。用戶也可以在所述測試界面上輸入測試版本,選擇要運行的測試用例的名稱。當用戶通過所述測試界面對本次測試任務進行設置后,總控中心1生成測試任務,所述測試任務中包括至少一個測試用例。所述總控中心1還用于發送測試開始、暫停或終止命令至所述分控中心2。所述分控中心2在接收到測試開始命令后執行測試任務,接收到測試暫停或終止命令后,暫停或終止對測試任務的執行。此外,所述總控中心1的測試界面可以采用web界面的方式,在實際應用中還可以對web界面進行相應的設置以方便不同權限的用戶在各地登錄來進行測試。通過總控中心1提供測試界面設置測試任務后,所述總控中心1將設置好的測試任務下發至所述分控中心2。所述分控中心2接收并解析所述測試任務,在接收到測試開始命令后執行所述測試任務,分配測試用例至相應的測試終端。所述分控中心2包括至少一臺計算機。對于總控中心1而言,其帶有配置文件,所述配置文件中記錄了所述分控中心2的計算機的IP地址和端口號,總控中心1中的服務器通過IP地址和端口號來實現與分控中心2中的計算機的互連。本實施例中,所述總控中心1與所述分控中心2通過套接字(socket)接口實現消息的交互。通過所述總控中心1下發測試任務至所述分控中心2,實現了對測試任務的集中管理。本實施例中,所述總控中心1下發測試任務文件及測試用例所屬的測試版本的存儲路徑至所述分控中心2,所述測試任務文件記錄了本次測試任務對應的測試用例的標識(例如,測試用例的編號)和本次測試任務中測試用例所屬的測試版本的標識(例如,測試版本的版本號)等。例如:所述測試任務文件還可以記錄每一個測試用例的重跑次數,所述測試用例的重跑次數是指測試用例運行失敗后再運行的總次數。若測試任務文件中沒有記錄測試用例的重跑次數,則可以將測試用例的重跑次數默認為預設次數。在其他實施例中,所述總控中心下發測試任務也可以通過下發測試任務文件、測試版本的存儲路徑、測試類型(測試任務的測試類型)、測試任務優先級等來實現。本實施例中,所述分控中心2包括:通信模塊(圖2中未示出)、應用模塊(圖2中未示出)和測試用例管理模塊(圖2中未示出)。所述測試終端包括:測試代理端、與所述測試代理端相連的測試運行器、與所述測試運行器相連的測試工具。圖2所示的測試終端301包括:測試代理端301a,與所述測試代理端301a相連的測試運行器301b,與所述測試運行器301b相連的測試工具301c;測試終端302包括:測試代理端302a,與所述測試代理端302a相連的測試運行器302b,與所述測試運行器302b相連的測試工具302c。本實施例中,啟動器30與所述測試終端301、302對應。所述啟動器30、測試終端301、測試終端302可以運行在一臺計算機上。測試終端401包括:測試代理端401a,與所述測試代理端401a相連的測試運行器401b,與所述測試運行器401b相連的測試工具401c;測試終端402包括:測試代理端402a,與所述測試代理端402a相連的測試運行器402b,與所述測試運行器402b相連的測試工具402c。啟動器40與所述測試終端401、402對應。所述啟動器40、測試終端401、測試終端402可以運行在一臺計算機上。本實施例中,所述測試終端、啟動器可以為應用程序,運行在計算機上,測試過程中,可以有多臺計算機,每臺計算機均運行一定數量的測試終端和一啟動器,對于每一臺計算機而言,所述測試終端的數目,由與所述測試終端對應的啟動器及運行其的計算機的性能而定。舉例來說,啟動器30與測試終端301、302運行在一臺計算機上,而該計算機上能夠運行的測試終端的數目,取決于啟動器30及該計算機的性能。以下對所述分控中心及測試終端進行一一說明。圖3是本發明實施例的分控中心的結構示意圖,如圖3所示,所述分控中心2包括:通信模塊201、應用模塊202和測試用例管理模塊203。結合圖2和圖3,所述通信模塊201,用于接收測試任務文件和測試版本的存儲路徑并轉發至所述應用模塊202,接收所述測試終端反饋的測試結果并轉發至所述應用模塊202。所述應用模塊202,與所述通信模塊201相連,用于將所述測試任務文件轉發至所述測試用例管理模塊203,記錄所述測試終端的狀態信息,并基于所述測試終端的狀態信息調用所述測試用例管理模塊203,基于所述測試結果生成測試報告。所述測試用例管理模塊203,與所述應用模塊202相連,用于解析所述測試任務文件,基于所述應用模塊202的調用分配測試用例,并通過所述通信模塊201將分配的測試用例的信息發送至相應的測試終端,所述測試用例的信息包括:測試用例的標識。具體地,本實施例中,所述通信模塊201接收來自總控中心1的測試任務文件及測試版本的存儲路徑,并將所述測試任務文件、測試版本的存儲路徑轉發至所述應用模塊202。接收來自所述測試終端反饋的測試結果,并將所述測試結果轉發至所述應用模塊202。所述通信模塊201采用XML-RPC實現與所述總控中心1及測試終端之間的信息傳遞。圖4是本發明實施例的應用模塊調用測試用例管理模塊的流程示意圖,以下結合圖2、圖3和圖4對所述應用模塊和測試用例管理模塊進行相應的說明。用戶在總控中心1提交測試任務,分控中心2的通信模塊201接收所述測試任務,并將所述測試任務中的測試任務文件及測試用例所屬的測試版本的存儲路徑轉發至所述應用模塊202。所述應用模塊202將所述測試任務文件轉發至所述測試用例管理模塊203,并對所述通信模塊201發送的測試終端的狀態信息進行記錄,基于所述測試終端的狀態信息調用測試用例管理模塊203,具體地,就是所述應用模塊202在獲悉所述測試終端處于空閑狀態時,調用測試用例管理模塊203加載及分配測試用例。所述測試終端的狀態信息可以包括:測試終端空閑、測試終端運行測試用例超時、測試終端無響應、測試終端與分控中心連接斷開、測試版本下載失敗或所述測試版本下的測試用例下載失敗。所述測試用例管理模塊203,接收所述應用模塊202轉發的測試任務文件并進行解析,基于所述應用模塊202的調用分配測試用例,并將分配的測試用例的信息發送至所述應用模塊202,即所述應用模塊202從所述測試用例管理模塊203中獲取分配的測試用例的信息。所述測試用例的信息可以為測試用例的標識。所述應用模塊202調用所述通信模塊201,將測試用例所屬的測試版本的存儲路徑及收到的測試用例的信息通過所述通信模塊201發送至相應的測試終端,由于應用模塊202調用測試用例管理模塊203時,知道空閑的測試終端的ID號,因此當所述應用模塊202調用所述通信模塊201發送測試用例的信息時,會將空閑狀態的測試終端的ID號也告知通信模塊201,以使得所述通信模塊201可以將測試用例的信息及測試用例所屬的測試版本的存儲路徑發送至相應的測試終端。所述通信模塊201將接收到的所述測試終端反饋的測試結果轉發至所述應用模塊202,所述應用模塊202基于執行本次測試任務中的所有的測試終端所反饋的測試結果生成本次測試任務的測試報告。所述測試報告中包括:運行成功的測試用例的個數、運行失敗的測試用例的個數、測試用例的運行時間、運行失敗的測試用例的名稱、通過率(所述通過率是指運行成功的測試用例的個數與運行的測試用例個數的比值)等,來獲取對移動終端版本的測試結果。本實施例中,所述測試用例管理模塊203解析的測試任務文件為固定格式的可擴展標記語言(XML,ExtensibleMarkupLanguage)文件,圖5是本發明實施例的測試任務文件的示意圖,如圖5所示,測試任務文件中“W10.23”為本次測試任務的測試版本標識(測試版本號)。tc_001_001_001則為測試用例標識(測試用例的編號)。圖5中所示的<CaseGroup>和</CaseGroup>之間用于存儲有上下文依賴關系的測試用例標識,這主要是因為,在實際的測試過程中,某些測試用例的運行必須依賴于其他測試用例的運行結果,故通常將具有依賴關系的測試用例存儲在相同的組中。圖5中顯示的測試用例tc_001_001_001、tc_001_001_002、…、tc_001_001_009的運行就存在依賴關系。而圖5中所示的<Cases>和</Cases>之間則用于存儲獨立的測試用例,這部分的測試用例之間沒有相互的依賴關系。所述測試用例管理模塊203基于對所述測試任務文件的解析,對所述測試用例進行相應的分配,本實施例中,優先地,所述測試用例管理模塊基于測試用例之間的依賴關系和測試終端的狀態信息對測試用例進行相應的分配。在測試用例之間具有依賴關系時,將具有依賴關系的測試用例分配在同一測試終端。以下進行簡要的說明。結合圖2、圖3和圖5,對于圖5中的位于<CaseGroup>和</CaseGroup>之間的測試用例而言,當應用模塊202獲悉測試終端301空閑時,調用測試用例管理模塊203將tc_001_001_001分配給測試終端301,此時即使有其他測試終端處于空閑狀態,測試用例管理模塊203也不會將<CaseGroup>和</CaseGroup>之間剩余的測試用例分配至其他測試終端,而是在應用模塊202收到測試終端301反饋的運行測試用例tc_001_001_001成功后,再將剩余的測試用例分配至測試終端301。而對于圖5中的位于<Cases>和</Cases>之間的測試用例,當應用模塊202獲悉測試終端401、402空閑時,調用測試用例管理模塊203將tc_100_001_001分配至測試終端401、將tc_100_001_002分配至測試終端402。也即若測試用例之間具有依賴關系,則將測試用例分配在同一測試終端;若測試用例之間不具有依賴關系,則可以將測試用例分配在不同的測試終端。本實施例中,所述測試用例管理模塊203,還用于創建測試用例表,對于每一個測試任務而言,均具有與之對應的測試用例表。所述測試用例表包括:測試用例的標識、測試用例的運行結果、測試用例的重跑次數和測試用例所屬的測試版本標識。所述應用模塊202還用于基于所述測試終端運行測試用例的結果更新所述測試用例表。即當所述應用模塊202通過所述通信模塊201獲悉測試終端運行的測試用例的運行結果后,會更新測試用例表中測試用例的運行結果、測試用例的重跑次數。如:將測試用例的運行結果更新為“成功”或“失敗”,且對于運行失敗的測試用例而言,每進行一次重跑后會更新其重跑次數,如將重跑次數減1。圖6是本發明實施例的分控中心加載測試任務的流程示意圖,以下結合圖6對測試任務的加載進行相應的說明。實際測試過程中,測試任務并不唯一,當總控中心下發多個測試任務至所述分控中心后,分控中心會對所有的測試任務進行循環,選出符合測試終端的測試類型且優先級最高的測試任務。測試終端的測試類型包括:移動終端和移動終端模擬器,對于移動終端模擬器而言還可以進一步的細分,如:移動終端模擬器與測試版本相對應,具體地,就是說該移動終端模擬器只能運行與之對應的測試版本。以下以測試終端的測試類型不唯一,也就是說測試終端既可以測試移動終端也可以測試移動終端模擬器為例對測試任務的加載進行說明。如圖6所示,所述分控中心選擇測試任務中優先級別最高的測試任務為當前測試任務,若測試任務的優先級相同,所述分控中心將總控中心先發送測試開始命令的測試任務作為當前測試任務,判斷當前測試任務的測試類型與測試終端的測試類型是否匹配。若當前測試任務的測試類型與所述測試終端的測試類型相匹配,則分控中心對當前測試任務,即優先級最高的測試任務進行加載,并對本次測試任務中的測試用例進行分配。若當前測試任務的測試類型與所述測試終端的測試類型不匹配,則選擇測試任務中優先級次之的測試任務為當前測試任務,判斷所述當前測試任務(優先級次之的測試任務)的測試類型與測試終端的測試類型是否匹配,在二者匹配的前提下,對當前測試任務(優先級次之的測試任務)進行加載,并對當前測試任務(優先級次之的測試任務)中的測試用例進行分配。也就是說,如果優先級最高的測試任務的測試類型和測試終端的測試類型不匹配,那么就找優先級第二高的測試任務,判斷優先級第二高的測試任務的測試類型與測試終端的測試類型是否匹配,若匹配則對優先級第二高的測試任務進行加載,并對優先級第二高的測試任務中的測試用例進行分配,若不匹配,則找優先級第三高的測試任務,依此類推。所述分控中心對當前測試任務的加載具體為:所述分控中心的測試用例管理模塊基于接收到的來自應用模塊轉發的測試任務文件,對所述測試任務文件進行解析,讀取所述測試任務文件中的內容至測試用例表中,就是將本次測試任務需要運行的測試用例的編號、重跑次數等內容加載至所述測試用例表,以實現對本次測試任務的加載。需要說明的是,上述是以測試終端的測試類型不唯一時,分控中心對所述測試任務的加載進行了說明。而對于所有的測試終端的測試類型唯一而言,分控中心只需要對測試任務中優先級最高的測試任務進行加載,并對其涉及的測試用例進行分配,以實現對本次測試任務的加載。若測試任務的測試類型與所有的測試終端的測試類型都不匹配,則本次測試任務加載失敗。以下結合圖3和圖7對分控中心的測試用例管理模塊分配測試用例的過程進行相應的說明。圖7是本發明實施例的測試用例管理模塊分配測試用例的流程示意圖;在對圖7進行說明之前,先對測試任務表進行簡單的說明,分控中心在接收到測試任務后,其應用模塊202會根據測試任務中測試任務文件的內容來創建測試任務表,對于每一個測試任務而言,均具有與之相對應的測試任務表,所述測試任務表中包括測試任務的名稱,測試任務的狀態(測試任務完成、測試任務運行中)且所述測試任務表中包含了上述的測試用例表中的所有內容。分控中心在接收到測試開始的命令后,其測試用例管理模塊203對當前測試任務中的測試任務文件進行解析,創建測試用例表,應用模塊202創建測試任務表,測試任務表中包含了測試用例表中的所有內容。當應用模塊202獲悉測試終端的測試類型與測試任務的測試類型匹配且測試終端空閑時,會調用所述測試用例管理模塊203,如圖7所示,測試用例管理模塊203基于其創建的測試用例表中的信息,判斷當前測試任務中是否還有需要運行的測試用例,具體地,根據測試用例表中每一個測試用例的運行結果、如:成功還是失敗,失敗的測試用例的重跑次數來判斷。如果測試用例表中所有的測試用例均已運行過,且運行失敗的測試用例的重跑次數為0(一般來講,對于每一個測試用例其均對應有重跑次數,當測試用例運行失敗后,會進行相應的重跑,運行失敗的測試用例每重跑一次,測試用例表中的重跑次數會減1)則認為當前測試任務中已無需要運行的測試用例,否則繼續對當前測試任務中的測試用例進行分配(每分配一次,應用模塊相應地對測試用例表進行更新)直至測試用例表中顯示所有的測試用例均已運行過,且運行失敗的測試用例的重跑次數為0。若當前測試任務所有的測試用例均已運行過,且運行失敗的測試用例的重跑次數為0,則判斷當前測試任務中是否還有在運行的測試用例(仍然根據每個測試用例的運行結果進行判斷,若測試用例沒有與之對應的運行結果,則認為該測試用例運行中),如果有,則通過應用模塊202在測試任務表中標識本次測試任務不需再分配測試用例,然后將下一個測試任務設置為當前測試任務,解析當前測試任務文件,創建測試用例表,并基于所述測試用例表對下一個測試任務中的測試用例進行分配。如果沒有,則通過應用模塊將測試任務表中測試任務的狀態設置為完成狀態,即本次測試任務完成,接下來仍將下一個測試任務設置為當前測試任務,解析當前測試任務文件,創建測試用例表,并基于所述測試用例表對下一個測試任務中的測試用例進行分配。在測試過程中,通常會遇到測試用例運行失敗的情況,故,所述應用模塊202還用于在所述測試終端運行測試用例失敗,基于其他測試終端的狀態信息調用測試用例管理模塊203對運行失敗的測試用例進行分配。具體地,測試終端將測試用例運行失敗的結果經由所述通信模塊201發送至應用模塊202,所述應用模塊202更新測試用例表,當所述應用模塊202獲悉測試終端空閑時,調用所述測試用例管理模塊203對測試用例表中標識的運行失敗的測試用例進行分配。以下結合圖2和圖3,以一個具體的實例對測試用例管理模塊分配運行失敗的測試用例的過程進行簡單的說明。以測試用例表中包括:測試用例標識為001~009為例。測試終端301運行測試用例006失敗,并將測試用例006運行失敗的結果發送至通信模塊201,通信模塊201將測試用例006運行失敗的結果發送至應用模塊202,應用模塊202將測試用例表中測試用例006的運行結果更新為“失敗”。當應用模塊202獲悉測試終端302空閑時,調用測試用例管理模塊203對測試用例進行分配,若此時測試用例管理模塊203正在分配測試用例008,則在完成對測試用例008的分配后,繼續分配其后的測試用例009(通常測試用例管理模塊按照存儲在測試用例表中的測試用例標識的順序對測試用例進行分配),在對測試用例009分配后,測試用例管理模塊203會判斷測試用例006之前的測試用例是否已處于運行中或者已運行成功,若測試用例006之前的測試用例正在運行或已經運行成功,則測試任務管理模塊203在應用模塊202調用其時,將運行失敗的測試用例006分配至空閑的測試終端,同時,應用模塊202更新測試用例表中測試用例006的重跑次數,將測試用例表中測試用例006當前的重跑次數減1,當測試用例表中所有運行失敗的測試用例的重跑次數都置為0時,則意味著本次測試任務結束。本實施例中,所述應用模塊202,還用于對所述測試終端的異常狀態進行處理。所述測試終端的異常狀態包括:測試終端運行測試用例超時、測試終端無響應、測試終端與分控中心連接斷開、測試版本下載失敗或所述測試版本下的測試用例下載失敗。本實施例中,分控中心的應用模塊會建立測試終端表,并通過輪詢的方式獲取所述測試終端的異常狀態,具體地,就是每隔一定的時間,調用通信模塊向所述測試終端發信號,并通過所述測試終端的反饋以獲取所述測試終端的狀態。所述測試終端表包括:測試終端的端口號、IP地址、測試終端的測試類型、運行測試用例的標識。當測試終端無響應時,所述應用模塊視該測試終端為無效測試終端;當測試終端運行測試用例超時時,所述應用模塊調用通信模塊發送控制信號以終止該測試終端的運行,并在獲悉有空閑的測試終端時,調用測試用例管理模塊將運行超時的測試用例分配至所述空閑的測試終端,以重新運行該測試用例;當應用模塊獲知測試終端與其連接斷開后,所述應用模塊會調用通信模塊重新嘗試與測試終端進行連接;當測試終端將啟動器下載測試任務的測試版本或所述測試版本下的測試用例的失敗結果反饋至應用模塊時,所述應用模塊調用通信模塊發送信號,以將該測試終端設置為對該測試任務為無效的狀態。此外,本實施例中,所述分控中心2還可以包括用戶界面模塊(圖中未示出),用于生成操作界面,以使得用戶可以通過操作界面來對分控中心進行操作,如:通過對所述操作界面進行操作來和總控中心建立或斷開連接,設置所述分控中心的屬性等。本實施例中,所述測試終端包括:測試代理端、測試運行器和測試工具。所述測試代理端,用于接收所述測試用例的信息和測試版本的存儲路徑,并將所述測試版本的存儲路徑發送至對應的啟動器,基于所述啟動器的下載結果調用測試運行器,檢測與所述分控中心的連接狀態并反饋至所述分控中心。所述測試運行器,用于基于所述測試代理端的調用控制所述測試工具。所述測試工具,用于運行所分配的測試用例,反饋測試結果至所述測試運行器;所述測試運行器,還用于通過所述測試代理端將所述測試結果反饋至所述分控中心。本實施例中,測試代理端運行之后,根據其配置文件中配置的分控中心的IP地址和端口號,會不斷地嘗試與分控中心進行連接,具體地,測試代理端檢測分控中心的IP地址和端口號,檢測到后,會將其與分控中心的連接信息發送至分控中心,分控中心基于連接信息和測試代理端建立連接。測試代理端和分控中心成功連接后,測試代理端接收來自分控中心的通信模塊發送的測試用例的信息和測試版本的存儲路徑,并將所述測試版本的存儲路徑轉發至啟動器。所述啟動器在接收到測試代理端發送的測試版本的存儲路徑后,根據測試版本的存儲路徑,會對本次測試任務所需要的測試版本和測試用例進行下載,一般來講,所述測試版本和測試用例存儲在總控中心的版本服務器中,啟動器根據測試版本的存儲路徑從版本服務器中下載測試版本及其下的測試用例。且在實際測試過程中,啟動器在下載測試用例時,會將和該測試版本相關的所有的測試用例全部下載。因此,所述啟動器對測試版本及其下的測試用例進行下載前,會判斷所述測試版本及其下的測試用例是否已經下載。一般來講,啟動器在對測試版本及其下的測試用例下載完成后,會建立與該測試版本對應的標志文件,以表明該測試版本及其下的測試用例已經下載完成,故啟動器會通過標志文件來判斷測試版本及其下的測試用例是否已經下載,若已經下載過,則不再進行下載。在其他實施例中,也可以由測試代理端來判斷當前接收到的測試任務的測試版本與之前接收到的測試任務的測試版本是否為同一個測試版本,若是同一個測試版本,則不再將測試版本的存儲路徑發送至所述啟動器。此時,測試代理端也不需要基于啟動器的下載結果來調用測試運行器,而是直接由測試代理端調用測試運行器。若不是同一個測試版本,則仍然需要將測試版本的存儲路徑發送至啟動器,由啟動器來完成對測試版本及其下的測試用例的下載。本實施例中所述測試代理端與所述測試運行器、所述啟動器通過共享內存的方式進行通信。所謂共享內存是指兩個或更多進程共享一給定的存儲區域。同一塊物理內存被映射到不同進程各自的進程地址空間。不同的進程之間可以實時地看到其他進程對共享內存中數據的更新,由于數據不需要在各個進程之間進行復制,可以加快進程之間的通信。本實施例中,啟動器、各個測試代理端,測試運行器都有與之對應的共享內存。所述共享內存根據不同的內容劃分出對應的區間以存儲啟動器、測試代理端、測試運行器中的數據。采用共享內存的方式進行通信,可以加快測試代理端與所述啟動器、測試運行器之間的通信。本實施例中,所述測試代理端,還用于對所述測試運行器的異常狀態進行相應的處理,具體地,所述測試代理端通過輪詢的方式來判斷測試運行器是否出現異常。當所述測試運行器的運行窗口不存在時,可以開啟新的測試運行器。所述測試代理端可以包括:通信子模塊和測試運行器管理模塊,所述通信子模塊用于與分控中心的通信模塊進行信息的交互,接收來自分控中的測試任務,如:測試任務文件和測試版本的存儲路徑,將測試結果反饋至分控中心等。測試代理端的通信子模塊采用XML-RPC實現與所述分控中心的通信模塊之間的信息傳遞。測試運行器管理模塊則用于啟動和管理測試運行器,測試運行器管理模塊也可以通過共享內存的方式與測試運行器之間進行通信。本實施例中所述測試工具包括:基站模擬器。若要測試真實的移動終端,則所述移動終端的測試系統還包括:下載工具,用于將所述啟動器下載的測試版本下載到所述移動終端。若要測試移動終端模擬器,則直接將所述啟動器下載的測試版本復制到移動終端模擬器中。另外,若測試版本中提供移動終端模擬器,則啟動器在下載測試版本的同時,也會將移動終端模擬器下載至測試終端,同樣地,所述移動終端模擬器也要復制測試版本(通常通過運行移動終端模擬器來讀取測試版本文件),然后通過測試工具對移動終端模擬器進行測試。本實施例中,所述測試運行器可以通過輪詢的方式來判斷測試工具是否出現異常,在測試工具出現異常的情況下以開啟新的測試工具,以確保測試過程中的可靠性。綜上所述,本發明實施例的技術方案,至少具有如下有益效果:分控中心接收所述測試任務并基于預定的分配策略分配測試用例至相應的測試終端,具有很大的靈活性,可以充分利用測試終端的資源,有助于提高測試效率。分控中心基于所述測試終端的狀態信息分配測試用例至相應的測試終端,由于其在分配測試用例的同時兼顧了測試終端的狀態,因此避免出現在一個測試終端上運行的測試用例過多,而是在每個測試終端都均衡地分配有測試用例,由于通過多個測試終端運行測試用例,因此,對于測試任務而言可以減少其運行時間,也即提高了測試效率。分控中心重新分配運行失敗的測試用例,即在測試終端運行測試用例失敗,基于其他測試終端的狀態信息將所述運行失敗的測試用例分配至其他測試終端,這樣可以確保測試任務的完成,從而提高了測試效率和可靠性。而且,將運行失敗的測試用例重新分配,可以通過其他測試終端運行所述測試用例來判斷究竟是測試用例的問題還是測試終端的問題,也無需通過手動的方式拷貝失敗的測試用例至其他測試終端,故降低了測試過程中的繁瑣程度,相應地也降低了測試成本。所述移動終端的測試系統包括至少一啟動器,所述啟動器對應至少一個測試終端,通過所述啟動器來下載測試版本及其下的測試用例,且當不同的測試終端對相同的測試版本進行測試時,所述啟動器只進行一次該測試版本及其下的測試用例的下載,減少了對測試版本及其下的測試用例的下載次數,提高了測試效率,且采用所述啟動器來下載測試版本及其下的測試用例也實現了對測試版本及其下的測試用例的集中管理。所述測試終端包括測試代理端、測試運行器和測試工具,進而在通過所述測試終端對移動終端/移動終端模擬器進行測試時,一旦所述測試代理端、測試運行器和測試工具中的任意一個出現異常情況,則可以通過開啟新的測試代理端或測試運行器或測試工具來運行測試用例,因此,提高了測試系統的可靠性。本發明雖然已以較佳實施例公開如上,但其并不是用來限定本發明,任何本領域技術人員在不脫離本發明的精神和范圍內,都可以利用上述揭示的方法和技術內容對本發明技術方案做出可能的變動和修改,因此,凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發明技術方案的保護范圍。