基于uiautomator測試框架的計算器自動化測試方法和測試系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及自動化測試技術(shù)領(lǐng)域,特別是一種基于uiautomator測試框架的計算器自動化測試方法及其應(yīng)用該方法的系統(tǒng)。
【背景技術(shù)】
[0002]自動化測試具有節(jié)省人力、時間、硬件資源、提高工作效率與判斷精準(zhǔn)性等優(yōu)點,因此,在傳統(tǒng)手工測試的基礎(chǔ)上,自動化測試正被逐漸地引入到移動終端APP的測試工作中。以手機(jī)計算器為例,目前主流的自動化測試方法有基于Robotium框架下的自動化測試,其首先將應(yīng)用界面進(jìn)行分層,根據(jù)對應(yīng)的各項功能調(diào)用Robotium中的solo方法進(jìn)行編碼并編譯為可執(zhí)行腳本,將其導(dǎo)入測試機(jī)中,啟動自動化測試;然后根據(jù)各項功能的測試設(shè)置判斷點,調(diào)用截屏函數(shù)對測試結(jié)果進(jìn)行截圖;最后將獲取到的截圖與預(yù)期結(jié)果進(jìn)行比對驗證,輸出測試報告;但是該方法對測試結(jié)果的判別是通過調(diào)用截屏函數(shù)對計算結(jié)果進(jìn)行截圖后在后期再人為比對判別的,效率低、不易大量、重復(fù)地進(jìn)行測試以保證軟件的穩(wěn)定性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明為解決上述問題,提供了一種基于uiautomator測試框架的計算器自動化測試方法和測試系統(tǒng),能夠?qū)κ謾C(jī)計算器進(jìn)行自動計算和自動判別結(jié)果。
[0004]為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0005]—種基于uiautomator測試框架的計算器自動化測試方法,其包括以下步驟:
[0006]10.獲取待測試項目所對應(yīng)的計算器界面的控件屬性;
[0007]20.利用所述的控件屬性定位出待測試的控件元素;
[0008]30.在uiautomator測試框架下,將所述的控件元素封裝為可唯一識別的組件對象;
[0009]40.將所述的組件對象進(jìn)行編碼,并根據(jù)待測試項目編譯為可執(zhí)行腳本;
[0010]50.啟動所述的可執(zhí)行腳本進(jìn)行自動化測試。
[0011]優(yōu)選的,所述的步驟10中獲取待測試項目所對應(yīng)的計算器界面的控件屬性,是通Suiautomatorviewer工具來獲取計算器的待測試項目所對應(yīng)的各個界面上的所有控件屬性。
[0012]優(yōu)選的,所述的步驟20中利用所述的控件屬性定位出待測試的控件元素,是根據(jù)所述的控件屬性通過標(biāo)簽搜索的方式對待測試的控件元素進(jìn)行識別和定位,每個控件元素設(shè)置有對應(yīng)的控件屬性和識別標(biāo)簽。
[0013]優(yōu)選的,所述的步驟30中將所述的控件元素封裝為可唯一識別的組件對象,是將所述的控件元素的控件名稱、控件區(qū)域、控件注釋信息以及控件內(nèi)部屬性進(jìn)行封裝為可唯一識別的組件對象。
[0014]優(yōu)選的,所述的步驟40中,將所述的組件對象進(jìn)行編碼后,根據(jù)待測試項目的測試步驟和測試循環(huán)次數(shù)進(jìn)行編譯為可執(zhí)行腳本。
[0015]優(yōu)選的,所述的計算器的待測試項目包括以下的一種或一種以上的組合:計算器面板按鍵的映射測試、數(shù)據(jù)顯示欄的顯示測試、查看和清除計算歷史記錄的測試、普通面板與基本運(yùn)算功能的測試、科學(xué)面板與特殊運(yùn)算功能的測試。
[0016]優(yōu)選的,所述的步驟50中進(jìn)行自動化測試過程中,進(jìn)行自動計算、自動獲取計算結(jié)果、自動判斷測試結(jié)果,并根據(jù)預(yù)設(shè)的循環(huán)次數(shù)進(jìn)行自動循環(huán)測試,最后生成測試報告。
[0017]優(yōu)選的,所述的步驟30中將所述的控件元素封裝為可唯一識別的組件對象,并直接獲取用于識別該組件對象的字符串,在自動化測試過程中,通過將該組件對象的字符串與預(yù)設(shè)的字符串進(jìn)行對比來進(jìn)行測試結(jié)果的判斷。
[0018]另外,本發(fā)明還提供了一種基于uiautomator測試框架的計算器自動化測試系統(tǒng),其包括:
[0019]控件屬性獲取模塊,用于獲取待測試項目所對應(yīng)的計算器界面的控件屬性;
[0020]控件元素定位模塊,其利用所述的控件屬性定位出待測試的控件元素;
[0021]組件對象封裝模塊,其在uiautomator測試框架下,將所述的控件元素封裝為可唯一識別的組件對象;
[0022]腳步編譯模塊,其將所述的組件對象進(jìn)行編碼,并根據(jù)待測試項目編譯為可執(zhí)行腳本;
[0023]自動化測試模塊,用于啟動所述的可執(zhí)行腳本進(jìn)行自動化測試。
[0024]優(yōu)選的,所述的組件對象封裝模塊將所述的控件元素封裝為可唯一識別的組件對象,并直接獲取用于識別該組件對象的字符串,在調(diào)用自動化測試模塊進(jìn)行自動化測試過程中,通過將該組件對象的字符串與預(yù)設(shè)的字符串進(jìn)行對比來進(jìn)行測試結(jié)果的判斷。
[0025]本發(fā)明的有益效果是:
[0026](I)、能夠?qū)κ謾C(jī)計算器進(jìn)行自動計算、自動判別結(jié)果、可重復(fù)執(zhí)行測試,保證測試高效、充分的進(jìn)行,能夠更好地發(fā)現(xiàn)潛在的漏洞;
[0027](2)、采用uiautomator測試框架,測試范圍更廣,操作更方便:
[0028]a、現(xiàn)有技術(shù)采用Robotium測試框架只能針對某個特定的apk進(jìn)行獨立測試,工作范圍具有局限性;本發(fā)明采用uiautomator測試框架可以對整個系統(tǒng)的所有操作進(jìn)行自動化測試,測試范圍更廣;
[0029]b、現(xiàn)有技術(shù)中使用Robotium框架在模擬器或者真機(jī)上進(jìn)行測試時,必須將測試包和被測試包改成相同的簽名,這一過程涉及到重簽名等操作;并且Robotium調(diào)用截屏函數(shù)還需要一個前提條件:要在被測應(yīng)用的AndroidManifest.xml中添加對SD卡的讀寫權(quán)限;本發(fā)明采用uiautomator框架則無需如此復(fù)雜的前提操作與限制,操作更方便;
[0030](3)、現(xiàn)有技術(shù)中對計算結(jié)果的判斷是調(diào)用截屏函數(shù)對測試關(guān)鍵點進(jìn)行截圖,再通過后期的人工比對進(jìn)行判斷;本發(fā)明通過將所述的控件元素封裝為可唯一識別的組件對象,并直接獲取用于識別該組件對象的字符串,在自動化測試過程中,通過將該組件對象的字符串與預(yù)設(shè)的字符串進(jìn)行對比來進(jìn)行測試結(jié)果的判斷,無需人工干預(yù),真正實現(xiàn)自動化測試,且測試過程不占用額外存儲容量;
[0031 ] (4)、本發(fā)明將所述的控件元素的控件名稱、控件區(qū)域、控件注釋信息以及控件內(nèi)部屬性進(jìn)行封裝為可唯一識別的組件對象,其封裝的信息更豐富,識別性更好。
【附圖說明】
[0032]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0033]圖1為本發(fā)明計算器自動化測試方法的流程簡圖;
[0034]圖2為本發(fā)明計算器自動化測試系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0035]為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚、明白,以下結(jié)合附圖及實施例對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0036]如圖1所示,本發(fā)明的一種基于uiautomator測試框架的計算器自動化測試方法,其包括以下步驟:
[0037]10.獲取待測試項目所對應(yīng)的計算器界面的控件屬性;
[0038]20.利用所述的控件屬性定位出待測試的控件元素;
[0039]30.在uiautomator測試框架下,將所述的控件元素封裝為可唯一識別的組件對象;
[0040]40.將所述的組件對象進(jìn)行編碼,并根據(jù)待測試項目編譯為可執(zhí)行腳本;
[0041]50.啟動所述的可執(zhí)行腳本進(jìn)行自動化測試。
[0042]所述的步驟10中獲取待測試項目所對應(yīng)的計算器界面的控件屬性,是通過uiautomatorviewer工具來獲取計算器的待測試項目所對應(yīng)的各個界面上的所有控件屬性。
[0043]所述的步驟20中利用所述的控件屬性定位出待測試的控件元素,是根據(jù)所述的控件屬性通過標(biāo)簽搜索的方式對待測試的控件元素進(jìn)行識別和定位,每個控件元素設(shè)置有對應(yīng)的控件屬性和識別標(biāo)簽。
[0044]所述的步驟30中將所述的控件元素封裝為可唯一識別的組件對象(U1bject),是將所述的控件元素的控件名稱(packagename)、控件區(qū)域(bounds)、控件注釋信息(content-desc)以及控件內(nèi)部屬性進(jìn)行封裝為可唯一識別的組件對象;并且,通過獲取用于識別該組件對象的字符串,在自動化測試過程中,通過將該組件對象的字符串與預(yù)設(shè)的字符串進(jìn)行對比來進(jìn)行測試結(jié)果的判斷,可直接通過判斷封裝完之后的組件對象是否存在便可輕松實現(xiàn)驗證。例如,長按功能的測試,現(xiàn)有技術(shù)中的Robotium測試框架的Solo類中沒有提供長按按鈕的方法,需