一種用于安卓設(shè)備的自動化測試方法
【專利摘要】本發(fā)明涉及電子【技術(shù)領(lǐng)域】,一種用于安卓設(shè)備的自動化測試方法,步驟1,提供一運(yùn)行于安卓設(shè)備的測試程序,使測試程序輸出測試錯誤信息,并提供一運(yùn)行于計(jì)算機(jī)端的批處理腳本,用以控制測試程序運(yùn)行,并采集測試錯誤信息;步驟2,連接安卓設(shè)備至計(jì)算機(jī)端;步驟3,運(yùn)行批處理腳本以復(fù)制測試程序至安卓設(shè)備,并控制測試程序于安卓設(shè)備上運(yùn)行;步驟4,批處理腳本采集測試程序于運(yùn)行過程中輸出的測試錯誤信息。本發(fā)明使用批處理腳本嵌入uiautomator進(jìn)行測試,并使用uiautomator拋出的異常,用批處理腳本進(jìn)行自動捕獲,能夠自動判斷錯誤、自動抓取圖片和日志文件,滿足各類測試用例的需求,是一種高效簡單的腳本組合測試方法。
【專利說明】一種用于安卓設(shè)備的自動化測試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電子【技術(shù)領(lǐng)域】,具體涉及一種自動化測試方法。
【背景技術(shù)】
[0002]安卓(Android)系統(tǒng)是當(dāng)前智能手機(jī)及平板電腦等終端上應(yīng)用最廣泛的操作系統(tǒng)之一,目前關(guān)于安卓系統(tǒng)測試的方法主要通過向安卓系統(tǒng)發(fā)送隨機(jī)的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等,實(shí)現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。由于現(xiàn)有技術(shù)的測試方法是一種隨機(jī)測試方法,無法滿足有針對性的用例測試需求,同時(shí)功能有限,執(zhí)行測試用例需要投入大量的人力和時(shí)間,且測試結(jié)果直接取決于測試人員的水平高低。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于,提供一種安卓設(shè)備的自動化測試方法,解決以上技術(shù)問題。
[0004]本發(fā)明所解決的技術(shù)問題可以采用以下技術(shù)方案來實(shí)現(xiàn):
[0005]一種用于安卓設(shè)備的自動化測試方法,其中,包括以下步驟:
[0006]步驟1,提供一運(yùn)行于安卓設(shè)備的測試程序,使所述測試程序輸出測試錯誤信息,并提供一運(yùn)行于計(jì)算機(jī)端的批處理腳本,用以控制所述測試程序運(yùn)行,并采集所述測試錯誤信息;
[0007]步驟2,連接所述安卓設(shè)備至所述計(jì)算機(jī)端;
[0008]步驟3,運(yùn)行所述批處理腳本以復(fù)制所述測試程序至所述安卓設(shè)備,并控制所述測試程序于所述安卓設(shè)備上運(yùn)行;
[0009]步驟4,所述批處理腳本采集所述測試程序于運(yùn)行過程中輸出的所述測試錯誤信肩、O
[0010]本發(fā)明的用于安卓設(shè)備的自動化測試方法,所述步驟2中所述安卓設(shè)備通過USB接口連接至所述計(jì)算機(jī)端,并開啟所述安卓設(shè)備的USB調(diào)試選項(xiàng)。
[0011]本發(fā)明的用于安卓設(shè)備的自動化測試方法,所述步驟3中,于所述安卓設(shè)備與所述計(jì)算機(jī)端連接成功后,通過執(zhí)行一嵌入所述批處理腳本的安卓指令開啟所述安卓設(shè)備的測試權(quán)限。
[0012]本發(fā)明的用于安卓設(shè)備的自動化測試方法,所述測試程序采用uiautomater工具編制而成;所述批處理腳本采用基于windows操作系統(tǒng)的批處理命令編制而成。
[0013]本發(fā)明的用于安卓設(shè)備的自動化測試方法,步驟3中,所述批處理腳本的測試步驟如下:
[0014]步驟31,判斷是否有安卓設(shè)備連接至所述計(jì)算機(jī)端及連接是否正常,如果連接不正常,輸出提示信息并重復(fù)步驟31 ;
[0015]步驟32,于所述計(jì)算機(jī)上設(shè)置用以保存測試結(jié)果的預(yù)定目錄以及于所述預(yù)定目錄中設(shè)置用以保存測試結(jié)果的結(jié)果文件,并于所述結(jié)果文件中記錄開始測試的時(shí)間;
[0016]步驟33,于所述安卓設(shè)備上建立預(yù)定路徑,復(fù)制所述測試程序至所述預(yù)定路徑中;
[0017]步驟34,控制所述測試程序于所述安卓設(shè)備上運(yùn)行。
[0018]本發(fā)明的用于安卓設(shè)備的自動化測試方法,所述步驟4中,所述批處理腳本采集到所述測試錯誤信息時(shí)包括以下步驟:
[0019]步驟41,控制所述安卓設(shè)備截取屏幕圖像;
[0020]步驟42,控制所述安卓設(shè)備將截取到的所述屏幕圖像儲存至所述安卓設(shè)備上的所述預(yù)定路徑中;
[0021]步驟43,控制所述安卓設(shè)備將所述屏幕圖像傳送至所述計(jì)算機(jī)端的所述預(yù)定目錄中;
[0022]步驟44,控制所述安卓設(shè)備將測試錯誤信息寫入所述計(jì)算機(jī)端的所述預(yù)定目錄的日志文件中;
[0023]步驟45,于所述計(jì)算機(jī)端輸出測試錯誤提示。
[0024]本發(fā)明的用于安卓設(shè)備的自動化測試方法,步驟4中,如所述測試程序運(yùn)行結(jié)束,所述批處理腳本未采集到所述測試錯誤信息,則于所述計(jì)算機(jī)端輸出測試成功的提示,并結(jié)束所述批處理腳本運(yùn)行。
[0025]本發(fā)明的用于安卓設(shè)備的自動化測試方法,測試成功的提示包括:
[0026]于所述計(jì)算機(jī)端的屏幕上顯示測試成功的提示信息,和/或
[0027]播放預(yù)定的表示測試成功的音頻文件。
[0028]本發(fā)明的用于安卓設(shè)備的自動化測試方法,步驟45中,于所述計(jì)算機(jī)端輸出測試錯誤提示包括:
[0029]于所述計(jì)算機(jī)端的屏幕上顯示測試錯誤提示信息,和/或
[0030]播放預(yù)定的表示測試錯誤的音頻文件。
[0031]本發(fā)明的用于安卓設(shè)備的自動化測試方法,所述測試程序中包括對應(yīng)不同測試功能的測試實(shí)例,每個(gè)所述測試實(shí)例包含用以輸出測試錯誤信息的指令。
[0032]有益效果:由于采用以上技術(shù)方案,本發(fā)明具有以下優(yōu)點(diǎn):
[0033]I)、簡便靈活,結(jié)合uiautomator測試方法能發(fā)揮更強(qiáng)大的功能,并適用于任何形式的安卓設(shè)備;
[0034]2)、易于編寫和修改,操作性強(qiáng),是一種高效簡單的腳本組合測試方法;
[0035]3)、和目前的測試方法相比,具有很強(qiáng)的自用性和控制性,功能得到擴(kuò)展,能夠自動判斷錯誤、自動抓取圖片和日志文件(L0G),以及當(dāng)前測試進(jìn)度,滿足各類測試用例的需求;
[0036]4)、能更人性化的操作設(shè)置,擴(kuò)展出用戶交互選擇界面,并能在出現(xiàn)異常時(shí)使用音樂和文字提示使用者進(jìn)行處理。
【專利附圖】
【附圖說明】
[0037]圖1為本發(fā)明的測試流程示意圖;
[0038]圖2為本發(fā)明的批處理腳本的測試流程示意圖;
[0039]圖3為本發(fā)明的批處理腳本采集到測試錯誤信息時(shí)執(zhí)行步驟圖;
[0040]圖4為本發(fā)明的批處理腳本代碼示意圖。
【具體實(shí)施方式】
[0041]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0042]需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0043]下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步說明,但不作為本發(fā)明的限定。
[0044]參照圖1,一種用于安卓設(shè)備的自動化測試方法,其中,包括以下步驟:
[0045]步驟1,提供一運(yùn)行于安卓設(shè)備的測試程序,使測試程序輸出測試錯誤信息,并提供一運(yùn)行于計(jì)算機(jī)端的批處理腳本,用以控制測試程序運(yùn)行,并采集測試錯誤信息;
[0046]步驟2,連接安卓設(shè)備至計(jì)算機(jī)端;
[0047]步驟3,運(yùn)行批處理腳本以復(fù)制測試程序至安卓設(shè)備,并控制測試程序于安卓設(shè)備上運(yùn)行;
[0048]步驟4,批處理腳本采集測試程序于運(yùn)行過程中輸出的測試錯誤信息。
[0049]本發(fā)明的用于安卓設(shè)備的自動化測試方法步驟2中安卓設(shè)備通過USB接口連接至計(jì)算機(jī)端,并開啟安卓設(shè)備的USB調(diào)試選項(xiàng)。通過USB標(biāo)準(zhǔn)數(shù)據(jù)線連接安卓設(shè)備至計(jì)算機(jī)端,進(jìn)入安卓設(shè)備設(shè)置-開發(fā)者選項(xiàng)-USB調(diào)試,以開啟USB調(diào)試功能。
[0050]本發(fā)明的用于安卓設(shè)備的自動化測試方法步驟3中,于安卓設(shè)備與計(jì)算機(jī)端連接成功后,通過執(zhí)行一嵌入批處理腳本的安卓指令開啟安卓設(shè)備的測試權(quán)限。安卓設(shè)備應(yīng)當(dāng)具有root權(quán)限,即可以通過命令開啟root權(quán)限進(jìn)行設(shè)置和測試;計(jì)算機(jī)端應(yīng)當(dāng)具有Windows操作系統(tǒng),并具有安卓命令(ADB)驅(qū)動。
[0051]本發(fā)明的用于安卓設(shè)備的自動化測試方法,測試程序可以采用uiautomater工具編制而成;批處理腳本可以采用基于windows操作系統(tǒng)的批處理(Batch,BAT)命令編制而成。將編寫好的用例uiautomator打包成jar文件供運(yùn)行于計(jì)算機(jī)端的批處理腳本調(diào)用。通過批處理編程語言結(jié)合uiautomator工具,編制運(yùn)行于安卓設(shè)備的測試程序和運(yùn)行于計(jì)算機(jī)端的批處理腳本;運(yùn)行批處理腳本以復(fù)制測試程序至安卓設(shè)備,并控制測試程序于安卓設(shè)備上運(yùn)行;執(zhí)行自動化測試。
[0052]本發(fā)明的用于安卓設(shè)備的自動化測試方法,測試程序中包括對應(yīng)不同測試功能的測試實(shí)例,每個(gè)測試實(shí)例包含用以輸出測試錯誤信息的指令。本發(fā)明通過篩選獲取測試用例,根據(jù)測試用例編寫測試程序,測試程序包含多個(gè)測試步驟,每一測試步驟設(shè)置一異常信息反饋指令,異常信息反饋指令反饋測試結(jié)果至調(diào)用測試程序的批處理腳本。在編寫每條測試步驟時(shí),可以用throws U1bjectNotFoundExcept1n方法拋出異常包裹每條步驟,意義在于當(dāng)出現(xiàn)測試異常情況時(shí),會拋出表征故障和/或異常的關(guān)鍵字,即異常信息帶有Error字符串;也可以根據(jù)需要替換關(guān)鍵字符串,提示用戶測試碰到問題已中斷。腳本編寫中可以包含一些安卓設(shè)備的基本操作,將編寫好的自動化測試程序打成jar包。
[0053]參照圖2,本發(fā)明的用于安卓設(shè)備的自動化測試方法步驟3中,批處理腳本的測試步驟如下:
[0054]步驟31,判斷是否有安卓設(shè)備連接至計(jì)算機(jī)端及連接是否正常,如果連接不正常,輸出提示信息并重復(fù)步驟31 ;
[0055]步驟32,于計(jì)算機(jī)上設(shè)置用以保存測試結(jié)果的預(yù)定目錄以及于預(yù)定目錄中設(shè)置用以保存測試結(jié)果的結(jié)果文件,并于結(jié)果文件中記錄開始測試的時(shí)間;
[0056]步驟33,于安卓設(shè)備上建立預(yù)定路徑,復(fù)制測試程序至預(yù)定路徑中;
[0057]步驟34,控制測試程序于安卓設(shè)備上運(yùn)行。
[0058]參照圖3,本發(fā)明的用于安卓設(shè)備的自動化測試方法步驟4中,批處理腳本采集到測試錯誤信息時(shí)包括以下步驟:
[0059]步驟41,控制安卓設(shè)備截取屏幕圖像;
[0060]步驟42,控制安卓設(shè)備將截取到的屏幕圖像儲存至安卓設(shè)備上的預(yù)定路徑中;
[0061]步驟43,控制安卓設(shè)備將屏幕圖像傳送至計(jì)算機(jī)端的預(yù)定目錄中;
[0062]步驟44,控制安卓設(shè)備將測試錯誤信息寫入計(jì)算機(jī)端的預(yù)定目錄的日志文件中;
[0063]步驟45,于計(jì)算機(jī)端輸出測試錯誤提示。
[0064]本發(fā)明的用于安卓設(shè)備的自動化測試方法,步驟4中,如測試程序運(yùn)行結(jié)束,批處理腳本未采集到測試錯誤信息,則于計(jì)算機(jī)端輸出測試成功的提示,并結(jié)束批處理腳本運(yùn)行。
[0065]本發(fā)明的用于安卓設(shè)備的自動化測試方法,測試成功的提示包括:
[0066]于計(jì)算機(jī)端的屏幕上顯示測試成功的提示信息,和/或
[0067]播放預(yù)定的表示測試成功的音頻文件。
[0068]本發(fā)明的用于安卓設(shè)備的自動化測試方法,步驟45中,于計(jì)算機(jī)端輸出測試錯誤提示包括:
[0069]于計(jì)算機(jī)端的屏幕上顯示測試錯誤提示信息,和/或
[0070]播放預(yù)定的表示測試錯誤的音頻文件。
[0071]具體測試步驟如下:
[0072]第一步:測試準(zhǔn)備階段,準(zhǔn)備安卓設(shè)備,可以是安卓手機(jī)或其他運(yùn)行安卓系統(tǒng)的設(shè)備,安卓設(shè)備的標(biāo)準(zhǔn)USB數(shù)據(jù)線,安裝安卓命令(ADB)驅(qū)動的windows操作系統(tǒng)計(jì)算機(jī);
[0073]第二步:對安卓設(shè)備進(jìn)行設(shè)置,以安卓手機(jī)為例:依次勾選開發(fā)者選項(xiàng)-勾選指針位置和手機(jī)設(shè)置-開發(fā)者選項(xiàng)-USB調(diào)試,并對安卓手機(jī)進(jìn)行root權(quán)限設(shè)定;
[0074]第三步:安裝好eclipse以及uiautomator環(huán)境組件,打開eclipse工具,根據(jù)uiautomator的編寫方法編寫出安卓設(shè)備的自動化執(zhí)行腳本,其中用uiautomator編寫中要包含異常拋出的操作,即
[0075]test () throws U1b jectNotFoundExcept1n {}方法,不同測試功能的測試實(shí)例被編寫在方法體中,使得執(zhí)行過程出現(xiàn)異常時(shí)會拋出異常信息;將編寫好的自動化測試腳本打包成jar,并且確認(rèn)好包名和用以調(diào)用的類名,jar包供批處理腳本調(diào)用;
[0076]第四步:新建一個(gè)文件夾,然后將jar包文件放入其中;再新建一個(gè)文本,將后綴改成.bat,在其中編寫批處理運(yùn)行腳本,以及自定義2個(gè)音頻文件如分別命名為Dag.mp3和Over, mp3,音頻文件可以是歌曲或其他內(nèi)容的音頻,和一個(gè)空的Result文件夾;批處理運(yùn)行腳本的文件名可以為TestPhoneCal1.bat,批處理運(yùn)行腳本對jar包進(jìn)行調(diào)用;
[0077]運(yùn)行時(shí),直接點(diǎn)擊TestPhoneCall.bat執(zhí)行自動化測試。
[0078]參照圖4,為批處理運(yùn)行腳本的一種具體示例;批處理運(yùn)行腳本中未對adb驅(qū)動的路徑進(jìn)行定義,由于不同操作系統(tǒng)環(huán)境中adb驅(qū)動的路徑不同,并且對adb驅(qū)動的路徑定義是本領(lǐng)域技術(shù)人員慣用的方法,在此略去。
[0079]以下結(jié)合圖4的批處理腳本代碼對各個(gè)命令行進(jìn)行解釋:
[0080]I)在批處理運(yùn)行腳本的首行寫入Oecho off命令以關(guān)閉回顯;
[0081]2)寫入adb devices |find/v〃offline〃命令以判斷是否有安卓手機(jī)或其他安卓設(shè)備連接及連接是否正常;
[0082]3)依據(jù)不同的判斷結(jié)果執(zhí)行不同后續(xù)操作,具體命令為:
[0083]“IF ERRORLEVEL lgoto N0C0NNECT
[0084]IF ERRORLEVEL Ogoto CONNECT”
[0085]即如果ERRORLEVEL為I,執(zhí)行N0C0NNECT,N0C0NNECT定義連接不正常情況的處理;不正常情況時(shí)用echo輸出語句提示用戶異常情況出現(xiàn),在用戶交互界面顯示“請檢查設(shè)備是否連接正常! ”并退出;
[0086]CONNECT定義連接正常情況的處理;如果ERRORLEVEL為0,繼續(xù)往下運(yùn)行;
[0087]4)提示用戶“測試開始”;
[0088]“echo 開始測試時(shí)間:>>Result/Result.txt
[0089]date/t>>Result/Result.txt
[0090]time/t>>Result/Result.txt,,
[0091]于計(jì)算機(jī)上設(shè)置用以保存測試結(jié)果的預(yù)定目錄以及于預(yù)定目錄中設(shè)置用以保存測試結(jié)果的結(jié)果文件,并于結(jié)果文件中記錄開始測試的時(shí)間;即輸出重定向到Result文件中,該文件后續(xù)保存腳本測試的所有情況匯總,同時(shí)通過上面的命令記錄下開始測試時(shí)間;
[0092]5)通過用戶交互界面對測試前的各項(xiàng)準(zhǔn)備工作提示給用戶供用戶確認(rèn),如果一切符合要求便可執(zhí)行下一步;不符合設(shè)置要求,用戶可以選擇放棄測試,如:ech0****語句提示測試前用戶需要對安卓設(shè)備做的準(zhǔn)備工作,*表示各種準(zhǔn)備操作,比如不鎖屏等,并使用如下語句讓用戶進(jìn)行確認(rèn),用戶輸入大小寫Y或N進(jìn)行下一步操作,不需要區(qū)分輸入的大小寫都能執(zhí)行;通過以下命令行實(shí)現(xiàn):
[0093]“set/p c......................請確認(rèn)是否按照以上設(shè)置進(jìn)行操作(Y/N):
[0094]if//% c % ^ = = "Y"goto Y
[0095]if//% c% 〃 = = "y"goto Y
[0096]if//% c% 〃 = = "N"goto N
[0097]if//% c% "= = "n"goto N”
[0098]如果選擇了 N或n,將進(jìn)行用戶界面提示,如下
[0099]“: N
[0100]echo請完成以上必要設(shè)置,謝謝! ”
[0101]如果選擇了 Y或y,將進(jìn)行下一步操作;
[0102]6)命令“adb root 67754400”,是取得安卓手機(jī)的root權(quán)限,各個(gè)制造商開啟命令有所不同,依據(jù)實(shí)際測試對象可進(jìn)行調(diào)整;
[0103]7) “adb push TestSmoke.jar/data/local/tmp”;于安卓設(shè)備上建立預(yù)定路徑,復(fù)制測試程序至預(yù)定路徑中;將編寫好的jar包拷貝入安卓手機(jī)的預(yù)定路徑的tmp文件夾中;并在安卓手機(jī)內(nèi)置存儲中新建ui/文件夾和Phico_Smoke子文件夾,便于存放截圖,參照命令:
[0104]“adb shell rm-r/storage/sdcardO/ui
[0105]adb shell mkdir-p/storage/sdcardO/ui/TestSmoke,,:
[0106]8)采用以下命令調(diào)用jar包以將jar包封裝進(jìn)去;“adb shell uiautomatorruntest TestSmoke.jar_c com.Test, smoketest.TestSmoke,,其中 TestSmoke.jar 是 jar包的名字,com.Test, smoketest.TestSmoke是包名和用以調(diào)用的類名;整句命令的作用是批處理腳本調(diào)用jar包進(jìn)行執(zhí)行;
[0107]adb shell uiautomator runtest TestSmoke.jar-c com.Test, smoketest.TestSmoke | find/v〃Errors〃>>Result/Result.txt
[0108]運(yùn)行時(shí),直接點(diǎn)擊TestPhoneCall.bat,既可以運(yùn)行拷貝的jar包;運(yùn)行過程中,監(jiān)聽是否有Errors的關(guān)鍵字出現(xiàn),并將結(jié)果保存入計(jì)算機(jī)端的Result/Result, txt文件中;
[0109]9)依據(jù)以下判斷命令執(zhí)行不同操作:
[0110]“IF ERRORLEVEL I goto SUCCESS
[0111]IF ERRORLEVEL 0 goto ERROR”,
[0112]如果ERRORLEVEL為1,即測試正常時(shí),沒有獲取到字符串Errors,將測試過程也導(dǎo)入到Result/Result, txt中,打印結(jié)束日期和結(jié)束時(shí)間,并刪除安卓手機(jī)內(nèi)存中拷貝的tmp文件夾中的TestSmoke.jar程序。
[0113]具體實(shí)現(xiàn)命令為:“
[0114]echo 結(jié)束測試時(shí)間:>>Result/Result.txt
[0115]date/t>>Result/Result.txt
[0116]time/t>>Result/Result.txt
[0117]adb shell rm/data/local/tmp/TestSmoke.jar” ;
[0118]如果ERRORLEVEL為0,即截取到了異常字符串Errors后執(zhí)行預(yù)定操作;
[0119]10)批處理腳本采集到測試錯誤信息時(shí),可以對錯誤信息進(jìn)行截圖:使用screencap - p命令截取圖片,保存入storage/sdcardO/ui/TestSmoke/目錄下,命名為error, png ;實(shí)現(xiàn)的命令為:
[0120]adb shell/system/bin/screencap-p/storage/sdcardO/ui/TestSmoke/error,png ;
[0121]進(jìn)一步地,將剛才保存的error, png自動導(dǎo)出到Result/文件夾中;實(shí)現(xiàn)的命令為:adb pull/storage/sdcardO/ui/TestSmoke/error, png Result/error, png ;
[0122]批處理腳本采集到測試錯誤信息時(shí),還可以使用logcat - d保存錯誤日志到Result/文件夾中,并命名LOG.txt ;并通過echo命令提示,“echo測試出現(xiàn)異常,請查看Result文件夾,謝謝! ” ;實(shí)現(xiàn)命令為:
[0123]“adb logcat_d>Result/L0G.txt
[0124]echo測試出現(xiàn)異常,請查看Result文件夾,謝謝! ”
[0125]進(jìn)一步地,還可以播放音頻文件Dag.mp3提示用戶,進(jìn)行查看;
[0126]“start Dag.mp3,,。
[0127]本發(fā)明為克服現(xiàn)有技術(shù)不足,提供一種安卓設(shè)備的自動化測試方法,將該自動化測試方法進(jìn)行技術(shù)補(bǔ)足,使測試過程中能夠遇到錯誤時(shí)輸出截圖,日志文件和打印當(dāng)前測試信息,使用批處理腳本結(jié)合uiautomator工具完全替代手動測試,實(shí)現(xiàn)全自動執(zhí)行腳本判斷輸出測試結(jié)果。
[0128]在使用批處理腳本結(jié)合uiautomator的jar文件測試時(shí),可以靈活使用這些命令,根據(jù)需求可以進(jìn)行隨意組合,如用戶操作選擇,條件判斷,關(guān)鍵字抓取,輸出內(nèi)容重定向,用戶提示等都能進(jìn)行編寫。通過|find/v〃Errors判斷執(zhí)行失敗后,截取下來的Error, png圖片、日志文件,可供開發(fā)人員參考故障起因,以及測試步驟的結(jié)果文件。測試人員只需要最后瀏覽結(jié)果文件夾即可完成結(jié)果查看,自動化率高,簡便快捷。
[0129]本發(fā)明使用批處理腳本結(jié)合uiautomator工具的使用,能夠形成多種組合和附加功能實(shí)現(xiàn),其形式不限于本申請文件公開的jar包和各種批處理測試命令,還可以進(jìn)行各種變換和結(jié)合,以靈活拓展更多的功能。
[0130]本發(fā)明可以應(yīng)用于安卓手機(jī),安卓平板電腦,以及類似的執(zhí)行安卓系統(tǒng)的設(shè)備。
[0131]本發(fā)明具有以下優(yōu)點(diǎn):
[0132]I)、簡便靈活,結(jié)合uiautomator測試方法能發(fā)揮更強(qiáng)大的功能,并適用于任何形式的安卓設(shè)備;
[0133]2)、易于編寫和修改,操作性強(qiáng),是一種高效簡單的腳本組合測試方法;
[0134]3)、和目前的測試方法相比,具有很強(qiáng)的自用性和控制性,功能得到擴(kuò)展,能夠自動判斷錯誤、自動抓取圖片和日志文件,以及當(dāng)前測試進(jìn)度,滿足各類測試用例的需求;
[0135]4)、能更人性化的操作設(shè)置,擴(kuò)展出用戶交互選擇界面,并能在出現(xiàn)異常時(shí)使用音樂和文字提示使用者進(jìn)行處理。
[0136]以上所述僅為本發(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)。
【權(quán)利要求】
1.一種用于安卓設(shè)備的自動化測試方法,其特征在于,包括以下步驟: 步驟1,提供一運(yùn)行于安卓設(shè)備的測試程序,使所述測試程序輸出測試錯誤信息,并提供一運(yùn)行于計(jì)算機(jī)端的批處理腳本,用以控制所述測試程序運(yùn)行,并采集所述測試錯誤信息; 步驟2,連接所述安卓設(shè)備至所述計(jì)算機(jī)端; 步驟3,運(yùn)行所述批處理腳本以復(fù)制所述測試程序至所述安卓設(shè)備,并控制所述測試程序于所述安卓設(shè)備上運(yùn)行; 步驟4,所述批處理腳本采集所述測試程序于運(yùn)行過程中輸出的所述測試錯誤信息。
2.根據(jù)權(quán)利要求1所述的用于安卓設(shè)備的自動化測試方法,其特征在于,所述步驟2中所述安卓設(shè)備通過USB接口連接至所述計(jì)算機(jī)端,并開啟所述安卓設(shè)備的USB調(diào)試選項(xiàng)。
3.根據(jù)權(quán)利要求1所述的用于安卓設(shè)備的自動化測試方法,其特征在于,所述步驟3中,于所述安卓設(shè)備與所述計(jì)算機(jī)端連接成功后,通過執(zhí)行一嵌入所述批處理腳本的安卓指令開啟所述安卓設(shè)備的測試權(quán)限。
4.根據(jù)權(quán)利要求1所述的用于安卓設(shè)備的自動化測試方法,其特征在于,所述測試程序采用uiautomater工具編制而成;所述批處理腳本采用基于windows操作系統(tǒng)的批處理命令編制而成。
5.根據(jù)權(quán)利要求1所述的用于安卓設(shè)備的自動化測試方法,其特征在于,步驟3中,所述批處理腳本的測試步驟如下: 步驟31:判斷是否有安卓設(shè)備連接至所述計(jì)算機(jī)端及連接是否正常,如果連接不正常,輸出提示信息并重復(fù)步驟31 ; 步驟32,于所述計(jì)算機(jī)上設(shè)置用以保存測試結(jié)果的預(yù)定目錄以及于所述預(yù)定目錄中設(shè)置用以保存測試結(jié)果的結(jié)果文件,并于所述結(jié)果文件中記錄開始測試的時(shí)間; 步驟33,于所述安卓設(shè)備上建立預(yù)定路徑,復(fù)制所述測試程序至所述預(yù)定路徑中; 步驟34,控制所述測試程序于所述安卓設(shè)備上運(yùn)行。
6.根據(jù)權(quán)利要求1所述的用于安卓設(shè)備的自動化測試方法,其特征在于,所述步驟4中,所述批處理腳本采集到所述測試錯誤信息時(shí)包括以下步驟: 步驟41,控制所述安卓設(shè)備截取屏幕圖像; 步驟42,控制所述安卓設(shè)備將截取到的所述屏幕圖像儲存至所述安卓設(shè)備上的所述預(yù)定路徑中; 步驟43,控制所述安卓設(shè)備將所述屏幕圖像傳送至所述計(jì)算機(jī)端的所述預(yù)定目錄中; 步驟44,控制所述安卓設(shè)備將測試錯誤信息寫入所述計(jì)算機(jī)端的所述預(yù)定目錄的日志文件中; 步驟45,于所述計(jì)算機(jī)端輸出測試錯誤提示。
7.根據(jù)權(quán)利要求1所述的用于安卓設(shè)備的自動化測試方法,其特征在于,步驟4中,如所述測試程序運(yùn)行結(jié)束,所述批處理腳本未采集到所述測試錯誤信息,則于所述計(jì)算機(jī)端輸出測試成功的提示,并結(jié)束所述批處理腳本運(yùn)行。
8.根據(jù)權(quán)利要求7所述的用于安卓設(shè)備的自動化測試方法,其特征在于,測試成功的提示包括: 于所述計(jì)算機(jī)端的屏幕上顯示測試成功的提示信息,和/或 播放預(yù)定的表示測試成功的音頻文件。
9.根據(jù)權(quán)利要求6所述的用于安卓設(shè)備的自動化測試方法,其特征在于,步驟45中,于所述計(jì)算機(jī)端輸出測試錯誤提示包括: 于所述計(jì)算機(jī)端的屏幕上顯示測試錯誤提示信息,和/或 播放預(yù)定的表示測試錯誤的音頻文件。
10.根據(jù)權(quán)利要求1-9中任一所述的用于安卓設(shè)備的自動化測試方法,其特征在于,所述測試程序中包括對應(yīng)不同測試功能的測試實(shí)例,每個(gè)所述測試實(shí)例包含用以輸出測試錯誤信息的指令。
【文檔編號】G06F11/36GK104331363SQ201410554924
【公開日】2015年2月4日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】韓繼梁 申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司