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