本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種頁面流暢度的測試方法和裝置。
背景技術(shù):
目前,頁面的流暢度成為衡量移動終端系統(tǒng)、或者移動終端應(yīng)用(如瀏覽器)好壞的重要指標。頁面的流暢度越來越受到用戶和技術(shù)人員的重視。
目前,移動終端頁面的流暢度測試方法主要包括:通過數(shù)據(jù)線將移動終端連接至PC(個人電腦),在移動終端上使用指定瀏覽器打開被測頁面,在PC上使用指定工具遠程調(diào)試頁面,在時間線(TimeLine)中獲取反應(yīng)頁面流暢度的參數(shù)。
由于目前頁面流暢度測試方法需要遠程調(diào)試頁面,對頁面本身性能有一定影響,因此,會導致頁面流暢度的測試不準確。另外,還由于目前頁面流暢度測試方法測試方式需要人工介入,降低了頁面流暢度的測試效率。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種頁面流暢度的測試方法和裝置,可以提高頁面流暢度測試的準確性和效率。
本發(fā)明實施例提供一種頁面流暢度的測試方法,包括:
加載待測試頁面的頁面數(shù)據(jù),所述頁面數(shù)據(jù)包括多個圖像幀;
確定當前待繪制的目標圖像幀,并為所述目標圖像幀注冊對應(yīng)的回調(diào)函數(shù);
在開始對所述目標圖像幀進行繪制時,調(diào)用所述回調(diào)函數(shù);
通過所述回調(diào)函數(shù)記錄所述目標圖像幀的起始繪制時間;
根據(jù)所述目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù),所述歷史圖像幀為之前已經(jīng)繪制的所述頁面數(shù)據(jù)中的圖像幀。
相應(yīng)的,本發(fā)明實施例還提供一種頁面流暢度的測試裝置,包括:
加載單元,用于加載待測試頁面的頁面數(shù)據(jù),所述頁面數(shù)據(jù)包括多個圖像幀;
注冊單元,用于確定當前待繪制的目標圖像幀,并為所述目標圖像幀注冊對應(yīng)的回調(diào)函數(shù);
調(diào)用單元,用于在開始對所述目標圖像幀進行繪制時,調(diào)用所述回調(diào)函數(shù);
記錄單元,用于通過所述回調(diào)函數(shù)記錄所述目標圖像幀的起始繪制時間;
參數(shù)獲取單元,用于根據(jù)所述目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù),所述歷史圖像幀為之前已經(jīng)繪制的所述頁面數(shù)據(jù)中的圖像幀。
本發(fā)明實施例采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的目標圖像幀,并為該目標圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該目標圖像幀的起始繪制時間,根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù);由于該方案無需對頁面進行遠程調(diào)試,排除了遠程調(diào)試對頁面性能的干擾,因此可以提高頁面流暢度測試的準確性,并且由于該方案無需人工介入即可實現(xiàn)對頁面流暢度的測試,因此,還可以提高頁面流暢度測試的速度和效率。
附圖說明
為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實施例提供的頁面流暢度的測試方法的流程圖;
圖2是本發(fā)明實施例提供的頁面流暢度的測試方法的另一流程圖;
圖3是本發(fā)明實施例提供的頁面流暢度的測試方法的又一流程圖;
圖4a是本發(fā)明實施例提供的頁面流暢度的測試裝置的結(jié)構(gòu)示意圖;
圖4b是本發(fā)明實施例提供的頁面流暢度的測試裝置的另一結(jié)構(gòu)示意圖;
圖5是本發(fā)明實施例提供的終端的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供一種頁面流暢度的測試方法和裝置。以下將分別進行詳細說明。
實施例一、
本實施例將從頁面流暢度的測試裝置的角度進行描述,該頁面流暢度的測試裝置具體可以集成在終端中,該終端可以為手機、平板電腦等終端設(shè)備。
一種頁面流暢度的測試方法,包括:采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的目標圖像幀,并為該目標圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該圖像幀的起始繪制時間,根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù)。
如圖1所示,該頁面流暢度的測試方法的流程圖具體可以如下:
100、加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀。
比如,可以通過瀏覽器加載待測試頁面的頁面數(shù)據(jù)。該圖像幀為頁面數(shù)據(jù)中的圖像幀數(shù)據(jù),這里簡稱圖像幀。在需要展示被測試頁面時,即可以通過繪制模塊對圖像幀數(shù)據(jù)進行繪制,并展示繪制的圖像。
其中,被測試頁面的類型可以為多種,比如可以為HTML(HyperText Markup Language,超文本標記語言)頁面、H5(HTML5)頁面等等。
101、確定當前待繪制的目標圖像幀,并為該目標圖像幀注冊對應(yīng)的回調(diào)函數(shù)。
實際應(yīng)用中,本實施例可以按照一定的順序來確定當前待繪制的目標圖像幀,比如,在每個圖像幀設(shè)置了編號之后,可以按照編號從小到大的順序來確定當前待繪制的目標圖像幀。
本實施例中為圖像幀注冊對應(yīng)的回調(diào)函數(shù),通過系統(tǒng)函數(shù)為該圖像幀注冊對應(yīng)的回調(diào)函數(shù)(可記為callback)。比如可以通過window.requestAnimationFrame()注冊一個回調(diào)函數(shù)。
其中,window.requestAnimationFrame()是用來在當前幀繪制之前,通知瀏覽器調(diào)用一個指定的函數(shù)。window.requestAnimationFrame()的優(yōu)勢,在于充分利用顯示器的刷新機制,比較節(jié)省系統(tǒng)資源。顯示器有固定的刷新頻率60Hz,也就是說,每秒最多只能重繪60次,requestAnimationFrame的基本思想就是與這個刷新頻率保持同步,利用這個頻率進行幀重繪。
其中,回調(diào)函數(shù)可以為一個通過函數(shù)指針調(diào)用的函數(shù)。如果將函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當這個指針被用來調(diào)用其所指向的函數(shù)時,我們就說這是回調(diào)函數(shù)。
回調(diào)函數(shù)不是由該函數(shù)的實現(xiàn)方直接調(diào)用,而是在特定的事件或條件發(fā)生時由另外的一方調(diào)用的,用于對該事件或條件進行響應(yīng)。
102、在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù)。
103、通過該回調(diào)函數(shù)記錄該目標圖像幀的起始繪制時間。
比如,通過該回調(diào)函數(shù)記錄一個時間戳,該時間戳即為當前圖像幀的起始繪制時間。
本實施例中,如果每次開始都對圖像幀進行繪制時,即循環(huán)執(zhí)行步驟101-103,都會調(diào)用回調(diào)函數(shù)記錄圖像幀的起始繪制時間,那么在所有圖像幀繪制完畢后就可以得到一個時間戳序列:如T1、T2、……Ti……Tn,其中Ti表示圖像幀i的起始繪制時間。
104、根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù),該歷史圖像幀為之前已經(jīng)繪制的該頁面數(shù)據(jù)中的圖像幀。
本實施例中,歷史圖像幀為當前時刻之前頁面數(shù)據(jù)中已繪制的圖像幀,比如,頁面數(shù)據(jù)包括n幀,當前圖像幀為第i個圖像幀,假設(shè)從第1個圖像幀開始繪制,那么歷史圖像幀即為第i-1個圖像幀……第1個圖像幀的至少一個圖像幀。優(yōu)選地,該歷史圖像幀可以為與目標圖像幀相鄰的歷史圖像幀,如第i-1個圖像幀。
其中,頁面流暢度可以為頁面滑動流暢度等,該參數(shù)可以為衡量或者反映頁面滑動流暢度的指標。比如,反映頁面流暢度的參數(shù)可以包括幀率、掉幀數(shù)、幀率與標準幀率之間的幀率比值等等。
本實施例中,獲取反映頁面流暢度的參數(shù)的方式可以有多種,如下:
(1)、基于圖像幀的繪制時長(即繪制耗時)獲取反映頁面流暢度的參數(shù);
也即步驟“根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間”可以包括:
根據(jù)目標圖像幀與上一圖像幀的起始繪制時間,獲取上一圖像幀的繪制時長;
根據(jù)該繪制時長獲取反映頁面流暢度的參數(shù)。其中,上一圖像幀為上一次已繪制的圖像幀。比如,頁面數(shù)據(jù)包括:圖像幀1、圖像幀2……圖像幀n,從圖像幀1向圖像幀n繪制時;如果當前圖像幀為幀i時,那么上一圖像幀為幀i-1。
具體地,可以獲取當前圖像幀(即目標圖像幀)與上一圖像幀的起始繪制時間之差,該時間差為上一圖像幀的繪制時長。
比如,當前待繪制的目標圖像幀為幀i時,可以獲取幀i的起始繪制時間Ti,獲取幀i的上一圖像幀即幀i-1的起始繪制時間Ti-1,那么此時,幀i-1的繪制時長△Ti-(i-1)=Ti-Ti-1。
優(yōu)選地,可以根據(jù)圖像幀的繪制時長獲取圖像幀的幀率(FPS),即每秒繪制的幀數(shù),然后,根據(jù)該幀率獲取反映頁面流暢度的參數(shù)。
其中,可以通過以下公式來計算FPS:
FPS=1s/△t,△t為圖像幀的繪制時長。
比如,當幀i-1的繪制時長△Ti-(i-1)=Ti-Ti-1時,可以通過上面的公式得到:FPS=1s/△Ti-(i-1)。
實際應(yīng)用中,由于幀率(FPS)可以直接反映頁面流暢度(如頁面滑動流暢度),F(xiàn)PS越大即每秒幀數(shù)越多,則頁面越流暢,反之則越卡頓。此時,反映頁面流暢度的參數(shù)可以包括幀率,也即將該幀率直接作為獲取反映頁面流暢度的參數(shù)。
此外,還可以獲取幀率FPS與標準幀率FPS標準之間的幀率比例LF,以反映頁面流暢度。其中,標準幀率可以根據(jù)實際需求設(shè)定,如FPS標準=60hz等。也即步驟“根據(jù)該幀率獲取反映頁面流暢度的參數(shù)”可以包括:獲取該幀率與標識幀率之間的陣列比例,此時反映頁面流暢度的參數(shù)可以包括該幀率比例。
實際應(yīng)用中,反映頁面流暢度的參數(shù)可以包括幀率FPS、和/或幀率FPS與標準幀率FPS標準之間的幀率比例LF。具體地,參數(shù)選用可以根據(jù)實際需求設(shè)定。
優(yōu)選地,還可以根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù),并將該掉幀數(shù)也作為反映頁面流暢度的參數(shù)。
其中,圖像幀的標準繪制時長可以以一定的標準幀率FPS標準為參考來獲取,具體地,可以通過以下公式計算標準繪制時長:
T標準=1000ms/FPS標準;其中,T標準為圖像幀的標準繪制時長,即標準耗時。
比如,當FPS標準=60hz時,可以通過上述公式計算得到T標準=1000ms/60hz=16.6ms。該標準幀率FPS標準可以根據(jù)實際需求設(shè)定。本實施例中,掉幀數(shù)dropCount可以基于獲取的圖像幀的繪制時長與標識繪制時長得到。比如,可以通過以下公式得到:
掉幀數(shù)dropCount=△t/T標準;其中,T標準為圖像幀的標準繪制時長,△t為圖像幀的繪制時長。
比如,當T標準=16.6ms時,可以通過以下公式得到掉幀數(shù):
dropCount=△t/16.6ms。
本實施例的測試方法中,在得到掉幀數(shù)之后,可以直接將掉幀數(shù)作為反映頁面流暢度的參數(shù)。此外,為了更精確度地反映頁面流暢度,還可以獲取在一定時間段(如一分鐘)內(nèi)掉幀數(shù)dropCount出現(xiàn)的次數(shù),即一定時間段內(nèi)掉幀數(shù)dropCount對應(yīng)的掉幀率。此時,反映頁面流暢度參數(shù)可以包括在預(yù)設(shè)時間段內(nèi)掉幀數(shù)dropCount對應(yīng)的掉幀率。
比如,可以獲取在一段時間內(nèi)掉1幀、掉2幀、掉3幀等出現(xiàn)的次數(shù)。
實際應(yīng)用中,反映頁面流暢度的參數(shù)可以包括:掉幀數(shù)dropCount、和/或掉幀數(shù)dropCount對應(yīng)的掉幀率。
另外,在一些實施例中,在獲取每個圖像幀的繪制時長△Ti-(i-1)后,還可以通過計算其他性能指標衡量頁面流暢度,例如:每一幀繪制時長的方差、標準差等等。
此時,步驟“根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù)”,可以包括:
根據(jù)圖像幀的繪制時長和歷史圖像幀的繪制時長,獲取圖像幀繪制時長的方差和/或標準差。此時,反映頁面流暢度的參數(shù)還可以包括圖像幀繪制時長的方差和/或標準差。
比如,在經(jīng)過多次計算后可以得到每一圖像幀的繪制時長:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。,此時,便可以根據(jù)該時長序列計算方差S和/或S’標準差。
(2)、基于當前已繪制的圖像幀的幀數(shù)獲取反映頁面流暢度的參數(shù);
也即,步驟“,根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù)”可以包括:
獲取目標圖像幀的起始繪制時間、與起始圖像幀的起始繪制時間之間的時間差;
當該時間差大于或等于預(yù)設(shè)閾值時,根據(jù)當前已繪制圖像幀的累積幀數(shù),獲取反映頁面流暢度的參數(shù);
根據(jù)當前圖像幀更新該起始圖像幀。
其中,起始圖像幀為頁面數(shù)據(jù)中第一個被繪制的圖像幀,比如可以為待測試頁面的第一個圖像幀,即幀1,起始圖像幀可以根據(jù)實際需求設(shè)定,也可以設(shè)置為第二個圖像幀等;本實施例在獲取反映頁面流暢度的參數(shù)之后,還可以根據(jù)當前圖像幀更新該起始圖像幀。具體地,可以將當前圖像幀設(shè)置為起始圖像幀。
本實施例中,預(yù)設(shè)閾值可以根據(jù)實際需求設(shè)定,比如,預(yù)設(shè)閾值可以為1s,若時間差大于或等于1s,此時,當前已繪制圖像幀的累積幀數(shù)即為圖像幀的幀率FPS。實際應(yīng)用中,由于幀率(FPS)可以直接反映頁面流暢度(如頁面滑動流暢度),F(xiàn)PS越大即每秒幀數(shù)越多,則頁面越流暢,反之則越卡頓。此時,參數(shù)可以包括幀率,也即步驟“根據(jù)當前已繪制圖像幀的累積幀數(shù),獲取反映頁面流暢度的參數(shù)”,可以包括:根據(jù)該累積幀數(shù)獲取圖像幀的幀率,并將該幀率直接作為獲取反映頁面流暢度的第一參數(shù)。
同樣,本實施例還可以獲取幀率FPS與標準幀率FPS標準之間的比例LF,以反映頁面流暢度。其中,標準幀率可以根據(jù)實際需求設(shè)定,如FPS標準=60hz等。也即步驟“根據(jù)當前已繪制圖像幀的累積幀數(shù),獲取反映頁面流暢度的參數(shù)”可以包括:
根據(jù)當前已繪制圖像幀的累積幀數(shù)獲取圖像幀的幀率;
獲取該幀率與標識幀率之間的幀率比例。此時參數(shù)可以包括幀率FPS和/或該幀率比例。
此外,本實施例在獲取第一參數(shù)的基礎(chǔ)上,還可以基于圖像幀的繪制時長獲取反映頁面流暢度的第二參數(shù)。即步驟“根據(jù)當前已繪制圖像幀的累積幀數(shù),獲取反映頁面流暢度的參數(shù)”可以包括:
根據(jù)該累積幀數(shù)獲取圖像幀的幀率,并將該幀率作為反映頁面流暢度的第一參數(shù);
根據(jù)該幀率和圖像幀的標準繪制時長獲取掉幀數(shù),并將該掉幀數(shù)作為反映頁面流暢度的第二參數(shù)。
由于FPS=1s/△t,dropCount=△t/T標準;那么dropCount=1s/(△t*T標準),因此,可以通過幀率和標準繪制時長獲取掉幀數(shù)。
此外,本實施例還可以通過目標圖像幀與上一圖像幀的起始繪制時間得到上一幀的繪制時長,然后,基于繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù)。也即步驟“根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù)”還可以包括:
根據(jù)目標圖像幀與上一圖像幀的起始繪制時間,獲取上一圖像幀的繪制時長;
根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù),并將該掉幀數(shù)作為反映頁面流暢度的參數(shù)。
具體地,獲取掉幀數(shù)的方式可以參考上面的描述,此處不再贅述。該第二參數(shù)同樣可以包括掉幀數(shù)dropCount、和/或掉幀數(shù)dropCount對應(yīng)的掉幀率。
可選地,本實施例還可以對針對每個圖像幀執(zhí)行步驟101-104,以得到多個反映頁面流暢度的參數(shù),即反映頁面流暢度的參數(shù)序列。也即本實施例方法在步驟104之后還包括:
確定該頁面數(shù)據(jù)中的所有圖像幀是否繪制完畢;
若否,則返回執(zhí)行確定當前待繪制的圖像幀的步驟,即步驟101。
本實施例方法在獲取反映頁面流暢度的參數(shù)之后,需要返回步驟101為下一個圖像幀注冊對應(yīng)的回調(diào)函數(shù),然后,在開始對下一個圖像幀進行繪制時調(diào)用回調(diào)函數(shù)記錄該圖像幀的起始繪制時間,并基于該起始繪制時間和歷史圖像幀的起始繪制時間再次獲取反映頁面流暢度的參數(shù)。如此循環(huán)直至頁面數(shù)據(jù)中所有圖像幀繪制完成。因此,在所有圖像幀繪制完成,可以得到一系列的反映頁面流暢度的參數(shù)。
比如,當該參數(shù)為幀率FPS時,可以得到一組FPS,即FPS1、FPS2……FPSm。用戶通過該一系列的FPS便可獲知頁面流暢度。比如,當FPS組中大于預(yù)設(shè)幀率至的FPS個數(shù)滿足一定要求時,則認為頁面流暢。
又比如,當參數(shù)包括幀率FPS和掉幀數(shù)dropCount時,經(jīng)過多次循環(huán)可以得到一組FPS,即FPS1、FPS2……FPSm,和一組dropCount,即dropCount1、dropCount2……dropCountm;此時,用戶可以通過FPS組和dropCount組來衡量頁面流暢度。
由上可知,本發(fā)明實施例采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的目標圖像幀,并為該圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該目標圖像幀的起始繪制時間,根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù)。該方案可以通過注冊的回調(diào)函數(shù)獲取每個圖像幀的起始繪制時間,并基于圖像幀和歷史圖像幀的起始繪制時間獲取反映頁面流暢度的參數(shù);由于該方案無需對頁面進行遠程調(diào)試,排除了遠程調(diào)試對頁面性能的干擾,因此可以提高頁面流暢度測試的準確性,并且由于該方案無需人工介入即可實現(xiàn)對頁面流暢度的測試,因此,還可以提高頁面流暢度測試的速度和效率。
此外,本發(fā)明實施例提供的測試方案與平臺相關(guān)性,對于任意平臺上的頁面的滑動流暢度均可以有效評測。比如,在不同的移動端(iOS、Android等)上,在不同的應(yīng)用或瀏覽器中,均可有效評測頁面滑動流暢度。
實施例二、
根據(jù)實施例一所描述的方法,以下將舉例作進一步詳細說明。
在本實施例中,將以該測試裝置具體集成終端,且參數(shù)包括幀率和掉幀數(shù)為例進行說明。
如圖2所示,一種頁面流暢度的測試方法,具體流程如下:
200、終端加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀。
比如,可以通過瀏覽器加載待測試頁面的頁面數(shù)據(jù)。該圖像幀為頁面數(shù)據(jù)中的圖像幀數(shù)據(jù),這里簡稱圖像幀。在需要展示被測試頁面時,即可以通過繪制模塊對圖像幀數(shù)據(jù)進行繪制,并展示繪制的圖像。
其中,測試頁面的類型可以為多種,比如可以為HTML(HyperText Markup Language,超文本標記語言)頁面、H5(HTML5)頁面等等。
201、終端確定當前待繪制的圖像幀,并為該圖像幀注冊對應(yīng)的回調(diào)函數(shù)。
其中,終端可以通過window.requestAnimationFrame()為圖像幀注冊回調(diào)函數(shù)callback。
例如,當該圖像幀為幀n時,可以為幀n注冊回調(diào)函數(shù),假設(shè)幀n對應(yīng)的回調(diào)函數(shù)為callback_n。
202、終端在開始對該圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù)。
比如,在瀏覽器開始對幀n進行繪制時,調(diào)用回調(diào)函數(shù)callback_n。
203、終端通過回調(diào)函數(shù)記錄當前圖像幀的起始繪制時間。
比如,終端通過回調(diào)函數(shù)callback_n記錄當前幀n的起始繪制時間Tn。
比如,終端可以通過該回調(diào)函數(shù)記錄一個時間戳,該時間戳即為當前圖像幀的起始繪制時間。在經(jīng)過多次循環(huán)之后,可以得到一個起始繪制時間序列,即時間戳序列:如T1、T2、……Ti……Tn,其中Ti表示圖像幀i的起始繪制時間。
204、終端根據(jù)當前圖像幀與上一圖像幀的起始繪制時間,獲取上一圖像幀的繪制時長。
具體地,終端獲取當前圖像幀與上一圖像幀的起始繪制時間之差,得到上一圖形幀的繪制時長即繪制耗時。
其中,終端可以通過回調(diào)函數(shù)獲取當前圖像幀與上一圖像幀的起始繪制時間之差,得到上一圖形幀的繪制時長即繪制耗時。
比如,終端獲取幀n的起始繪制時間Tn與上一個幀n-1的起始Tn-1之間的差值,該差值即為幀n-1的繪制時長。其中,△Tn-(n-1)=Tn-Tn-1,△Tn-(n-1)為幀n-1的繪制時長。
在經(jīng)過多次循環(huán)后,可以得到每一圖像幀的繪制時長:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。
在一些實施例中,可以先記錄圖像幀的起始繪制時間,不需要馬上計算出繪制時長,可以在其他時機來計算繪制時長。比如,在測試的最后階段來計算繪制時長等。
本實施例方法還可以在獲取圖像幀的繪制時長之后,可以計算圖像幀繪制時長的方差和/或標準差。比如,在經(jīng)過多次計算后可以得到每一圖像幀的繪制時長:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。,此時,便可以根據(jù)該時長序列計算方差S和/或S’標準差。
205、終端根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù)。
實際應(yīng)用中,終端可以在回調(diào)函數(shù)中根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù)。
其中,圖像幀的標準繪制時長可以以一定的標準幀率FPS標準為參考來獲取,具體地,可以通過以下公式計算標準繪制時長:
T標準=1000ms/FPS標準;其中,T標準為圖像幀的標準繪制時長,即標準耗時。
比如,當FPS標準=60hz時,可以通過上述公式計算得到T標準=1000ms/60hz=16.6ms。該標準幀率FPS標準可以根據(jù)實際需求設(shè)定。
其中,掉幀數(shù)為反映頁面流暢度的參數(shù)。該掉幀數(shù)dropCount=△t/T標準;其中,T標準為圖像幀的標準繪制時長,△t為圖像幀的繪制時長。
此時,掉幀數(shù)dropCount=△Tn-(n-1)/16.6ms。
本實施例在獲取掉幀數(shù)之后,還可以進一步獲取在預(yù)定時間段內(nèi)該掉幀數(shù)出現(xiàn)的次數(shù),即一定時間段內(nèi)掉幀數(shù)dropCount對應(yīng)的掉幀率。比如,可以獲取在一段時間內(nèi)掉1幀、掉2幀、掉3幀等的次數(shù)。通過掉幀數(shù)分布可以更加客觀地衡量頁面流暢度。
206、終端更新當前已繪制圖像幀的累積幀數(shù)N。
具體地,通過加1的方式更新當前已繪制圖像幀的累積幀數(shù)N。比如,通過N=N+1更新當前已繪制圖像幀的累積幀數(shù)。
例如,在當前圖像幀之前總共累積繪制了N=6個圖像幀,此時,可將累積幀數(shù)N加1以更新當前已繪制圖像幀的累積幀數(shù),此時,當前已繪制圖像幀的累積幀數(shù)為7。
207、終端獲取當前圖像幀的起始繪制時間、與起始圖像幀的起始繪制時間之間的時間差。
比如,在初始階段,該起始圖像幀為第一個圖像幀,即幀1,此時,可以獲取幀n的起始繪制時間Tn與幀1的起始繪制時間T1之間的時間差,即Tn-T1。
208、終端判斷該時間差是否大于或等于1s,若是,則執(zhí)行步驟207,若否,則返回執(zhí)行步驟200確定下一個待繪制的圖像幀,并為下一個圖像幀注冊對應(yīng)的回調(diào)函數(shù)。
比如,終端判斷Tn-T1是否大于或等于1s,若是,則當前累積幀數(shù)N即為圖像幀的幀率FPS。
209、終端根據(jù)累積幀數(shù)N獲取圖像幀的幀率FPS。
比如,幀率FPS=N。
210、終端將起始圖像幀設(shè)置為當前圖像幀,并將累積幀數(shù)N置零。
211、終端確定頁面數(shù)據(jù)中所有圖像幀是否繪制完畢,若否返回步驟201確定下一個待繪制的圖像幀,并為下一個圖像幀注冊對應(yīng)的回調(diào)函數(shù),若是,則結(jié)束流程。
比如,當起始圖像幀為幀1時,將起始圖像幀設(shè)置為幀n;并重置N=0。
在callback函數(shù)邏輯最后,再次通過window.requestAnimationFrame()為下一幀注冊callback,確保每幀繪制前都會調(diào)用callback函數(shù)。
實際應(yīng)用中,本實施例中步驟204-210可以在callback函數(shù)中執(zhí)行,即通過callback函數(shù)來實現(xiàn)。
比如,在步驟204-210可以在callback_n函數(shù)中執(zhí)行,本實施例可以在callback_n函數(shù)中獲取頁面流暢度的參數(shù),最后可以在callback_n邏輯中為下一幀n+1注冊回調(diào)函數(shù)callback_n+1。也即,本實施例可以依次在每一幀的callback中為下一幀注冊相應(yīng)的callback。如此循環(huán)直到頁面數(shù)據(jù)中所有圖像幀繪制完成。
本實施例經(jīng)過上述循環(huán)可以獲取針對每個圖像幀獲取相應(yīng)的加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,得到反映頁面流暢度的參數(shù)序列。此時,用戶可以基于該參數(shù)序列來衡量頁面流暢度。
比如,當參數(shù)包括幀率FPS和掉幀數(shù)dropCount時,經(jīng)過多次循環(huán)可以得到一組FPS,即FPS1、FPS2……FPSm,和一組dropCount,即dropCount1、dropCount2……dropCountm;此時,用戶可以通過FPS組和dropCount組來衡量頁面流暢度。
由上可知,本發(fā)明實施例采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的圖像幀,并為該圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該圖像幀的起始繪制時間,根據(jù)該圖像幀的起始繪制時間獲取掉幀數(shù)和幀率,并返回確定當前待繪制的圖像幀的步驟。該方案可以通過注冊的回調(diào)函數(shù)獲取每個圖像幀的起始繪制時間,并基于圖像幀的起始繪制時間獲取掉幀數(shù)和幀率;由于該方案無需對頁面進行遠程調(diào)試,排除了遠程調(diào)試對頁面性能的干擾,因此可以提高頁面流暢度測試的準確性,并且由于該方案無需人工介入即可實現(xiàn)對頁面流暢度的測試,因此,還可以提高頁面流暢度測試的速度和效率。
此外,該方案可以具有以下優(yōu)點:
(1)、該獲取掉幀數(shù)和幀率,以測試頁面流暢度,相比目前僅獲取幀率的測試方法來說,可以提高頁面流暢度測試的精確性。
(2)、測試方案與平臺相關(guān)性,對于任意平臺上的頁面的滑動流暢度均可以有效評測。比如,在不同的移動端(iOS、Android等)上,在不同的應(yīng)用或瀏覽器中,均可有效評測頁面滑動流暢度。
(3)、通過本實施例方法獲得的頁面流暢度評測數(shù)據(jù),與用戶真實使用場景的滑動體驗相吻合。
(4)、在將本實施例方法應(yīng)用到H5頁面流暢度測試時,可以結(jié)合H5其他技術(shù),可以將頁面流暢度指標實時繪制在頁面上,方便測試人員及時發(fā)現(xiàn)性能問題。
實施例三、
根據(jù)實施例一所描述的方法,以下將舉例作進一步詳細說明。
在本實施例中,將以該測試裝置具體集成終端,且參數(shù)包括幀率和掉幀數(shù)為例進行說明。
如圖3所示,一種頁面流暢度的測試方法,具體流程如下:
300、終端加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀。
比如,可以通過瀏覽器加載待測試頁面的頁面數(shù)據(jù)。該圖像幀為頁面數(shù)據(jù)中的圖像幀數(shù)據(jù),這里簡稱圖像幀。在需要展示被測試頁面時,即可以通過繪制模塊對圖像幀數(shù)據(jù)進行繪制,并展示繪制的圖像。
其中,測試頁面的類型可以為多種,比如可以為HTML(HyperText Markup Language,超文本標記語言)頁面、H5(HTML5)頁面等等。
301、終端確定當前待繪制的圖像幀,并為該圖像幀注冊對應(yīng)的回調(diào)函數(shù)。
其中,終端可以通過window.requestAnimationFrame()為圖像幀注冊回調(diào)函數(shù)callback。
例如,當該圖像幀為幀n時,可以為幀n注冊回調(diào)函數(shù),假設(shè)幀n對應(yīng)的回調(diào)函數(shù)為callback_n。
302、終端在開始對該圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù)。
比如,在瀏覽器開始對幀n進行繪制時,調(diào)用回調(diào)函數(shù)callback_n。
303、終端通過回調(diào)函數(shù)記錄當前圖像幀的起始繪制時間。
比如,終端通過回調(diào)函數(shù)callback_n記錄當前幀n的起始繪制時間Tn。
比如,終端可以通過該回調(diào)函數(shù)記錄一個時間戳,該時間戳即為當前圖像幀的起始繪制時間。在經(jīng)過多次循環(huán)之后,可以得到一個起始繪制時間序列,即時間戳序列:如T1、T2、……Ti……Tn,其中Ti表示圖像幀i的起始繪制時間。
304、終端根據(jù)當前圖像幀與上一圖像幀的起始繪制時間,獲取上一圖像幀的繪制時長。
具體地,終端獲取當前圖像幀與上一圖像幀的起始繪制時間之差,得到圖形幀的繪制時長即繪制耗時。比如,在回調(diào)函數(shù)callback_n中獲取圖像幀的繪制時長。
其中,終端可以通過回調(diào)函數(shù)獲取當前圖像幀與上一圖像幀的起始繪制時間之差,得到圖形幀的繪制時長即繪制耗時。
比如,終端獲取幀n的起始繪制時間Tn與上一個幀n-1的起始Tn-1之間的差值,該差值即為幀n-1的繪制時長。其中,△Tn-(n-1)=Tn-Tn-1,△Tn-(n-1)為幀n-1的繪制時長。
在經(jīng)過多次循環(huán)后,可以得到每一圖像幀的繪制時長:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。
在一些實施例中,可以先記錄圖像幀的起始繪制時間,不需要馬上計算出繪制時長,可以在其他時機來計算繪制時長。比如,在測試的最后階段來計算繪制時長等。
本實施例方法還可以在獲取圖像幀的繪制時長之后,可以計算圖像幀繪制時長的方差和/或標準差。比如,在經(jīng)過多次計算后可以得到每一圖像幀的繪制時長:△T2-1、△T3-4、……△Ti-(i-1)……△Tn-(n-1)。,此時,便可以根據(jù)該時長序列計算方差S和/或S’標準差。
305、終端根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù)。
實際應(yīng)用中,終端可以在回調(diào)函數(shù)中根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù)。比如,可以在callback_n中獲取掉幀數(shù)。
其中,圖像幀的標準繪制時長可以以一定的標準幀率FPS標準為參考來獲取,具體地,可以通過以下公式計算標準繪制時長:
T標準=1000ms/FPS標準;其中,T標準為圖像幀的標準繪制時長,即標準耗時。
比如,當FPS標準=60hz時,可以通過上述公式計算得到T標準=1000ms/60hz=16.6ms。該標準幀率FPS標準可以根據(jù)實際需求設(shè)定。
其中,掉幀數(shù)為反映頁面流暢度的參數(shù)。該掉幀數(shù)dropCount=△t/T標準;其中,T標準為圖像幀的標準繪制時長,△t為圖像幀的繪制時長。
此時,掉幀數(shù)dropCount=△Tn-(n-1)/16.6ms。
本實施例在獲取掉幀數(shù)之后,還可以進一步獲取在預(yù)定時間段內(nèi)該掉幀數(shù)出現(xiàn)的次數(shù),即一定時間段內(nèi)掉幀數(shù)dropCount對應(yīng)的掉幀率。比如,可以獲取在一段時間內(nèi)掉1幀、掉2幀、掉3幀等的次數(shù)。通過掉幀數(shù)分布可以更加客觀地衡量頁面流暢度。
306、終端根據(jù)該繪制時長獲取圖像幀的幀率FPS。返回步驟301確定下一個待繪制的圖像幀,并為下一個圖像幀注冊對應(yīng)的回調(diào)函數(shù)。
具體地,終端可以通過以下公式來計算FPS:
FPS=1s/△t,△t為圖像幀的繪制時長。
比如,此時FPS=1s/△Tn-(n-1)。
此外,本實施例終端還可以獲取幀率FPS與標準幀率FPS標準之間的比例LF,以反映頁面流暢度。
實際應(yīng)用中,本實施例中步驟304-306可以在callback_n函數(shù)中執(zhí)行,本實施例可以在callback_n函數(shù)中獲取頁面流暢度的參數(shù),最后可以在callback_n邏輯中為下一幀n+1注冊回調(diào)函數(shù)callback_n+1。也即,本實施例可以依次在每一幀的callback中為下一幀注冊相應(yīng)的callback。如此循環(huán)直到測試完成。
本實施例經(jīng)過上述循環(huán)可以獲取針對每個圖像幀獲取相應(yīng)的加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,得到反映頁面流暢度的參數(shù)序列。此時,用戶可以基于該參數(shù)序列來衡量頁面流暢度。
比如,當參數(shù)包括幀率FPS和掉幀數(shù)dropCount時,經(jīng)過多次循環(huán)可以得到一組FPS,即FPS1、FPS2……FPSm,和一組dropCount,即dropCount1、dropCount2……dropCountm;此時,用戶可以通過FPS組和dropCount組來衡量頁面流暢度。
由上可知,本發(fā)明實施例采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的圖像幀,并為該圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該圖像幀的起始繪制時間,根據(jù)該圖像幀的起始繪制時間獲取掉幀數(shù)和幀率,并返回確定當前待繪制的圖像幀的步驟。該方案可以通過注冊的回調(diào)函數(shù)獲取每個圖像幀的起始繪制時間,并基于圖像幀的起始繪制時間獲取掉幀數(shù)和幀率;由于該方案無需對頁面進行遠程調(diào)試,排除了遠程調(diào)試對頁面性能的干擾,因此可以提高頁面流暢度測試的準確性,并且由于該方案無需人工介入即可實現(xiàn)對頁面流暢度的測試,因此,還可以提高頁面流暢度測試的速度和效率。
此外,該方案可以具有以下優(yōu)點:
(1)、該獲取掉幀數(shù)和幀率,以測試頁面流暢度,相比目前僅獲取幀率的測試方法來說,可以提高頁面流暢度測試的精確性。
(2)、測試方案與平臺相關(guān)性,對于任意平臺上的頁面的滑動流暢度均可以有效評測。比如,在不同的移動端(iOS、Android等)上,在不同的應(yīng)用或瀏覽器中,均可有效評測頁面滑動流暢度。
(3)、通過本實施例方法獲得的頁面流暢度評測數(shù)據(jù),與用戶真實使用場景的滑動體驗相吻合。
(4)、在將本實施例方法應(yīng)用到H5頁面流暢度測試時,可以結(jié)合H5其他技術(shù),可以將頁面流暢度指標實時繪制在頁面上,方便測試人員及時發(fā)現(xiàn)性能問題。
實施例四、
為了更好地實施以上方法,本發(fā)明實施例還提供一種頁面流暢度的測試裝置,如圖4a所示,該頁面流暢度的測試裝置包括加載單元400、注冊單元401、調(diào)用單元402、記錄單元403、和參數(shù)獲取單元404,如下:
(1)加載單元400;
加載單元400,用于加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀。
比如,加載單元400,可以通過瀏覽器加載待測試頁面的頁面數(shù)據(jù)。該圖像幀為頁面數(shù)據(jù)中的圖像幀數(shù)據(jù),這里簡稱圖像幀。在需要展示被測試頁面時,即可以通過繪制模塊對圖像幀數(shù)據(jù)進行繪制,并展示繪制的圖像。
其中,被測試頁面的類型可以為多種,比如可以為HTML(HyperText Markup Language,超文本標記語言)頁面、H5(HTML5)頁面等等。
(2)注冊單元401;
注冊單元401,用于確定目標待繪制的圖像幀,并為該目標圖像幀注冊對應(yīng)的回調(diào)函數(shù)。
其中,注冊單元401可以通過系統(tǒng)函數(shù)如window.requestAnimationFrame()注冊一個回調(diào)函數(shù)。
(3)調(diào)用單元402;
調(diào)用單元402,用于在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù)。
(4)記錄單元403;
記錄單元403,用于通過該回調(diào)函數(shù)記錄該目標圖像幀的起始繪制時間。
比如,記錄單元403用于通過該回調(diào)函數(shù)記錄一個時間戳,該時間戳即為當前圖像幀即目標圖像幀的起始繪制時間。
(5)參數(shù)獲取單元404;
參數(shù)獲取單元404,用于根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù),該歷史圖像幀為之前已經(jīng)繪制的該頁面數(shù)據(jù)中的圖像幀。
本實施例中,歷史圖像幀為當前時刻之前頁面數(shù)據(jù)中已繪制的圖像幀,比如,頁面數(shù)據(jù)包括n幀,當前圖像幀為第i個圖像幀,假設(shè)從第1個圖像幀開始繪制,那么歷史圖像幀即為第i-1個圖像幀……第1個圖像幀的至少一個圖像幀。優(yōu)選地,該歷史圖像幀可以為與目標圖像幀相鄰的歷史圖像幀,如第i-1個圖像幀。
其中,頁面流暢度可以為頁面滑動流暢度等,該參數(shù)可以為衡量或者反映頁面滑動流暢度的指標。比如,反映頁面流暢度的參數(shù)可以包括幀率、掉幀數(shù)、幀率與標準幀率之間的幀率比值等等。
其中,該參數(shù)獲取單元404,可以包括:
第一時長獲取子單元,用于根據(jù)目標圖像幀與上一圖像幀的起始繪制時間,獲取上一圖像幀的繪制時長;
參數(shù)獲取子單元,用于根據(jù)該繪制時長獲取反映頁面流暢度的參數(shù)。
比如,該參數(shù)獲取子單元,用于:根據(jù)該繪制時長獲取圖像幀的幀率,并根據(jù)該幀率獲取反映頁面流暢度的參數(shù)。
比如,該參數(shù)獲取子單元,用于:
將該幀率作為反映頁面流暢度的參數(shù);
或者
獲取該幀率與標準幀率之間的幀率比值,并將該幀率比值作為反映頁面流暢度的參數(shù),。
本實施例中,該參數(shù)可以包括幀率FPS、和/或幀率FPS與標準幀率FPS標準之間的比例LF。具體地,參數(shù)選用可以根據(jù)實際需求設(shè)定。又比如,該參數(shù)獲取子單元,用于:根據(jù)該繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù),并將該掉幀數(shù)作為反映頁面流暢度的參數(shù)。
此時,該參數(shù)可以包括在預(yù)設(shè)時間段內(nèi)掉幀數(shù)dropCount對應(yīng)的掉幀率。
其中,參數(shù)獲取單元404,可以包括:
時差獲取子單元,用于獲取目標圖像幀的起始繪制時間、與起始圖像幀的起始繪制時間之間的時間差;
參數(shù)獲取子單元,用于當該時間差大于或等于預(yù)設(shè)閾值時,根據(jù)當前已繪制圖像幀的累積幀數(shù),獲取反映頁面流暢度的第三參數(shù);
更新子單元,用于根據(jù)目標圖像幀更新該起始圖像幀。
其中,參數(shù)可以包括幀率FPS和/或該比例。
可選地,該參數(shù)獲取子單元,可以具體用于:
根據(jù)該累積幀數(shù)獲取圖像幀的幀率,并將該幀率作為反映頁面流暢度的第一參數(shù);
根據(jù)該幀率和圖像幀的標準繪制時長獲取掉幀數(shù),并將該掉幀數(shù)作為反映頁面流暢度的第二參數(shù)
此時,該參數(shù)可以包括FPS、掉幀數(shù)dropCount、和/或掉幀數(shù)dropCount對應(yīng)的掉幀率。
可選地,參考圖4b,本實施例測試裝置還可以包括確定單元405,確定單元,用于在參數(shù)獲取單元獲取反映頁面流暢度的參數(shù)之后,確定該頁面數(shù)據(jù)中的所有圖像幀是否繪制完畢,若否,則觸發(fā)該注冊單元401執(zhí)行確定當前待繪制的圖像幀的步驟。
本實施例還可以對針對每個圖像幀計算參數(shù),以得到多個反映頁面流暢度的參數(shù),即反映頁面流暢度的參數(shù)序列。此時,可以根據(jù)一系列的反映頁面流暢度的參數(shù)確定頁面流暢度。提高了頁面流暢度測試的準確性和客觀性。
具體實施時,以上各個單元可以作為獨立的實體來實現(xiàn),也可以進行任意組合,作為同一或若干個實體來實現(xiàn),以上各個單元的具體實施可參見前面的方法實施例,在此不再贅述。
該頁面流暢度的測試裝置具體可以集成在終端中,該終端可以為手機、平板電腦等終端設(shè)備。
由上可知,本發(fā)明實施例的頁面流暢度的測試裝置通過加載單元400加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,由注冊單元401確定當前待繪制的目標圖像幀,并為該目標圖像幀注冊對應(yīng)的回調(diào)函數(shù),由調(diào)用單元402在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),由記錄單元403通過該回調(diào)函數(shù)記錄該目標圖像幀的起始繪制時間,由參數(shù)獲取單元404根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù),該歷史圖像幀為之前已經(jīng)繪制的該頁面數(shù)據(jù)中的圖像幀。該方案可以通過注冊的回調(diào)函數(shù)獲取每個圖像幀的起始繪制時間,并基于圖像幀的起始繪制時間獲取反映頁面流暢度的參數(shù);由于該方案無需對頁面進行遠程調(diào)試,排除了遠程調(diào)試對頁面性能的干擾,因此可以提高頁面流暢度測試的準確性,并且由于該方案無需人工介入即可實現(xiàn)對頁面流暢度的測試,因此,還可以提高頁面流暢度測試的速度和效率。
此外,本發(fā)明實施例提供的測試方案與平臺相關(guān)性,對于任意平臺上的頁面的滑動流暢度均可以有效評測。比如,在不同的移動端(iOS、Android等)上,在不同的應(yīng)用或瀏覽器中,均可有效評測頁面滑動流暢度。
實施例五、
本實施例還提供了一種終端,比如,請參考圖5,該終端500可以包括射頻(RF,Radio Frequency)電路501、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器502、輸入單元503、顯示單元504、傳感器505、音頻電路506、無線保真(WiFi,Wireless Fidelity)模塊507、包括有一個或者一個以上處理核心的處理器508以及電源509等部件。本領(lǐng)域技術(shù)人員可以理解,圖5中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
射頻電路501可用于收發(fā)信息,或通話過程中信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器508處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。存儲器502可用于存儲軟件程序以及模塊。處理器508通過運行存儲在存儲器502的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。此外,存儲器502可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應(yīng)地,存儲器502還可以包括存儲器控制器,以提供處理器508和輸入單元503對存儲器502的訪問。
輸入單元503可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標、操作桿、光學或者軌跡球信號輸入。具體地,在一個具體的實施例中,輸入單元503可包括觸敏表面以及其他輸入設(shè)備。具體地,其他輸入設(shè)備可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標、操作桿、指紋識別模組等中的一種或多種。
顯示單元504可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構(gòu)成。
終端還可包括至少一種傳感器505,比如光傳感器、運動傳感器以及其他傳感器。
音頻電路506可通過揚聲器、傳聲器提供用戶與終端之間的音頻接口。
處理器508是終端的控制中心,利用各種接口和線路連接整個終端的各個部分,通過運行或執(zhí)行存儲在存儲器502內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器502內(nèi)的數(shù)據(jù),執(zhí)行終端的各種功能和處理數(shù)據(jù),從而對終端進行整體監(jiān)控。可選的,處理器508可包括一個或多個處理核心;優(yōu)選的,處理器508可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和目標應(yīng)用等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器508中。
終端還包括給各個部件供電的電源509(比如電池)。盡管未示出,終端還可以包藍牙模塊、攝像頭等,在此不再贅述。
在本實施例中,終端中的處理器508會按照如下的指令,將一個或一個以上的應(yīng)用程序的進程對應(yīng)的可執(zhí)行文件加載到存儲器502中,并由處理器508來運行存儲在存儲器502中的應(yīng)用程序,從而實現(xiàn)各種功能:
采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的目標圖像幀,并為該圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該圖像幀的起始繪制時間,根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù)。
其中,根據(jù)所述圖像幀的起始繪制時間獲取反映頁面流暢度的參數(shù),包括:
根據(jù)目標圖像幀與上一圖像幀的起始繪制時間,獲取上一圖像幀的繪制時長;
根據(jù)所述繪制時長獲取反映頁面流暢度的參數(shù)。
比如,根據(jù)所述繪制時長獲取反映頁面流暢度的參數(shù),包括:
根據(jù)所述繪制時長獲取圖像幀的幀率,并根據(jù)所述幀率獲取反映頁面流暢度的參數(shù)。
又比如,根據(jù)所述繪制時長獲取反映頁面流暢度的參數(shù),包括:
根據(jù)所述繪制時長和圖像幀的標準繪制時長獲取掉幀數(shù),并將所述掉幀數(shù)作為反映頁面流暢度的參數(shù)。
可選地,根據(jù)所述目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù),包括:
獲取目標圖像幀的起始繪制時間、與起始圖像幀的起始繪制時間之間的時間差;
當所述時間差大于或等于預(yù)設(shè)閾值時,根據(jù)當前已繪制圖像幀的累積幀數(shù),獲取反映頁面流暢度的參數(shù);
根據(jù)目標圖像幀更新所述起始圖像幀。
由上可知,本發(fā)明實施例終端采用加載待測試頁面的頁面數(shù)據(jù),該頁面數(shù)據(jù)包括多個圖像幀,然后,確定當前待繪制的目標圖像幀,并為該目標圖像幀注冊對應(yīng)的回調(diào)函數(shù),在開始對該目標圖像幀進行繪制時,調(diào)用該回調(diào)函數(shù),通過該回調(diào)函數(shù)記錄該目標圖像幀的起始繪制時間,根據(jù)該目標圖像幀的起始繪制時間、以及歷史圖像幀的起始繪制時間,獲取反映頁面流暢度的參數(shù);由于該方案無需對頁面進行遠程調(diào)試,排除了遠程調(diào)試對頁面性能的干擾,因此可以提高頁面流暢度測試的準確性,并且由于該方案無需人工介入即可實現(xiàn)對頁面流暢度的測試,因此,還可以提高頁面流暢度測試的速度和效率。
本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(ROM,Read Only Memory)、隨機存取記憶體(RAM,Random Access Memory)、磁盤或光盤等。
以上對本發(fā)明實施例所提供的一種頁面流暢度的測試方法和裝置進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。