本發(fā)明涉及自動化測試技術領域,尤其涉及一種全自動測試系統(tǒng)及測試方法。
背景技術:
隨著移動終端行業(yè)的興起,移動終端逐漸融入人們的生活中。隨著行業(yè)競爭壓力的提升,整個移動終端行業(yè)發(fā)展的關鍵逐漸轉向了縮短開發(fā)周期、保證軟件版本穩(wěn)定等方面。而在這方面具有重要作用的即為對移動終端執(zhí)行的自動化測試過程。
現(xiàn)有技術中的自動化測試過程在有測試任務需要執(zhí)行時,仍然需要人為干預,例如需要人為輸入版本,人為選擇測試任務等。換言之,現(xiàn)有技術中的自動化測試技術無法做到在無人值守時保證自動執(zhí)行測試,因此相應降低了自動化測試的測試效率。
技術實現(xiàn)要素:
根據(jù)現(xiàn)有技術中存在的問題,現(xiàn)提供一種全自動測試系統(tǒng)及測試方法的技術方案,旨在進一步減少自動化測試過程中人力資源的耗費,提升自動化測試的效率。
上述技術方案具體包括:
一種全自動測試系統(tǒng),其中,包括控制端和分別與所述控制端連接的多個移動終端;
所述控制端包括:
版本管理單元,其中預存有多個測試版本包,所述版本管理單元供測試人員添加所述測試版本包,并檢測是否存在尚未經過測試的測試版本包,輸出相應的檢測結果;
測試管理單元,其中預設有多個測試腳本,所述測試管理單元連接所述 版本管理單元,用于根據(jù)所述檢測結果,向相應的所述移動終端下發(fā)尚未經過測試的所述測試版本包,并以與所述測試版本包對應的測試腳本控制相應的所述移動終端進行自動化測試;
監(jiān)控管理單元,連接所述測試管理單元,用于對所述移動終端執(zhí)行自動化測試的過程進行監(jiān)控,并根據(jù)監(jiān)控結果控制所述測試管理單元掛起或繼續(xù)運行。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述版本管理單元包括:
第一存儲模塊,其中預先保存有多個所述測試版本包,每個所述測試版本包對應一個版本的測試系統(tǒng);
編輯模塊,連接所述第一存儲模塊,供使用者編輯所述測試版本包,和/或向所述第一存儲模塊中添加新的所述測試版本包;
檢測模塊,連接所述第一存儲模塊,用于定期掃描是否存在尚未經過測試的所述測試版本包,并輸出相應的所述檢測結果。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述測試管理單元包括:
版本提取模塊,用于根據(jù)所述檢測結果提取相應的尚未經過測試的所述測試版本包并輸出;
第二存儲模塊,其中預先保存有不同測試類型的所述測試腳本;
腳本提取模塊,分別連接所述版本提取模塊和所述第二存儲模塊,用于根據(jù)被提取的所述測試版本包,判斷需要進行的所述測試類型,并從所述第二存儲模塊中提取對應類型的所述測試腳本并輸出;
測試選擇模塊,連接所述版本提取模塊,用于根據(jù)被提取的所述測試版本包選擇相應的所述移動終端進行自動化測試;
版本管理模塊,分別連接所述版本提取模塊和所述測試選擇模塊,用于向被選擇的所述移動終端下發(fā)被提取的所述測試版本包,以供所述移動終端配置相應的所述測試系統(tǒng);
測試管理模塊,分別連接所述腳本提取模塊和所述測試選擇模塊,用于根據(jù)被提取的所述測試腳本,向被選擇的所述移動終端下發(fā)相應的測試指令,以控制所述移動終端執(zhí)行相應的自動化測試。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述測試管理單元下發(fā)所述測試版本包以及所述測試指令的方式均為發(fā)送AT命令至相應的所述移動終端,以 控制所述移動終端進入下載模式并自動下載被提取的所述測試版本包和所述測試指令。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述監(jiān)控管理單元包括:
第一監(jiān)控模塊,用于在所述移動終端執(zhí)行自動化測試的過程中監(jiān)控是否發(fā)生影響測試過程的第一測試異常,記錄發(fā)生所述第一測試異常的監(jiān)控日志,并在發(fā)生所述第一測試異常時將所述測試管理單元掛起;
第二監(jiān)控模塊,用于在所述移動終端執(zhí)行完自動化測試的過程之后獲取所述移動終端產生的日志文件,分析所述日志文件以處理得到相應的測試報告并向使用者顯示。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述第二監(jiān)控模塊中預設有多個關鍵字信息,每個所述關鍵字信息對應于一類用于表示所述移動終端的系統(tǒng)性能出現(xiàn)問題的第二測試異常;
所述第二監(jiān)控模塊篩選得到所述日志文件中包括所述關鍵字信息的日志記錄,并根據(jù)所述關鍵字信息對所述篩選得到的所述日志記錄進行分類處理,以分別得到對應每類所述第二測試異常的測試結果;
所述第二監(jiān)控模塊將所有所述測試結果整合在一測試報告中并向使用者顯示。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述監(jiān)控管理單元中還包括:
輸入模塊,連接所述第二監(jiān)控模塊,供使用者編輯預設于所述第二監(jiān)控模塊中的所述關鍵字信息。
優(yōu)選的,該全自動測試系統(tǒng),其中,所述監(jiān)控管理單元中還包括:
異常提交模塊,連接所述第二監(jiān)控模塊,用于將表示所述第二測試異常的所述測試結果與相應的所述日志記錄關聯(lián)形成一異常記錄,并提交所述異常記錄,以供使用者進行異常情況跟蹤。
優(yōu)選的,該全自動測試系統(tǒng),其中,還包括:
異?;謴蛦卧?,連接所述監(jiān)控管理單元,用于在所述監(jiān)控結果表示所述移動終端于自動化測試的過程中產生預設的測試異常時下發(fā)相應的恢復指令以控制所述移動終端從所述測試異常中恢復,并繼續(xù)執(zhí)行自動化測試。
一種全自動測試方法,其中,包括控制端與分別和所述控制端連接的多個移動終端;
所述控制端中預設有多個測試版本包,以及對應不同測試類型的多個測試腳本,并供使用者編輯和/或添加;
所述全自動測試方法具體包括:
步驟S1,檢測所述控制端中是否包括尚未經過測試的所述測試版本包,并在所述控制端中包括尚未經過測試的所述測試版本包時轉向步驟S2;
步驟S2,所述控制端提取尚未經過測試的所述測試版本包,并根據(jù)被提取的所述測試版本包查找得到需要執(zhí)行的測試類型所對應的所述測試腳本;
步驟S3,所述控制端向相應的所述移動終端下發(fā)被提取的所述測試版本包,以及根據(jù)被提取的所述測試腳本向相應的所述移動終端下發(fā)相應的測試指令,以控制所述移動終端執(zhí)行自動化測試;
步驟S4,所述控制端于所述移動終端于自動化測試的過程中進行監(jiān)控,并根據(jù)監(jiān)控結果控制所述測試管理單元掛起或繼續(xù)運行。
優(yōu)選的,該全自動測試方法,其中,所述步驟S2具體包括:
步驟S21,所述控制端提取尚未經過測試的所述測試版本包;
步驟S22,所述控制端根據(jù)被提取的所述測試版本包確定需要測試的測試類型;
步驟S23,所述控制端根據(jù)確定的所述測試類型,提取相應的多個測試腳本并輸出,隨后轉至所述步驟S3。
優(yōu)選的,該全自動測試方法,其中,所述步驟S3中,所述控制端以下發(fā)AT命令的方式控制所述移動終端進入下載狀態(tài),并自動下載所述控制端下發(fā)的所述測試版本包和所述測試指令。
優(yōu)選的,該全自動測試方法,其中,所述步驟S3具體包括:
步驟S31,所述控制端根據(jù)被提取的所述測試版本包,選擇一個相匹配的所述移動終端;
步驟S32,所述控制端向被選擇的所述移動終端下發(fā)被提取的所述測試版本包;
步驟S33,所述控制端根據(jù)被提取的所述測試腳本向被選擇的所述移動終端下發(fā)相應的所述測試指令,隨后轉至所述步驟S4。
優(yōu)選的,該全自動測試方法,其中,所述步驟S4中,所述控制端于所述移動終端執(zhí)行自動化測試的過程中監(jiān)控的內容包括:
在所述移動終端執(zhí)行自動化測試的過程中監(jiān)控是否發(fā)生影響測試過程的第一測試異常,記錄發(fā)生所述第一測試異常的監(jiān)控日志,并在發(fā)生所述第一測試異常時將所述測試管理單元掛起;和/或
在所述移動終端執(zhí)行完自動化測試的過程之后獲取所述移動終端產生的日志文件,分析所述日志文件以處理得到相應的測試報告并向使用者顯示。
優(yōu)選的,該全自動測試方法,其中,預設有多個關鍵字信息,每個所述關鍵字信息對應于一類用于表示所述移動終端的系統(tǒng)性能出現(xiàn)問題的第二測試異常;
所述步驟S4中,篩選得到所述日志文件中包括所述關鍵字信息的日志記錄,并根據(jù)所述關鍵字信息對所述篩選得到的所述日志記錄進行分類處理,以分別得到對應每類所述第二測試異常的測試結果;
將所有所述測試結果整合在一測試報告中并向使用者顯示。
優(yōu)選的,該全自動測試方法,其中,所述步驟S4中,將表示所述第二測試異常的所述測試結果與相應的所述日志記錄關聯(lián)形成一異常記錄,并提交所述異常記錄,以供使用者進行異常情況跟蹤。
優(yōu)選的,該全自動測試方法,其中,在所述監(jiān)控結果表示所述移動終端于自動化測試的過程中產生預設的測試異常時,下發(fā)相應的恢復指令以控制所述移動終端從所述測試異常中恢復,并繼續(xù)執(zhí)行自動化測試。
上述技術方案的有益效果是:
1)實現(xiàn)測試系統(tǒng)版本的自動跟蹤測試,進一步減少測試過程中人力資源的耗費,提升測試效率;
2)對測試結果進行監(jiān)控,便于使用者隨時掌握測試進程,直觀反映測試系統(tǒng)版本質量的走勢。
附圖說明
圖1是本發(fā)明的較佳的實施例中,一種全自動測試系統(tǒng)的總體結構示意圖;
圖2-4是本發(fā)明的較佳的實施例中,一種全自動測試系統(tǒng)的分部結構示意圖;
圖5是本發(fā)明的較佳的實施例中,一種全自動測試方法的總體流程示意 圖;
圖6-7是本發(fā)明的較佳的實施例中,一種全自動測試方法的分步流程示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
下面結合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的限定。
現(xiàn)有的自動化測試技術,往往仍然需要人為干預,例如需要人為輸入軟件版本,需要手動對輸入的軟件版本進行相關測試任務的設定,手動將軟件版本下載到移動終端內并手動設置移動終端內的相應的預配置,在測試過程中發(fā)生一些硬件上的異常,同樣需要手動處理。同時,現(xiàn)有的自動化測試技術中,對于測試結果的呈現(xiàn)比較單一,無法讓測試人員比較直觀地觀察測試結果,降低使用體驗。
本發(fā)明的較佳的實施例中,基于現(xiàn)有技術中存在的上述問題,現(xiàn)提供一種全自動測試系統(tǒng)的技術方案。
本發(fā)明的較佳的實施例中,如圖1所示,上述全自動測試系統(tǒng)中包括控制端A和移動終端B,控制端A分別與移動終端B連接。本發(fā)明的較佳的實施例中,控制端A與移動終端B之間的連接方式可以為無線連接,也可以為有線連接,在此不對控制端A與移動終端B之間的連接方式作出限定。
本發(fā)明的較佳的實施例中,上述控制端A的任務在于控制移動終端B執(zhí)行自動化測試。具體地,控制端A向移動終端B下發(fā)測試系統(tǒng)的測試版本包,移動終端B安裝該測試版本包并對該測試系統(tǒng)預配置完成,以準備進行自動化測試??刂贫薃向移動終端B下發(fā)相應的測試指令,移動終端B根據(jù)下發(fā)的測試指令執(zhí)行相應的自動化測試。
本發(fā)明的較佳的實施例中,仍然如圖1所示,控制端A中包括:
版本管理單元1。本發(fā)明的較佳的實施例中,版本管理單元1中預存有多個測試版本包。本發(fā)明的較佳的實施例中,所謂測試版本包,其中包括了安裝相應的測試系統(tǒng)所需的信息,以及配置相應的測試系統(tǒng)所需的信息。本發(fā)明的較佳的實施例中,所謂測試系統(tǒng),并非一定為操作系統(tǒng),也可以為一個軟件應用,本發(fā)明技術方案中所稱測試系統(tǒng),是為便于本領域技術人員認識到測試版本包對應于構建一個相應版本的測試環(huán)境所做的考慮,并非將測試系統(tǒng)等同于操作系統(tǒng)。
本發(fā)明的較佳的實施例中,版本管理單元1供測試人員添加測試版本包,并檢測是否存在尚未經過測試的測試版本包,輸出相應的檢測結果。
本發(fā)明的較佳的實施例中,所謂尚未經過測試的測試版本包,通常情況下是指測試人員新添加的測試版本包。
本發(fā)明的一個較佳的實施例中,當一個測試版本包已經被測試完畢后,版本管理單元1會對該測試版本包打上相應的標記。因此,版本管理單元1可以通過是否打上相應標記的方式判斷一個測試版本包是否經過測試;
本發(fā)明的另一個較佳的實施例中,當一個測試版本包已經被測試完畢后,版本管理單元1會將該測試版本包刪除。因此,版本管理單元1可以通過查找其中是否預設有測試版本包來判斷是否存在尚未經過測試的測試版本包。
本發(fā)明的其他實施例中,版本管理單元1還可以通過其他方式檢測其中是否預設有尚未經過檢測的測試版本包,在此不再贅述。
本發(fā)明的較佳的實施例中,如圖2所示,上述版本管理單元1中進一步包括:
第一存儲模塊11,其中預先保存有多個測試版本包。本發(fā)明的較佳的實施例中,每個測試版本包對應一個版本的測試系統(tǒng);
編輯模塊12,連接第一存儲模塊11。本發(fā)明的較佳的實施例中,編輯模塊12供測試人員編輯測試版本包,和/或向第一存儲模塊11中添加新的測試版本包;
檢測模塊13,連接第一存儲模塊11。本發(fā)明的較佳的實施例中,檢測模塊13用于定期掃描是否存在尚未經過測試的測試版本包,并輸出相應的檢 測結果。本發(fā)明的較佳的實施例中,檢測的方式如上文中所述,在此不再贅述。
本發(fā)明的較佳的實施例中,上述控制端A中還包括:
測試管理單元2,連接上述版本管理單元1。本發(fā)明的較佳的實施例中,測試管理單元2中預設有多個測試腳本。進一步地,本發(fā)明的較佳的實施例中,上述測試管理單元2中預設有對應不同測試類型的多個測試腳本。而上文中所述的測試版本包,其關聯(lián)于相應的測試類型,即可以根據(jù)測試版本包決定在該測試系統(tǒng)中需要執(zhí)行哪些類型的自動化測試,因此可以根據(jù)確定的測試類型找到相應的測試腳本。換言之,本發(fā)明的較佳的實施例中,測試管理單元可以根據(jù)被提取的測試版本包查找并提取需要執(zhí)行的多個測試腳本。本發(fā)明的較佳的實施例中,測試管理單元2向相應的移動終端B下發(fā)尚未經過測試的測試版本包,并以與測試版本包對應的測試腳本控制相應的移動終端B進行自動化測試。
進一步地,本發(fā)明的較佳的實施例中,如圖3所示,上述測試管理單元2包括:
版本提取模塊21。本發(fā)明的較佳的實施例中,上述版本提取模塊21用于根據(jù)檢測結果提取相應的尚未經過測試的測試版本包并輸出。
第二存儲模塊22。本發(fā)明的較佳的實施例中,如上文中所述,第二存儲模塊22中預先保存有不同測試類型的測試腳本。本發(fā)明的較佳的實施例中,第二存儲模塊22中包括出的一個測試腳本可以認為是用于完成移動終端B中一個功能模塊的自動化測試所需要的指令集合。例如,將完成移動終端B通話功能的自動化測試所需要的測試指令按預設的執(zhí)行順序排列于相應的測試腳本中;又或者,需要對移動終端B的短信收發(fā)功能進行測試,則可以將測試短信收發(fā)功能所需要的測試指令按照預設的執(zhí)行順序封裝于相應的測試腳本中。
腳本提取模塊23,分別連接版本提取模塊21和第二存儲模塊22。本發(fā)明的較佳的實施例中,如上文中所述,腳本提取模塊23用于根據(jù)被提取的測試版本包,判斷需要進行的測試類型,并從第二存儲模塊中提取對應類型的測試腳本并輸出。
測試選擇模塊24,連接版本提取模塊21。本發(fā)明的較佳的實施例中,上 述測試選擇模塊24用于根據(jù)被提取的測試版本包選擇相應的移動終端B進行自動化測試。本發(fā)明的較佳的實施例中,對于每個測試版本包而言,在下發(fā)并執(zhí)行測試之前,首先需要確定適合該測試版本包的移動終端B。具體地,例如,該測試版本包為一在安卓系統(tǒng)下運行的應用軟件的最新版本包,則需要選擇一個同樣搭載有安卓系統(tǒng)的移動終端B才能安裝該測試版本包;又例如,該測試版本包所對應的測試類型中,包括需要進行短信收發(fā)測試的測試腳本,因此需要選擇一個短信收發(fā)功能開啟的移動終端B才能安裝該測試版本包。本發(fā)明的較佳的實施例中,上述測試選擇模塊24根據(jù)測試版本包中包括的信息選擇一個或多個連接的移動終端B作為測試對象,隨后輸出選擇結果。
版本管理模塊25,分別連接版本提取模塊22和測試選擇模塊24。本發(fā)明的較佳的實施例中,版本管理模塊25用于向被選擇的移動終端B下發(fā)被提取的測試版本包,以供移動終端B配置相應的測試系統(tǒng)。
本發(fā)明的較佳的實施例中,版本管理模塊25向被選擇的移動終端(一個或多個)下發(fā)被提取的測試版本包。移動終端根據(jù)該測試版本包中包括的信息安裝該測試版本包。
進一步地,本發(fā)明的較佳的實施例中,版本管理模塊25采用下發(fā)AT命令的方式下發(fā)測試版本包。具體地,所謂AT命令,是指從終端設備(例如控制端A)向數(shù)據(jù)電路終端設備(例如移動終端B)發(fā)送的命令,控制端A可以通過AT命令直接控制移動終端B底層的功能模塊工作,以執(zhí)行相應的自動化測試動作。
本發(fā)明的較佳的實施例中,移動終端B接收到AT命令后,即處于下載狀態(tài)。換言之,移動終端B接收到AT命令后即處于假死狀態(tài)并自動下載控制端A提供的測試版本包。所謂假死狀態(tài),是指移動終端的操作界面鎖定無法操作,鍵盤鎖定無法操作,但是移動終端后臺仍然處于運行狀態(tài)中?,F(xiàn)有技術中,移動終端只能徹底關機(例如插拔電池)后再開機才能將測試版本包刷入移動終端內,以支持自動化測試。但是本發(fā)明中,移動終端接收到AT命令后即進入假死狀態(tài),此時就可以自動下載從控制端A傳輸?shù)臏y試版本包并進行安裝,而無需測試人員手動執(zhí)行關機開機的操作,大大減少了人力資源的耗費。
本發(fā)明的較佳的實施例中,移動終端B下載的測試版本包中,除了包括安裝該版本包對應的測試系統(tǒng)的安裝信息之外,還包括該測試系統(tǒng)的配置信息。換言之,本發(fā)明技術方案中,支持在安裝測試版本包時對其進行必要的預先配置,因此可以支持某些特定的需要預先配置才能執(zhí)行的測試類型,而無需在測試前麻煩測試人員手動設置,減少測試過程中人力資源的耗費。
測試管理模塊26,分別連接腳本提取模塊23和測試選擇模塊24。本發(fā)明的較佳的實施例中,測試管理模塊26用于根據(jù)被提取的測試腳本,向被選擇的移動終端B下發(fā)相應的測試指令,以控制移動終端B執(zhí)行相應的自動化測試。
本發(fā)明的較佳的實施例中,測試管理模塊26同樣采用AT命令下發(fā)的方式向移動終端B下發(fā)相應的測試指令。移動終端B接收到AT命令后自動轉入假死狀態(tài),并自動下載測試管理模塊26提供的測試指令。
本發(fā)明的較佳的實施例中,控制端A還提供給移動終端B充電功能。當需要向其中一個或多個移動終端B下發(fā)相應的測試版本包以及測試指令時,即控制其中一個或多個移動終端B執(zhí)行自動化測試時,被控制的一個或多個移動終端B停止充電并轉入自動化測試過程,其余未被選中的移動終端B仍然處于充電狀態(tài)。
本發(fā)明的較佳的實施例中,測試管理模塊26還根據(jù)預先配置的時長控制移動終端B循環(huán)測試。例如,預先配置的時長為1小時,則測試管理模塊26在1小時內循環(huán)向移動終端B下發(fā)測試指令,以控制移動終端B針對該測試版本包執(zhí)行循環(huán)的自動化測試。
本發(fā)明的較佳的實施例中,如圖1所示,上述控制端A中還包括:
監(jiān)控管理單元3,連接上述測試管理單元2。本發(fā)明的較佳的實施例中,監(jiān)控管理單元3用于對移動終端執(zhí)行自動化測試的過程進行監(jiān)控,并根據(jù)監(jiān)控結果控制測試管理單元掛起或繼續(xù)運行。
進一步地,本發(fā)明的較佳的實施例中,上述控制測試管理單元掛起或繼續(xù)運行僅為監(jiān)控管理單元3的其中一項功能,在下文中會對監(jiān)控管理單元3的全部功能做具體闡述。
本發(fā)明的較佳的實施例中,如圖4所述,上述監(jiān)控管理單元3中具體包括:
第一監(jiān)控模塊31。本發(fā)明的較佳的實施例中,第一監(jiān)控模塊31用于在移動終端執(zhí)行自動化測試的過程中監(jiān)控是否發(fā)生影響測試過程的第一測試異常,記錄發(fā)生第一測試異常的監(jiān)控日志,并在發(fā)生第一測試異常時將測試管理單元掛起,即將測試管理單元設置為處于Hold狀態(tài)。
本發(fā)明的較佳的實施例中,所謂第一測試異常,是指相關于測試過程是否能夠順利進行的異常,也就是會影響到測試過程的測試異常。例如移動終端B下載測試版本包未成功,或者移動終端B安裝測試版本包未成功,或者移動終端B在測試過程中與控制端A斷開連接等。出現(xiàn)上述類型的測試異常,則表示自動化測試過程可能會被中斷(若執(zhí)行自動化測試結束時出現(xiàn)斷開連接的異常,則測試可以正常結束,該異常仍然被歸類為第一測試異常)。本發(fā)明的較佳的實施例中,上述第一監(jiān)控模塊31主動監(jiān)控移動終端B于自動化測試過程中出現(xiàn)的上述第一測試異常,并在出現(xiàn)第一測試異常時將上述測試管理單元3掛起,以等待測試人員手動查看并處理。
本發(fā)明的較佳的實施例中,上述自動化測試過程是一個比較寬泛的概念,從移動終端B接收到AT命令并開始下載測試版本包開始至移動終端B完成自動化測試并上傳日志文件為止均為自動化測試的過程。
本發(fā)明的較佳的實施例中,當?shù)谝槐O(jiān)控模塊31監(jiān)控到移動終端B于自動化測試過程中發(fā)生上述第一測試異常時,主動記錄相應的監(jiān)控日志并輸出,以供測試人員查看。
本發(fā)明的較佳的實施例中,上述監(jiān)控管理單元3中還包括:
第二監(jiān)控模塊32。本發(fā)明的較佳的實施例中,第二監(jiān)控模塊32用于在移動終端執(zhí)行完自動化測試的過程之后獲取移動終端產生的日志文件,分析日志文件以處理得到相應的測試報告并向測試人員顯示。
具體地,本發(fā)明的較佳的實施例中,在第二監(jiān)控模塊32中預設有多個關鍵字信息,每個關鍵字信息對應于一類第二測試異常。本發(fā)明的較佳的實施例中,所謂第二測試異常,實際為用于表示移動終端B本身測試性能的測試異常,例如測試過程中移動終端B出現(xiàn)應用未響應(關鍵字信息對應為Anr)的測試異常,或者出現(xiàn)程序異常退出(關鍵字信息對應為Crash)的測試異常,或者Frame層服務異常(關鍵字信息對應為Watchdog),或者Java層服務異常(關鍵字信息對應為JavaCrasch),或者其他測試異常(統(tǒng)統(tǒng)歸 類在對應關鍵字信息為Others的一類第二測試異常中)。
本發(fā)明的較佳的實施例中,第二監(jiān)控模塊32首先根據(jù)關鍵字信息對主動監(jiān)控得到的移動終端于一次自動化測試結束后上傳的日志文件進行解析(由于一次可以控制多臺移動終端測試,因此可以獲得多個日志文件),并篩選得到包括關鍵字信息的所有日志記錄(通常一個日志文件中包括多條日志記錄)。隨后,第二監(jiān)控模塊32根據(jù)關鍵字信息對篩選得到的日志記錄進行分類,具體為一個關鍵字信息對應一類日志記錄的分類。本發(fā)明的較佳的實施例中,在分類完畢后,第二監(jiān)控模塊32對每類日志記錄分別進行處理,以得到針對每類第二測試異常的測試結果,并最終將這些測試結果整合在一個測試報告上顯示。本發(fā)明的較佳的實施例中,測試結果可以采用比較直觀的表示方法例如圖示法或者表格示意方法,從而便于測試人員查看。
本發(fā)明的較佳的實施例中,每個關鍵字信息關聯(lián)于多個子關鍵字信息,每個子關鍵字信息對應于上述一類第二測試異常中的一個第二測試異常。例如Anr下對應有Binder傳輸失敗、I/O操作異常以及進程意外終止等,Crash下對應有低內存以及低內存時觸發(fā)oom-killer(觸發(fā)殺死進程)等,Watchdog下對應有Modem(基帶處理器)發(fā)生assert(異常)以及Watchdog殺進程提醒等,JavaCrash下對應有程序開啟超過虛擬機空間以及Window(窗口)泄漏等。
因此,本發(fā)明的較佳的實施例中,上述對應每類第二測試異常的測試結果中,還可以包括針對每個測試異常的測試結果,把這些測試結果整合在一起即形成一測試報告并輸出。
本發(fā)明的較佳的實施例中,上述第二監(jiān)控模塊32還支持將上述測試報告顯示給測試人員查看,以及對上述測試報告執(zhí)行上傳備份等操作。
本發(fā)明的較佳的實施例中,上述監(jiān)控管理單元3中還包括:
輸入模塊33,連接上述第二監(jiān)控模塊32。本發(fā)明的較佳的實施例中,輸入模塊33供測試人員對預設于監(jiān)控管理模塊32中的關鍵字信息進行編輯。具體地,本發(fā)明的較佳的實施例中,對關鍵字信息進行編輯包括添加、刪除以及修改關鍵字信息等。這樣能夠對關鍵字信息進行編輯修改,能夠彌補現(xiàn)有技術中分析工具對應固定軟件版本而在其中固化分析信息,從而導致測試異常分析的泛用性較窄的問題。
本發(fā)明的較佳的實施例中,上述監(jiān)控管理單元3中還包括:
異常提交模塊34,連接上述第二監(jiān)控模塊32。本發(fā)明的較佳的實施例中,異常提交模塊還用于根據(jù)測試報告中的測試異常(失敗的case),自動提交相應的異常報告(bug報告),并在該異常報告上附上對應于該測試異常的日志記錄和/或日志記錄所在的日志文件,便于測試人員進行問題追蹤。
本發(fā)明的較佳的實施例中,仍然如圖1所示,上述控制端A中還包括:
異?;謴蛦卧?,連接上述監(jiān)控管理單元3。本發(fā)明的較佳的實施例中,異常恢復單元4用于在監(jiān)控結果表示移動終端于自動化測試的過程中產生預設的測試異常時下發(fā)相應的恢復指令以控制移動終端從測試異常中恢復,并繼續(xù)執(zhí)行自動化測試。具體地,例如,當移動終端發(fā)生定屏、黑屏、掉口等異常時,該異?;謴蛦卧?可以自動恢復移動終端的自動化測試過程,即修復異常并繼續(xù)進行測試。
綜上所述,本發(fā)明技術方案中,采用一臺控制端A掛載多臺移動終端B的方式執(zhí)行移動終端B的自動化測試控制:
首先,控制端A判斷是否存在新的尚未經過測試的測試版本包,并提取尚未經過測試的測試版本包,以向相應的移動終端下發(fā)AT命令的方式控制移動終端自動下載并安裝該測試版本包,以形成相應的測試環(huán)境;
隨后,控制端A根據(jù)被提取的測試版本包確定需要測試的類型,并進而確定需要執(zhí)行的測試腳本,根據(jù)測試腳本向移動終端下發(fā)相應的測試指令,以控制移動終端進行自動化測試,下發(fā)仍然采用AT命令的方式進行;
最后,控制端A在移動終端執(zhí)行自動化測試的過程中進行主動監(jiān)控,以監(jiān)控得到測試過程中產生測試異常對應的監(jiān)控日志,對日志進行處理以形成測試報告并顯示,或者判斷測試異常是否需要控制測試工具掛起以等待測試人員手動處理,從而完成一次完整的自動化測試過程。
上述自動化測試方案能夠盡量排除自動化測試過程中測試人員的參與(例如無需測試人員根據(jù)新版本選擇測試任務以及無需測試人員重啟移動終端以安裝新版本等),大大減少測試過程中人力資源的耗費,提升測試效率,并且能夠提供給測試人員比較直觀的測試報告,提升使用體驗。
本發(fā)明的較佳的實施例中,基于上文中所述的全自動測試系統(tǒng),現(xiàn)提供一種全自動測試方法,其步驟具體如圖4所示,包括:
步驟S1,檢測控制端中是否包括尚未經過測試的測試版本包,并在控制端中包括尚未經過測試的測試版本包時轉向步驟S2;
步驟S2,控制端提取尚未經過測試的測試版本包,并根據(jù)被提取的測試版本包查找得到需要執(zhí)行的測試類型所對應的測試腳本;
本發(fā)明的較佳的實施例中,如圖6所示,上述步驟S2具體包括:
步驟S21,控制端提取尚未經過測試的測試版本包;
步驟S22,控制端根據(jù)被提取的測試版本包確定需要測試的測試類型;
步驟S23,控制端根據(jù)確定的測試類型,提取相應的多個測試腳本并輸出,隨后轉至步驟S3。
步驟S3,控制端向相應的移動終端下發(fā)被提取的測試版本包,以及根據(jù)被提取的測試腳本向相應的移動終端下發(fā)相應的測試指令,以控制移動終端執(zhí)行自動化測試;
本發(fā)明的較佳的實施例中,如圖7所示,上述步驟S3具體包括:
步驟S31,控制端根據(jù)被提取的測試版本包,選擇一個相匹配的移動終端;
步驟S32,控制端向被選擇的移動終端下發(fā)被提取的測試版本包;
步驟S33,控制端根據(jù)被提取的測試腳本向被選擇的移動終端下發(fā)相應的測試指令,隨后轉至步驟S4。
本發(fā)明的較佳的實施例中,上述步驟S3中,控制端向移動終端下發(fā)測試版本包以及測試指令的方式均為向移動終端下發(fā)AT命令,以控制移動終端進入自動下載狀態(tài)(假死狀態(tài))并自動下載上述測試版本包以及測試指令。
步驟S4,控制端于移動終端于自動化測試的過程中進行監(jiān)控,并根據(jù)監(jiān)控結果控制測試管理單元掛起或繼續(xù)運行。
本發(fā)明的較佳的實施例中,如上文中所述,上述步驟S4中,控制端的監(jiān)控功能實際分為兩塊:
1)于自動化測試過程中監(jiān)控是否出現(xiàn)影響測試過程的第一測試異常,例如是否出現(xiàn)移動終端下載版本失敗,或者移動終端安裝版本失敗,或者移動終端與控制端斷開連接等情況,生成相應的異常監(jiān)控日志并上傳,同時將 測試工具掛起等待測試人員處理;
2)于自動化測試過程中,移動終端產生相應的日志文件,控制端與自動化測試過程結束后主動調取日志文件,并按照關鍵字信息篩選得到相應的日志記錄,對日志記錄按照其中包含的關鍵字信息進行分類處理,以分別得到對應每個關鍵字信息的測試結果。將所有測試結果整合在一測試報告中并顯示給測試人員查看。
本發(fā)明的較佳的實施例中,上述步驟S4中,將表示第二測試異常的測試結果與相應的日志記錄關聯(lián)形成一異常記錄,并提交異常記錄,以供使用者進行異常情況跟蹤。
本發(fā)明的較佳的實施例中,在監(jiān)控結果表示移動終端于自動化測試的過程中產生預設的測試異常時,下發(fā)相應的恢復指令以控制移動終端從測試異常中恢復,并繼續(xù)執(zhí)行自動化測試。
以上所述僅為本發(fā)明較佳的實施例,并非因此限制本發(fā)明的實施方式及保護范圍,對于本領域技術人員而言,應當能夠意識到凡運用本發(fā)明說明書及圖示內容所作出的等同替換和顯而易見的變化所得到的方案,均應當包含在本發(fā)明的保護范圍內。