本發(fā)明的實施方式涉及軟件測試技術(shù)領(lǐng)域,更具體地,本發(fā)明的實施方式涉及用于設(shè)備的用戶界面異常測試的方法、裝置和計算機可讀存儲介質(zhì)。
背景技術(shù):
本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認(rèn)是現(xiàn)有技術(shù)。
安卓碎片化現(xiàn)象一直是研發(fā)團(tuán)隊的心頭痛,品牌眾多以及系統(tǒng)版本的不同,給安卓應(yīng)用引入了兼容性問題,例如引起崩潰、功能缺陷、用戶界面異常等諸多問題。其中用戶界面異常問題一直以來都是難以有效測試的痛點。
常見的用戶界面異常問題有控件缺失、控件變形、控件位移、控件重疊、控件內(nèi)容錯誤等等。
目前,已經(jīng)出現(xiàn)一些用戶界面異常測試方案主要是將被測設(shè)備的截圖與基準(zhǔn)圖片做簡單對比。例如指定基準(zhǔn)圖片以及對比圖,通過人工在基準(zhǔn)圖片上標(biāo)記需要測試的圖像區(qū)域,并在在基準(zhǔn)圖片上獲取對應(yīng)的坐標(biāo)位置,同時在對比圖上摳出該坐標(biāo)區(qū)域的圖片進(jìn)行對比,若有差異則判定為用戶界面異常。
技術(shù)實現(xiàn)要素:
但是,采用現(xiàn)有技術(shù)中的方案進(jìn)行用戶界面異常測試,一方面,不同的手機品牌型號,會出現(xiàn)比如gpu不同、系統(tǒng)字體不同、或者同一頁面上含有不同的個性推薦圖等區(qū)別,這將可能會導(dǎo)致即使在屏幕分辨率一致而品牌型號不完全一樣的情況下,在用戶界面異常測試時因為上述原因而顯示用戶界面異常;另一方面,由于應(yīng)用的界面并非一成不變的,比如有些應(yīng)用會有相應(yīng)的推薦頁面,這些內(nèi)容是經(jīng)常處于動態(tài)變換狀態(tài),因而進(jìn)行用戶界面異常測試時可能會因此出現(xiàn)誤判。
為此,非常需要一種改進(jìn)的用于設(shè)備的用戶界面異常測試的方法、裝置和計算機可讀存儲介質(zhì),以提高用戶界面異常測試的準(zhǔn)確性和效率。
在本上下文中,本發(fā)明的實施方式期望提供一種用于設(shè)備的用戶界面異常測試的方法、裝置和計算機可讀存儲介質(zhì)。
在本發(fā)明實施方式的第一方面中,提供了一種用于設(shè)備的用戶界面異常測試的方法,包括:獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片;將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片;將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,以確定所述目標(biāo)圖片是否有用戶界面異常。
在本發(fā)明的一個實施例中,獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片包括:對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏,在隱藏之后獲取截屏圖像作為所述基準(zhǔn)圖片。
在本發(fā)明的另一個實施例中,在對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏之前還包括:獲取多個用戶界面的截圖以作為多個基準(zhǔn)截圖,對所述多個基準(zhǔn)截圖進(jìn)行比對以對有變化的控件進(jìn)行匯總,根據(jù)匯總結(jié)果確定所述指定控件。
在本發(fā)明的又一個實施例中,將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片包括:
通過自動化測試腳本中的第一代碼塊將所述目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片。
在本發(fā)明的又一個實施例中,將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片之前還包括:通過所述自動化測試腳本中的第二代碼塊對被測應(yīng)用中所述需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
在本發(fā)明的又一個實施例中,所述自動化測試腳本基于instrumentation的測試框架。
在本發(fā)明的又一個實施例中,所述第一代碼塊用于通過instrumentation獲取所述目標(biāo)圖片中包含的控件級別的元素,從所述元素中將所述指定控件設(shè)置為不可見。
在本發(fā)明的又一個實施例中,通過所述自動化測試腳本中的第二代碼塊對被測應(yīng)用中所述需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片包括:將基于instrumentation的測試框架和被測應(yīng)用運行在同一進(jìn)程,對所述被測應(yīng)用中需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
在本發(fā)明的又一個實施例中,所述指定控件包括所述用戶界面異常測試不關(guān)注的控件區(qū)域和/或指定類型的控件。
在本發(fā)明的又一個實施例中,所述用戶界面異常測試不關(guān)注的控件區(qū)域包括狀態(tài)欄、電量圖標(biāo)、以及網(wǎng)絡(luò)圖標(biāo)中的至少一種。
在本發(fā)明的又一個實施例中,所述指定類型的控件包括文字、gif、輪播圖片、以及視頻中的至少一種。
在本發(fā)明的又一個實施例中,若所述指定類型的控件包括文字,則將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片包括:將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中的文字用占位符代替。
在本發(fā)明實施方式的第二方面,提供了一種用于設(shè)備的用戶界面異常測試的裝置,該裝置包括:
基準(zhǔn)圖片獲取單元,用于獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片;
控件隱藏單元,用于將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片;
比對測試單元,用于將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,以確定所述目標(biāo)圖片是否有用戶界面異常。
在本發(fā)明的又一個實施例中,所述基準(zhǔn)圖片獲取單元用于:對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏,在隱藏之后獲取截屏圖像作為所述基準(zhǔn)圖片。
在本發(fā)明的又一個實施例中,所述裝置還包括指定控件確定單元,用于在對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏之前,獲取多個用戶界面的截圖以作為多個基準(zhǔn)截圖,對所述多個基準(zhǔn)截圖進(jìn)行比對以對有變化的控件進(jìn)行匯總,根據(jù)匯總結(jié)果確定所述指定控件。
在本發(fā)明的又一個實施例中,所述控件隱藏單元用于:
通過自動化測試腳本中的第一代碼塊將所述目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片。
在本發(fā)明的又一個實施例中,所述裝置還包括目標(biāo)圖片獲取單元,用于在將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片之前,通過所述自動化測試腳本中的第二代碼塊對被測應(yīng)用中所述需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
在本發(fā)明的又一個實施例中,所述自動化測試腳本基于instrumentation的測試框架。
在本發(fā)明的又一個實施例中,所述第一代碼塊用于通過instrumentation獲取所述目標(biāo)圖片中包含的控件級別的元素,從所述元素中將所述指定控件設(shè)置為不可見。
在本發(fā)明的又一個實施例中,所述目標(biāo)圖片獲取單元用于:將基于instrumentation的測試框架和被測應(yīng)用運行在同一進(jìn)程,對所述被測應(yīng)用中需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
在本發(fā)明的又一個實施例中,所述指定控件包括所述用戶界面異常測試不關(guān)注的控件區(qū)域和/或指定類型的控件。
在本發(fā)明的又一個實施例中,所述用戶界面異常測試不關(guān)注的控件區(qū)域包括狀態(tài)欄、電量圖標(biāo)、以及網(wǎng)絡(luò)圖標(biāo)中的至少一種。
在本發(fā)明的又一個實施例中,所述指定類型的控件包括文字、gif、輪播圖片、以及視頻中的至少一種。
在本發(fā)明的又一個實施例中,若所述指定類型的控件包括文字,則所述目標(biāo)圖片獲取單元用于:將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中的文字用占位符代替。
在本發(fā)明實施方式的第三方面,提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該程序被處理器執(zhí)行時實現(xiàn)如第一方面任一項所述的方法。
根據(jù)本發(fā)明實施方式的用于設(shè)備的用戶界面異常測試的方法和用于設(shè)備的用戶界面異常測試的裝置,可以避免因為不關(guān)注的控件區(qū)域和/或指定類型的控件存在差異而認(rèn)定存在用戶界面異常,能避免因為所述指定控件導(dǎo)致誤判,能提高用戶界面異常測試的準(zhǔn)確性和效率,為用戶帶來了更好的體驗。
附圖說明
通過參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實施方式的上述以及其他目的、特征和優(yōu)點將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實施方式,其中:
圖1示意性示出根據(jù)本發(fā)明實施方式的用于設(shè)備的用戶界面異常測試的方法的流程圖;
圖2示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的指定控件獲取方法的示意圖;
圖3示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的基準(zhǔn)原始截圖;
圖4示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的目標(biāo)原始圖片;
圖5示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的隱藏文字后的基準(zhǔn)截圖;
圖6示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的隱藏文字后的目標(biāo)圖片;
圖7示意性地示出了根據(jù)本發(fā)明實施方式的用于設(shè)備的用戶界面異常測試的裝置的框圖。
在附圖中,相同或?qū)?yīng)的標(biāo)號表示相同或?qū)?yīng)的部分。
具體實施方式
下面將參考若干示例性實施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
本領(lǐng)域技術(shù)技術(shù)人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
根據(jù)本發(fā)明的實施方式,提出了一種用于設(shè)備的用戶界面異常測試的方法和設(shè)備。
在本文中,需要理解的是,所涉及的術(shù)語ui表示設(shè)備的用戶界面。instrumentation是一種測試框架此外,附圖中的任何元素數(shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
下面參考本發(fā)明的若干代表性實施方式,詳細(xì)闡釋本發(fā)明的原理和精神。
發(fā)明概述
本發(fā)明人發(fā)現(xiàn),在對設(shè)備的用戶界面進(jìn)行異常測試時,通常會因為無關(guān)緊要的區(qū)域(例如狀態(tài)欄、電量圖標(biāo)、網(wǎng)絡(luò)信號圖標(biāo)等)、動態(tài)的推薦頁面、文字等與標(biāo)準(zhǔn)圖片存在差異而出現(xiàn)誤判,測試時準(zhǔn)確性不高,若通過手動處理又嚴(yán)重影響了測試效率。
本公開的技術(shù)方案通過將目標(biāo)圖片隱藏指定控件之后再與基準(zhǔn)圖片進(jìn)行比對測試,防止因為所述指定控件存在差異而認(rèn)定存在用戶界面異常,能避免因為不關(guān)注的控件區(qū)域和/或指定類型的控件存在差異而導(dǎo)致誤判,能提高用戶界面異常測試的準(zhǔn)確性和效率。
在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實施方式。
應(yīng)用場景總覽
場景一和二是可應(yīng)用于其中的兩個示例性應(yīng)用場景,易于理解,這里描述的應(yīng)用場景僅是示例性的,而不是對本發(fā)明的限制。
場景一、有些應(yīng)用會有相應(yīng)的推薦頁面,這些內(nèi)容是經(jīng)常處于動態(tài)變換的,如果僅僅是將兩張圖片進(jìn)行整張圖像的對比,則會識別出很多并非用戶界面,ui上的問題,導(dǎo)致誤判。
場景二、不同的手機品牌型號,會出現(xiàn)比如gpu不同、系統(tǒng)字體不同、或者同一頁面上含有不同的個性推薦圖等區(qū)別,這將可能會導(dǎo)致即使在屏幕分辨率一致而品牌型號不完全一樣的情況下,在用戶界面異常測試時因為上述原因而顯示用戶界面異常。
示例性方法
下面結(jié)合圖場景一和二的應(yīng)用場景,參考圖1來描述根據(jù)本發(fā)明示例性實施方式的用于設(shè)備的用戶界面異常測試的方法。需要注意的是,上述應(yīng)用場景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實施方式在此方面不受任何限制。相反,本發(fā)明的實施方式可以應(yīng)用于適用的任何場景。
圖1示意性示出根據(jù)本發(fā)明實施方式的用于設(shè)備的用戶界面異常測試的方法的流程圖。該方法可應(yīng)用于前面描述的應(yīng)用場景并在終端中加載的用于設(shè)備的用戶界面異常測試的裝置執(zhí)行,但該方法的應(yīng)用場景不限于此。此處所稱終端,可以是手機、平板電腦或其他智能終端,也可以是筆記本電腦或其他計算設(shè)備,本發(fā)明對此沒有限制。
如圖1所示,在步驟s110中,獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片。
所述基準(zhǔn)圖片用于判斷需要進(jìn)行用戶界面檢測的目標(biāo)圖片是否存在用戶界面異常,因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)明確的是,該基準(zhǔn)圖片本身應(yīng)當(dāng)不存在用戶界面異常。
至于所述基準(zhǔn)圖片的獲取方法,本實施例對此不作限定,例如可以直接提供,也可以對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏,在隱藏之后獲取截屏圖像作為所述基準(zhǔn)圖片。
需要說明的是,所述基準(zhǔn)設(shè)備是指能直接或間接獲得所述基準(zhǔn)圖片的設(shè)備。
在步驟s120中,將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片。
例如,所述指定控件可包括所述用戶界面異常測試不關(guān)注的控件區(qū)域、和/或指定類型的控件等。例如包括但不限于狀態(tài)欄、電量圖標(biāo)、以及網(wǎng)絡(luò)圖標(biāo)等所述用戶界面異常測試不關(guān)注的控件區(qū)域。又如還可包括但不限于文字、gif、輪播圖片、以及視頻等指定類型的控件。
需要說明的是,若所述指定類型的控件包括文字,屏蔽文字可以保證在每臺手機上字體的細(xì)微差異,如果僅僅是單純剔除文字,則會影響頁面的布局,因此,在將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片時,可通過將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中的文字用占位符代替,以還原原始布局。
其中,所述指定控件可以是直接指定,也可以是經(jīng)過計算得到,例如可通過獲取多個用戶界面的截圖以作為多個基準(zhǔn)截圖,對所述多個基準(zhǔn)截圖進(jìn)行比對以對有變化的控件進(jìn)行匯總,根據(jù)匯總結(jié)果確定所述指定控件得到。
圖2示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的指定控件獲取方法的示意圖,如圖2所示,可通過n個安卓設(shè)備獲取多個用戶界面的截圖,以作為多個基準(zhǔn)截圖??蓪λ龆鄠€基準(zhǔn)截圖進(jìn)行比對以對有變化的控件進(jìn)行匯總,根據(jù)匯總結(jié)果確定所述指定控件,還可分別將多個基準(zhǔn)截圖中已知的需要隱藏的指定控件隱藏后進(jìn)行比對再對有變化的區(qū)域進(jìn)行匯總。
在另一實施例中,通過對同一基準(zhǔn)設(shè)備按照時間順序獲取多個截圖,比較這些截圖獲取動態(tài)變化的內(nèi)容或控件,并將這些動態(tài)變化的內(nèi)容或控件作為指定控件。
在另一些實施例中,可直接通過獲取常用控件的名稱如任務(wù)欄,電量顯示等模塊的名稱來確定指定控件,并進(jìn)而隱藏?zé)o需進(jìn)行對比的該指定控件。
圖3示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的基準(zhǔn)原始截圖,可將該原始截圖作為基準(zhǔn)圖片用于之后和目標(biāo)圖進(jìn)行對比。
圖4示意性地示出了根據(jù)本發(fā)明一實施例的一示例所述的從其他被測設(shè)備上截取的目標(biāo)截圖,用于和所述基準(zhǔn)圖進(jìn)行圖像對比,并記錄圖像上有差異的區(qū)域。
進(jìn)一步地,為了在圖像對比時忽略指定控件的對比,減少對測試人員的干擾,可對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件(例如文字)進(jìn)行隱藏,在隱藏之后獲取截屏圖像作為所述基準(zhǔn)圖片。
相同的,對被測設(shè)備需要進(jìn)行用戶界面檢測的目標(biāo)圖片中相同的指定控件進(jìn)行隱藏,在隱藏之后獲取截屏圖像作為第二目標(biāo)圖片。
例如,對圖3所示的原始基準(zhǔn)圖片中的文字進(jìn)行隱藏得到圖5所示的基準(zhǔn)圖片,對圖4所示的目標(biāo)圖片中的文字進(jìn)行隱藏得到圖6的第二目標(biāo)圖片,將圖6的第二目標(biāo)圖片與圖5的基準(zhǔn)圖片進(jìn)行比對,以更快更有效的鎖定界面上真正有問題的ui異常,以幫助定位真實的ui問題,以獲得更佳的效果以及更高的效率。根據(jù)對比可以得到,圖6的圖案部分與圖5的圖案部分不一致,由此確定該部分為有異常的部分,同時在圖4所示的截得的目標(biāo)原始圖中加于標(biāo)記,如采用圖4所示的框41加于標(biāo)記,方便測試人員發(fā)現(xiàn)異常。
在一個實施例中,系統(tǒng)中預(yù)先存儲了隱藏特定控件后的基準(zhǔn)圖片,根據(jù)測試需要從數(shù)據(jù)庫中調(diào)取特定基準(zhǔn)圖片進(jìn)行對比。
在另一個實施例中,可根據(jù)測試需要實時隱藏基準(zhǔn)設(shè)備中的相應(yīng)控件后截取基準(zhǔn)圖片進(jìn)行對比。
在又一個實施例中,基準(zhǔn)圖片無需在基準(zhǔn)設(shè)備上截取并隱藏指定控件而獲得,可直接將隱藏了相應(yīng)指定控件的原始用戶界面設(shè)計圖片作為基準(zhǔn)圖片。
在需要進(jìn)行ui對比的自動化測試腳本中加入對原始界面截圖的代碼塊,以該用于設(shè)備的用戶界面異常測試的測試框架為robotium框架為例,例如可以使用takescreenshot(name)方法實現(xiàn)截圖操作,截圖文件會存儲于設(shè)備的/sdcard/robotium-screenshots目錄下。
待原始界面截圖完成后,加入隱藏特定內(nèi)容的代碼塊。具體實現(xiàn)可使用instrumentation獲取到控件級別的元素,并設(shè)置需要隱藏控件的可見屬性為invisible(不可見),之后再進(jìn)行二次截圖并存儲于特定目錄下,如sdcard的特定目錄下。。
由于將忽略的控件隱藏,已經(jīng)改變了應(yīng)用的ui界面,為了不影響應(yīng)用執(zhí)行下一步的功能,還可再將控件的可見屬性還原。
在步驟s130中,將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,以確定所述目標(biāo)圖片是否有用戶界面異常。
本步驟用于將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,涉及到的比對測試方法可采用現(xiàn)有技術(shù)中常規(guī)的ui比對方法,具體采用何種方法本實施例對此不作限定。
上述方法通過將目標(biāo)圖片隱藏指定控件之后再與基準(zhǔn)圖片進(jìn)行比對測試,防止因為所述指定控件存在差異而認(rèn)定存在用戶界面異常,能避免因為不關(guān)注的控件區(qū)域和/或指定類型的控件存在差異而導(dǎo)致誤判,能提高用戶界面異常測試的準(zhǔn)確性和效率。
為了進(jìn)一步提高測試效率,將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片時,可具體通過自動化測試腳本中的代碼塊將所述目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片。
同樣地,為了進(jìn)一步提高測試效率,可將需要進(jìn)行用戶界面檢測的目標(biāo)圖片也通過所述自動化測試腳本中的代碼塊對被測應(yīng)用中所述需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到。
為了描述時進(jìn)行區(qū)別,將所述目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片的代碼塊稱為第一代碼塊,將對被測應(yīng)用中所述需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述需要進(jìn)行用戶界面檢測的目標(biāo)圖片的代碼塊稱為第二代碼塊。以所述自動化測試腳本基于instrumentation的測試框架為例,所述第一代碼塊可用于通過instrumentation獲取所述目標(biāo)圖片中包含的控件級別的元素,從所述元素中將所述指定控件設(shè)置為不可見;所述第二代碼塊可用于將所述基于instrumentation的測試框架和被測應(yīng)用運行在同一進(jìn)程,對所述被測應(yīng)用中需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
上述技術(shù)方案通過將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片,將所述第二目標(biāo)圖片與基準(zhǔn)圖片進(jìn)行比對測試,在進(jìn)行用戶界面異常測試時,防止因為所述指定控件存在差異而認(rèn)定存在用戶界面異常,能避免因為所述指定控件導(dǎo)致誤判,能提高用戶界面異常測試的準(zhǔn)確性和效率。
示例性設(shè)備
在介紹了本發(fā)明示例性實施方式的方法之后,接下來,參考圖7對本發(fā)明示例性實施方式的、用于設(shè)備的用戶界面異常測試的裝置的框圖。裝置700可實現(xiàn)前面描述的相應(yīng)方法。下面描述裝置700,與前述方法對應(yīng)的部分不再贅述。
如圖7所示,裝置700包括基準(zhǔn)圖片獲取單元710、控件隱藏單元720、以及比對測試單元730。
基準(zhǔn)圖片獲取單元710可用于獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片。
控件隱藏單元720可用于將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片。
比對測試單元730可用于將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,以確定所述目標(biāo)圖片是否有用戶界面異常。
根據(jù)一些實施例,所述基準(zhǔn)圖片獲取單元710可用于對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏,在隱藏之后獲取截屏圖像作為所述基準(zhǔn)圖片。
根據(jù)一些實施例,所述裝置還可包括指定控件確定單元(圖7中未示出),該指定控件確定單元可用于在對基準(zhǔn)設(shè)備的用戶界面中包含的所述指定控件進(jìn)行隱藏之前,獲取多個用戶界面的截圖以作為多個基準(zhǔn)截圖,對所述多個基準(zhǔn)截圖進(jìn)行比對以對有變化的控件進(jìn)行匯總,根據(jù)匯總結(jié)果確定所述指定控件。
根據(jù)一些實施例,所述控件隱藏單元720可用于通過自動化測試腳本中的第一代碼塊將所述目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片。
根據(jù)一些實施例,所述裝置還可包括目標(biāo)圖片獲取單元(圖7中未示出),該目標(biāo)圖片獲取單元可用于在將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片之前,通過所述自動化測試腳本中的第二代碼塊對被測應(yīng)用中所述需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
根據(jù)一些實施例,所述自動化測試腳本基于instrumentation的測試框架。
根據(jù)一些實施例,所述第一代碼塊用于通過instrumentation獲取所述目標(biāo)圖片中包含的控件級別的元素,從所述元素中將所述指定控件設(shè)置為不可見。
根據(jù)一些實施例,所述目標(biāo)圖片獲取單元可用于將基于instrumentation的測試框架和被測應(yīng)用運行在同一進(jìn)程,對所述被測應(yīng)用中需要進(jìn)行用戶界面檢測的界面進(jìn)行截圖得到所述目標(biāo)圖片。
根據(jù)一些實施例,所述指定控件包括所述用戶界面異常測試不關(guān)注的控件區(qū)域和/或指定類型的控件。
根據(jù)一些實施例,所述用戶界面異常測試不關(guān)注的控件區(qū)域包括狀態(tài)欄、電量圖標(biāo)、以及網(wǎng)絡(luò)圖標(biāo)中的至少一種。
根據(jù)一些實施例,所述指定類型的控件包括文字、gif、輪播圖片、以及視頻中的至少一種。
根據(jù)一些實施例,若所述指定類型的控件包括文字,則所述目標(biāo)圖片獲取單元用于:將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中的文字用占位符代替。
上述技術(shù)方案通過將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片,將所述第二目標(biāo)圖片與基準(zhǔn)圖片進(jìn)行比對測試,在進(jìn)行用戶界面異常測試時,防止因為所述指定控件存在差異而認(rèn)定存在用戶界面異常,能避免因為所述指定控件導(dǎo)致誤判,能提高用戶界面異常測試的準(zhǔn)確性和效率,能提升用戶體驗。
示例性設(shè)備
在介紹了本發(fā)明示例性實施方式的方法和裝置之后,接下來,介紹根據(jù)本發(fā)明的另一示例性實施方式的用于設(shè)備的用戶界面異常測試的裝置。
所屬技術(shù)領(lǐng)域的技術(shù)人員能夠理解,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。
在一些可能的實施方式中,根據(jù)本發(fā)明的用于設(shè)備的用戶界面異常測試的裝置可以至少包括至少一個處理單元、以及至少一個存儲單元。其中,所述存儲單元存儲有程序代碼,當(dāng)所述程序代碼被所述處理單元執(zhí)行時,使得所述處理單元執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的用于設(shè)備的用戶界面異常測試的步驟。例如,所述處理單元可以執(zhí)行如圖1中所示的步驟s110:獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片;步驟s120,將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片;步驟s130將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,以確定所述目標(biāo)圖片是否有用戶界面異常。
示例性程序產(chǎn)品
在一些可能的實施方式中,本發(fā)明的各個方面還可以實現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當(dāng)所述程序產(chǎn)品在終端設(shè)備上運行時,所述程序代碼用于使所述終端設(shè)備執(zhí)行本說明書上述“示例性方法”部分中描述的根據(jù)本發(fā)明各種示例性實施方式的用于設(shè)備的用戶界面異常測試的方法中的步驟,例如,所述終端設(shè)備可以執(zhí)行如圖1中所示的步驟s110:獲取用于進(jìn)行用戶界面檢測的基準(zhǔn)圖片;步驟s120,將需要進(jìn)行用戶界面檢測的目標(biāo)圖片中指定控件進(jìn)行隱藏得到第二目標(biāo)圖片;步驟s130將所述第二目標(biāo)圖片與所述基準(zhǔn)圖片進(jìn)行比對測試,以確定所述目標(biāo)圖片是否有用戶界面異常。
所述程序產(chǎn)品可以采用一個或多個可讀介質(zhì)的任意組合??勺x介質(zhì)可以是可讀信號介質(zhì)或者可讀存儲介質(zhì)。可讀存儲介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合??勺x存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。
可讀信號介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。可讀信號介質(zhì)還可以是可讀存儲介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言—諸如java、c++等,還包括常規(guī)的過程式程序設(shè)計語言—諸如“c”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算設(shè)備上執(zhí)行、部分在用戶計算設(shè)備上部分在遠(yuǎn)程計算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算設(shè)備的情形中,遠(yuǎn)程計算設(shè)備可以通過任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)—連接到用戶計算設(shè)備。
應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了用于設(shè)備的用戶界面異常測試的裝置的若干模塊或單元,但是這種劃分僅僅是示例性的并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多模塊或單元的特征和功能可以在一個模塊或單元中具體化。反之,上文描述的一個模塊或單元的特征和功能可以進(jìn)一步劃分為由多個模塊或單元來具體化。
此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。
雖然已經(jīng)參考若干具體實施方式描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開的具體實施方式,對各方面的劃分也不意味著這些方面中的特征不能組合以進(jìn)行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。