本申請(qǐng)涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種媒體播放質(zhì)量測試方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,涌現(xiàn)了大量的媒體應(yīng)用和網(wǎng)站,例如各種視頻、音頻應(yīng)用和網(wǎng)站等。不同的視頻、音頻應(yīng)用和網(wǎng)站可能有不同的播放質(zhì)量,帶給人們不同的體驗(yàn)。如何分析這些視頻、音頻應(yīng)用和網(wǎng)站的多媒體播放質(zhì)量并提供可靠的測試結(jié)果和大數(shù)據(jù)供普通用戶和研發(fā)人員使用是業(yè)界研究的技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的目的在于提供一種媒體播放質(zhì)量測試方法和裝置,可以提供客觀、準(zhǔn)確、可靠的媒體播放質(zhì)量測試結(jié)果。
本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試方法,其包括:
獲取測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù);
運(yùn)行所述媒體播放應(yīng)用,以對(duì)所述測試任務(wù)進(jìn)行播放;
在所述測試任務(wù)的播放過程中,根據(jù)所獲取的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),拉取所述媒體播放應(yīng)用的當(dāng)前播放界面中的控件信息,并根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù);
向服務(wù)器上報(bào)當(dāng)前播放界面中的所述控件的事件數(shù)據(jù);
接收服務(wù)器根據(jù)所述控件的事件數(shù)據(jù)得到的媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果,進(jìn)行顯示。
本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試方法,其包括:
向客戶端發(fā)送測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù);
在所述媒體播放應(yīng)用在所述客戶端播放所述測試任務(wù)的過程中,從所述客戶端接收客戶端根據(jù)所述控件數(shù)據(jù)獲取的媒體播放應(yīng)用的當(dāng)前播放界面中的控件的事件數(shù)據(jù);
處理控件的事件數(shù)據(jù),分析在測試任務(wù)的播放過程中,媒體播放應(yīng)用的播放界面中的控件的狀態(tài),得到媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果;
將所述播放質(zhì)量測試結(jié)果下發(fā)給客戶端。
本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試裝置,其包括:
控件數(shù)據(jù)獲取模塊,用于獲取測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù);
測試任務(wù)播放模塊,用于運(yùn)行所述媒體播放應(yīng)用,以對(duì)所述測試任務(wù)進(jìn)行播放;
控件事件數(shù)據(jù)獲取模塊,用于在所述測試任務(wù)的播放過程中,根據(jù)所獲取的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),拉取所述媒體播放應(yīng)用的當(dāng)前播放界面中的控件信息,并根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù);
控件事件數(shù)據(jù)上報(bào)模塊,用于向服務(wù)器上報(bào)當(dāng)前播放界面中的所述控件的事件數(shù)據(jù);
展示模塊,用于接收服務(wù)器根據(jù)所述控件的事件數(shù)據(jù)得到的媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果,進(jìn)行顯示。
本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試裝置,其包括:
下發(fā)模塊,用于向客戶端發(fā)送測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),以及在得到媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果之后,將所述播放質(zhì)量測試結(jié)果下發(fā)給客戶端;
接收模塊,在所述媒體播放應(yīng)用在所述客戶端播放所述測試任務(wù)的過程中,從所述客戶端接收客戶端根據(jù)所述控件數(shù)據(jù)獲取的媒體播放應(yīng)用的當(dāng)前播放界面中的控件的事件數(shù)據(jù);
處理和分析模塊,處理控件的事件數(shù)據(jù),分析在測試任務(wù)的播放過程中,媒體播放應(yīng)用的播放界面中的控件的狀態(tài),得到媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果。
本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試方法和裝置,通過在終端設(shè)備上進(jìn)行屏幕抓取,利用媒體播放應(yīng)用的播放界面的各種提示、控件,獲取測試任務(wù)播放的首次緩沖時(shí)間、卡頓次數(shù)、除首次緩沖之外的其他緩沖(二次緩沖)總時(shí)間、出錯(cuò)次數(shù)等播放體驗(yàn)相關(guān)的數(shù)據(jù),進(jìn)一步通過服務(wù)器后臺(tái)分析和數(shù)據(jù)建模,得出各家媒體播放應(yīng)用的播放體驗(yàn)測試結(jié)果。整個(gè)過程不會(huì)對(duì)測試任務(wù)的播放過程有打斷及人為干涉,保證了數(shù)據(jù)的客觀準(zhǔn)確,最終會(huì)從各項(xiàng)指標(biāo)以及綜合得分方面找出各家媒體播放應(yīng)用的優(yōu)劣勢,給業(yè)界提供一個(gè)參考及改進(jìn)的標(biāo)準(zhǔn)。
附圖說明
為了更清楚的說明本申請(qǐng)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單的介紹。
圖1為根據(jù)本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試系統(tǒng)架構(gòu)圖;
圖2為根據(jù)本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試方法的流程圖;
圖3a為根據(jù)本申請(qǐng)實(shí)施例的一種測試界面示意圖;
圖3b為根據(jù)本申請(qǐng)實(shí)施例的播放質(zhì)量展示示意圖;
圖4為根據(jù)本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試方法的流程圖;
圖5為本申請(qǐng)實(shí)施例的另一種媒體播放質(zhì)量測試方法的流程圖;
圖6為根據(jù)本申請(qǐng)實(shí)施例的處理控件的事件數(shù)據(jù)過程流程圖;
圖7為根據(jù)本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置的示意圖;
圖8為根據(jù)本申請(qǐng)實(shí)施例的控件事件數(shù)據(jù)獲取模塊示意圖;
圖9為本申請(qǐng)實(shí)施例的另一種媒體播放質(zhì)量測試裝置示意圖;
圖10為根據(jù)本申請(qǐng)實(shí)施例的處理模塊示意圖;
圖11所示為根據(jù)本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置的硬件結(jié)構(gòu)示意圖;
圖12所示為根據(jù)本申請(qǐng)實(shí)施例的另一種媒體播放質(zhì)量測試裝置的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合說明書附圖及具體實(shí)施例進(jìn)一步說明本申請(qǐng)。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本申請(qǐng),并不用于限定本申請(qǐng)。
本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試方法和裝置,通過在終端設(shè)備上進(jìn)行屏幕抓取,利用媒體播放應(yīng)用的播放界面的各種提示、控件,獲取測試任務(wù)播放的首次緩沖時(shí)間、卡頓次數(shù)、除首次緩沖之外的其他緩沖(二次緩沖)總時(shí)間、出錯(cuò)次數(shù)等播放體驗(yàn)相關(guān)的數(shù)據(jù),進(jìn)一步通過服務(wù)器后臺(tái)分析和數(shù)據(jù)建模,得出各家媒體播放應(yīng)用的播放體驗(yàn)測試結(jié)果。整個(gè)過程不會(huì)對(duì)測試任務(wù)的播放過程有打斷及人為干涉,保證了數(shù)據(jù)的客觀準(zhǔn)確,最終會(huì)從各項(xiàng)指標(biāo)以及綜合得分方面找出各家媒體播放應(yīng)用的優(yōu)劣勢,給業(yè)界提供一個(gè)參考及改進(jìn)的標(biāo)準(zhǔn)。
圖1為根據(jù)本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試系統(tǒng)架構(gòu)圖。如圖1所示,該系統(tǒng)包括終端設(shè)備10和與終端設(shè)備10通過網(wǎng)絡(luò)30交互的服務(wù)器20。
其中,終端設(shè)備10可以是智能手機(jī)、平板電腦、計(jì)算機(jī)、數(shù)字廣播接收器、pda(個(gè)人數(shù)字助理)、pad(平板電腦)、pmp(便攜式多媒體播放器)、穿戴式設(shè)備(比如智能手環(huán)、智能手表等)、導(dǎo)航裝置等等。
圖2為根據(jù)本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試方法的流程圖,可以通過終端設(shè)備來實(shí)現(xiàn)。如圖2所示,該媒體播放質(zhì)量測試方法包括以下步驟:
步驟201:獲取測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,當(dāng)用戶打開終端設(shè)備,例如手機(jī)上的測試應(yīng)用,測試媒體播放應(yīng)用時(shí),測試應(yīng)用會(huì)展示一個(gè)測試界面。測試應(yīng)用例如是安裝在安卓(android)終端設(shè)備上。圖3a所示為根據(jù)本申請(qǐng)實(shí)施例的一種測試界面示意圖。如圖3a所示,在測試界面301中,例如通過接口startactivity自動(dòng)加載從要測試的媒體播放應(yīng)用302所提供的媒體內(nèi)容中選擇的測試任務(wù)303,例如一段電視劇視頻,供媒體播放應(yīng)用進(jìn)行播放。對(duì)于一個(gè)媒體播放應(yīng)用,服務(wù)器端可以預(yù)先收集該媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如各種控件的描述,其中包括控件標(biāo)識(shí)(id)。然后在下發(fā)測試任務(wù)時(shí),同時(shí)將播放界面的控件數(shù)據(jù)下發(fā)給終端設(shè)備。這些控件例如包括:緩沖控件、進(jìn)度條控件、播放控件、錯(cuò)誤提示控件等等。這樣,終端設(shè)備的測試應(yīng)用可以知道需要上報(bào)哪些控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,當(dāng)要測試多個(gè)媒體播放應(yīng)用時(shí),可以使用這多個(gè)媒體播放應(yīng)用都提供的相同的媒體內(nèi)容作為測試任務(wù)。例如,若這多個(gè)媒體播放應(yīng)用都提供某個(gè)電視劇的某一集視頻,便可以使用該電視劇的該集視頻。這樣的播放質(zhì)量比較結(jié)果會(huì)更直觀。
步驟202:運(yùn)行所述媒體播放應(yīng)用,以對(duì)所述測試任務(wù)進(jìn)行播放。
例如,結(jié)合圖3a所示,當(dāng)用戶在測試界面301中點(diǎn)擊測試任務(wù)的播放按鍵304時(shí),便可以運(yùn)行要測試的媒體播放應(yīng)用,播放測試任務(wù)。
在有多個(gè)測試任務(wù),例如有多個(gè)要測試的媒體播放應(yīng)用的情況下,測試應(yīng)用在使用一個(gè)媒體播放應(yīng)用播放完一個(gè)測試任務(wù)之后,可以自動(dòng)開始使用下一個(gè)媒體播放應(yīng)用播放下一個(gè)測試任務(wù)。
步驟203:在所述測試任務(wù)的播放過程中,根據(jù)所獲取的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),拉取所述媒體播放應(yīng)用的當(dāng)前播放界面中的控件信息,并根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,在測試任務(wù)的播放過程中,測試應(yīng)用會(huì)根據(jù)從服務(wù)器獲取的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如,控件id,通過安卓系統(tǒng)提供的用于捕捉屏幕狀態(tài)的開放接口,例如findaccessiblitynodeinfosbyviewid,實(shí)時(shí)查找當(dāng)前播放界面中是否有與播放界面的控件數(shù)據(jù)對(duì)應(yīng)的控件信息,如有則對(duì)其進(jìn)行拉取,并根據(jù)拉取的控件信息,獲取當(dāng)前播放界面中控件的事件數(shù)據(jù)。這些控件例如包括:緩沖控件、進(jìn)度條控件、播放控件、錯(cuò)誤提示控件等等。所拉取的控件信息為由控件的各個(gè)節(jié)點(diǎn)構(gòu)成的控件樹。例如,緩沖控件的控件樹為“com.tencent.qqlive:id/player_tips_loading_layout”,其中的“com”為根節(jié)點(diǎn)、“tencent”、“qqlive:id”、“player_tips_loading_layout”為子節(jié)點(diǎn)。
然后,測試應(yīng)用根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù)??丶氖录?shù)據(jù)例如包括:控件的出現(xiàn)、消失、被拖動(dòng)等。
步驟204:向服務(wù)器上報(bào)當(dāng)前播放界面中的所述控件的事件數(shù)據(jù)。
當(dāng)測試應(yīng)用獲取到當(dāng)前播放界面中的控件的事件數(shù)據(jù)之后,會(huì)將獲取的媒體播放應(yīng)用的播放界面中控件的事件數(shù)據(jù)通過http協(xié)議上報(bào)給服務(wù)器。
控件的事件例如用“event_name”字段表示。在上報(bào)緩沖控件的事件時(shí),例如,“event_name”字段中的值為“com.tencent.qqlive:id/player_tips_loading_layout”。例如,“start_time”字段和“end_time”字段表示控件出現(xiàn)和結(jié)束的時(shí)間點(diǎn),“time_interval”字段表示控件出現(xiàn)的時(shí)長。
另外,除了控件事件之外,測試應(yīng)用也可以上報(bào)測試任務(wù)開始和結(jié)束的時(shí)間點(diǎn),例如通過“begin_time”字段和“stop_time”字段進(jìn)行上報(bào)。
根據(jù)本申請(qǐng)實(shí)施例,在上報(bào)當(dāng)前播放界面中控件的事件數(shù)據(jù)時(shí),可以進(jìn)一步上報(bào)終端設(shè)備的信息,例如用于識(shí)別終端設(shè)備的終端設(shè)備標(biāo)識(shí),“guid”,每一個(gè)終端設(shè)備對(duì)應(yīng)唯一的終端設(shè)備標(biāo)識(shí)。另外,還可以上報(bào)測試任務(wù)的信息,例如用于識(shí)別測試任務(wù)的測試任務(wù)標(biāo)識(shí),“task_id”,每一個(gè)測試任務(wù)對(duì)應(yīng)唯一的測試任務(wù)標(biāo)識(shí)。
步驟205:接收服務(wù)器根據(jù)所述控件的事件數(shù)據(jù)得到的媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果,進(jìn)行顯示。
根據(jù)本申請(qǐng)實(shí)施例,在終端設(shè)備的測試應(yīng)用將當(dāng)前播放界面中的控件的事件數(shù)據(jù)上報(bào)到服務(wù)器之后,服務(wù)器對(duì)其進(jìn)行行處理,得到當(dāng)前媒體播放應(yīng)用的播放質(zhì)量,然后將其返回給終端設(shè)備上的測試應(yīng)用。測試應(yīng)用接收之后,可以以列表或者圖表的形式展示媒體播放應(yīng)用的各項(xiàng)質(zhì)量指標(biāo)和/或得分。圖3b所示為根據(jù)本申請(qǐng)實(shí)施例的播放質(zhì)量展示示意圖。其中,對(duì)各個(gè)視頻播放應(yīng)用的測試任務(wù)的加載時(shí)長(loading時(shí)長)、緩沖次數(shù)、緩沖時(shí)長、拖動(dòng)次數(shù)、拖動(dòng)時(shí)長(seek時(shí)長)等進(jìn)行了比較,同時(shí)提供了其他參數(shù)項(xiàng),例如:視頻的名稱、清晰度、域名、任務(wù)開始和結(jié)束的時(shí)間、用戶的終端設(shè)備機(jī)型、網(wǎng)絡(luò)、錯(cuò)誤信息等。
通過本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法,可以提供媒體播放應(yīng)用的播放體驗(yàn)排名,客觀公正地評(píng)價(jià)各類媒體播放應(yīng)用的首次緩沖、卡頓等指標(biāo),并最終根據(jù)算法模型得到播放體驗(yàn)的排名,給業(yè)界提供一個(gè)參考及改進(jìn)的標(biāo)準(zhǔn)。另外,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法具有數(shù)據(jù)自動(dòng)采集分析能力:實(shí)現(xiàn)播放質(zhì)量數(shù)據(jù)自動(dòng)化收集,并可以按照用戶的地區(qū)、媒體的清晰度、時(shí)間(日、月)等多種維度的數(shù)據(jù)分析及展現(xiàn)。除此之外,通過自動(dòng)收集的數(shù)據(jù)實(shí)現(xiàn)按照日、月維度完成競品的播放質(zhì)量得分排名和月度趨勢變化,同時(shí)結(jié)合得分給到具體影響質(zhì)量得分的原因和得分靠后的5個(gè)城市,完成日?qǐng)?bào)月報(bào)信息精準(zhǔn)推送。準(zhǔn)確分析各項(xiàng)播放指標(biāo)在不同時(shí)段、不同地區(qū)的差異,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法可以精確定位播放質(zhì)量影響原因,從而提供給開發(fā)、運(yùn)維團(tuán)隊(duì)、產(chǎn)品團(tuán)隊(duì)有針對(duì)性的做出優(yōu)化。
圖4為根據(jù)本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試方法的流程圖。其中,在圖2的基礎(chǔ)上,步驟203中,拉取所述媒體播放應(yīng)用的當(dāng)前播放界面中的控件信息,并根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù)包括以下步驟:
步驟401:監(jiān)控播放界面。
測試應(yīng)用實(shí)時(shí)對(duì)媒體播放應(yīng)用的當(dāng)前播放界面進(jìn)行監(jiān)控。
步驟402:判斷當(dāng)前播放界面中是否有控件。如果否,則返回到步驟401,繼續(xù)監(jiān)控播放界面;如果是,則進(jìn)行步驟403。
具體地,在該步驟中,可以判斷當(dāng)前播放界面中是否有控件樹,控件樹包括描述當(dāng)前播放界面中的控件的各個(gè)節(jié)點(diǎn)。如果有控件樹,則進(jìn)行步驟403的處理,如果沒有,則返回到步驟401。
步驟403:拉取當(dāng)前播放界面中的控件信息,比較所拉取的控件信息和所述控件數(shù)據(jù)。
測試應(yīng)用例如可以拉取當(dāng)前播放界面中的所有控件的控件樹,然后比較控件樹和服務(wù)器下發(fā)的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如控件id。
步驟404:判斷當(dāng)前播放界面中是否存在控件數(shù)據(jù)所表示的控件;如果否,則返回到步驟401,繼續(xù)監(jiān)控播放界面;如果是,則進(jìn)行步驟405。
在進(jìn)行比較后,測試應(yīng)用判斷在當(dāng)前播放界面中是否有要上報(bào)的控件及其事件。如果雖然有控件,但當(dāng)前播放界面中的控件和服務(wù)器下發(fā)的控件數(shù)據(jù)不匹配,則不需要上報(bào)當(dāng)前播放界面中的控件,測試應(yīng)用繼續(xù)監(jiān)控播放界面,如果有控件,而且當(dāng)前播放界面中的控件和服務(wù)器下發(fā)的控件數(shù)據(jù)相匹配,則當(dāng)前播放界面中的控件是需要上報(bào)的控件,進(jìn)行步驟405。
步驟405:獲取當(dāng)前播放界面中的所述控件數(shù)據(jù)所表示的控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,在圖1、4中,控件的事件數(shù)據(jù)例如包括:播放控件出現(xiàn)的時(shí)間點(diǎn)、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長(首次加載)、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、除首次加載和拖動(dòng)情況造成的緩沖之外緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放錯(cuò)誤提示控件的出現(xiàn),等等。
其中,播放控件例如是當(dāng)用戶點(diǎn)擊圖3a中的播放按鍵304之后,在終端設(shè)備的屏幕上出現(xiàn)媒體播放應(yīng)用的播放界面的同時(shí)出現(xiàn)的。隨著測試任務(wù)的播放,這個(gè)播放控件會(huì)自動(dòng)消失。
在播放控件顯示之后,有可能馬上出現(xiàn)緩沖控件,提示當(dāng)前測試任務(wù)正在緩沖中,當(dāng)緩沖控件消失時(shí),則測試任務(wù)便開始出現(xiàn),例如真正出現(xiàn)視頻畫面。
在播放測試任務(wù)的過程中,用戶可能會(huì)拖動(dòng)進(jìn)度條,在停止拖動(dòng)進(jìn)度條后,一般測試任務(wù)會(huì)再次緩沖,這時(shí),也會(huì)出現(xiàn)緩沖控件,當(dāng)這個(gè)緩沖控件消失后,則從進(jìn)度條拖動(dòng)后的時(shí)間點(diǎn)繼續(xù)播放測試任務(wù)。
除了上述的首次緩沖和因?yàn)檫M(jìn)度條的拖動(dòng)而產(chǎn)生的緩沖之外,在測試任務(wù)中也可能會(huì)因?yàn)槠渌虺霈F(xiàn)緩沖,同樣,緩沖控件會(huì)出現(xiàn)和消失。
在測試任務(wù)的播放過程中,由于網(wǎng)絡(luò)或者其他原因,可能會(huì)出現(xiàn)播放錯(cuò)誤,此時(shí)會(huì)有播放錯(cuò)誤提示控件。
測試應(yīng)用實(shí)時(shí)獲取上述的控件事件,結(jié)合起來上報(bào)給服務(wù)器。
例如,測試應(yīng)用獲取并上報(bào)播放界面中播放控件出現(xiàn)的時(shí)間點(diǎn)、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,用于由服務(wù)器計(jì)算計(jì)算首次加載時(shí)長。
測試應(yīng)用獲取并上報(bào)播放界面中緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,用于由服務(wù)器計(jì)算從播放界面中出現(xiàn)媒體內(nèi)容到測試任務(wù)播放結(jié)束期間,除了播放界面中響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)時(shí)間長度之外(二次緩沖),緩沖控件總的出現(xiàn)時(shí)間長度和總次數(shù)。
例如,在用戶點(diǎn)擊播放按鍵304后,第一次緩沖了2秒(loading時(shí)長)才首次播放一個(gè)視頻,然后播放了10秒后出現(xiàn)了緩沖,等待了2秒后緩沖完繼續(xù)出現(xiàn)視頻畫面播放,再播放了30秒后又出現(xiàn)了緩沖,緩沖了5秒后繼續(xù)播放至視頻結(jié)束,這個(gè)過程的二次緩沖了兩次,二次緩沖時(shí)長了2+5=7秒。另外,根據(jù)這個(gè)例子,媒體播放應(yīng)用在播放過程中卡頓了兩次。
測試應(yīng)用獲取并上報(bào)播放界面中播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,用于由服務(wù)器計(jì)算播放界面中播放進(jìn)度條控件被拖動(dòng)后顯示的緩沖控件的出現(xiàn)的時(shí)間長度。
測試應(yīng)用獲取并上報(bào)播放界面中播放錯(cuò)誤提示控件的出現(xiàn)事件,用于由服務(wù)器計(jì)算播放界面中的播放錯(cuò)誤提示控件的出現(xiàn)次數(shù)。
根據(jù)本申請(qǐng)實(shí)施例,測試應(yīng)用上報(bào)控件事件數(shù)據(jù)之外,還可以上報(bào)測試任務(wù)結(jié)束的時(shí)間點(diǎn)。
測試應(yīng)用在用戶點(diǎn)擊播放測試任務(wù)的播放按鍵之后,可以設(shè)置一個(gè)計(jì)時(shí)器進(jìn)行倒計(jì)時(shí),計(jì)時(shí)長度為測試任務(wù)的長度。當(dāng)這個(gè)計(jì)時(shí)器計(jì)時(shí)結(jié)束時(shí),則測試任務(wù)結(jié)束,測試應(yīng)用上報(bào)測試任務(wù)結(jié)束時(shí)的時(shí)間。
或者,測試應(yīng)用還可以通過判斷媒體播放應(yīng)用的播放界面是否在當(dāng)前測試應(yīng)用的界面中來判斷測試任務(wù)是否結(jié)束。如果播放界面不在當(dāng)前測試應(yīng)用的界面中,則測試應(yīng)用判斷測試任務(wù)結(jié)束,上報(bào)測試任務(wù)結(jié)束時(shí)的時(shí)間。
根據(jù)本申請(qǐng)實(shí)施例,在所述媒體播放應(yīng)用為視頻播放應(yīng)用,所述測試任務(wù)為測試視頻的情況下,圖2或圖4的方法進(jìn)一步包括:
在播放測試任務(wù)的過程中,獲取并上報(bào)測試視頻的域名系統(tǒng)解析時(shí)間、與測試視頻所在服務(wù)器之間為建立傳輸控制協(xié)議tcp鏈接進(jìn)行的tcp三次握手所用的時(shí)間、從建立tcp鏈接到獲取到測試視頻的第一個(gè)視頻數(shù)據(jù)包的時(shí)間。
這樣,可以從網(wǎng)絡(luò)層的角度進(jìn)一步測試視頻播放應(yīng)用在播放視頻時(shí)的每一步耗時(shí),從而可以提供更為精準(zhǔn)的數(shù)據(jù),用于供研發(fā)人員優(yōu)化視頻播放應(yīng)用使用。
相應(yīng)地,本申請(qǐng)實(shí)施例提供了一種媒體播放質(zhì)量測試方法,用于服務(wù)器端。
圖5所示為本申請(qǐng)實(shí)施例的一種媒體播放質(zhì)量測試方法的流程圖。如圖4所示,該方法包括以下步驟:
步驟501:向客戶端發(fā)送測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù)。
服務(wù)器端可以預(yù)先配置好測試任務(wù),比如配置測試任務(wù)對(duì)應(yīng)的視頻名、所屬出品方、拉起的路徑、清晰度、播放時(shí)長等。
當(dāng)用戶在終端設(shè)備上打開測試應(yīng)用之后,服務(wù)器可以從要測試的媒體播放應(yīng)用提供的媒體內(nèi)容中選擇測試任務(wù),例如一段電視劇視頻,供媒體播放應(yīng)用進(jìn)行播放。對(duì)于一個(gè)媒體播放應(yīng)用,服務(wù)器端可以預(yù)先收集該媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如各種控件的描述,包括控件的標(biāo)識(shí)(id)。然后在下發(fā)測試任務(wù)時(shí),同時(shí)將控件數(shù)據(jù)下發(fā)給終端設(shè)備。這些控件例如包括:緩沖控件、進(jìn)度條控件、播放控件、錯(cuò)誤提示控件等等。這樣,測試應(yīng)用可以知道需要上報(bào)哪些控件的事件數(shù)據(jù)。
步驟502:在所述媒體播放應(yīng)用在所述客戶端播放所述測試任務(wù)的過程中,從所述客戶端接收客戶端根據(jù)所述控件數(shù)據(jù)獲取的媒體播放應(yīng)用的當(dāng)前播放界面中的控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,接收媒體播放應(yīng)用的當(dāng)前播放界面中控件的事件數(shù)據(jù)例如包括:
播放控件出現(xiàn)的時(shí)間點(diǎn)、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長(首次加載)、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、除首次加載和拖動(dòng)情況造成的緩沖之外緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放錯(cuò)誤提示控件的出現(xiàn),等等。
其中,播放控件例如是當(dāng)用戶點(diǎn)擊圖3a中的播放按鍵304之后,在終端設(shè)備的屏幕上出現(xiàn)媒體播放應(yīng)用的播放界面的同時(shí)出現(xiàn)的。隨著測試任務(wù)的播放,這個(gè)播放控件會(huì)自動(dòng)消失。
在播放控件顯示之后,有可能馬上出現(xiàn)緩沖控件,提示當(dāng)前測試任務(wù)正在緩沖中,當(dāng)緩沖控件消失時(shí),則測試任務(wù)便開始出現(xiàn),例如真正出現(xiàn)視頻畫面。
在播放測試任務(wù)的過程中,用戶可能會(huì)拖動(dòng)進(jìn)度條,在停止拖動(dòng)進(jìn)度條后,一般測試任務(wù)會(huì)再次緩沖,這時(shí),也會(huì)出現(xiàn)緩沖控件,當(dāng)這個(gè)緩沖控件消失后,則從進(jìn)度條拖動(dòng)后的時(shí)間點(diǎn)繼續(xù)播放測試任務(wù)。
除了上述的首次緩沖和因?yàn)檫M(jìn)度條的拖動(dòng)而產(chǎn)生的緩沖之外,在測試任務(wù)中也可能會(huì)因?yàn)槠渌虺霈F(xiàn)緩沖,同樣,緩沖控件會(huì)出現(xiàn)和消失。
在測試任務(wù)的播放過程中,由于網(wǎng)絡(luò)或者其他原因,可能會(huì)出現(xiàn)播放錯(cuò)誤,此時(shí)會(huì)有播放錯(cuò)誤提示控件。
服務(wù)器在所述媒體播放應(yīng)用在所述客戶端播放所述測試任務(wù)的過程中,實(shí)時(shí)從所述客戶端接收客戶端根據(jù)所述控件數(shù)據(jù)獲取的媒體播放應(yīng)用的當(dāng)前播放界面中的控件的事件數(shù)據(jù)。
步驟503:處理控件的事件數(shù)據(jù),分析在測試任務(wù)的播放過程中,媒體播放應(yīng)用的播放界面中的控件的狀態(tài),得到媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果。
根據(jù)本申請(qǐng)實(shí)施例,服務(wù)器端對(duì)接收到的事件數(shù)據(jù)進(jìn)行以下處理:
服務(wù)器利用媒體播放應(yīng)用的播放界面中播放控件出現(xiàn)的時(shí)間、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,計(jì)算首次加載時(shí)長。
服務(wù)器利用媒體播放應(yīng)用的播放界面中緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,計(jì)算從播放界面中出現(xiàn)媒體內(nèi)容到測試任務(wù)播放結(jié)束期間,除了播放界面中響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)時(shí)間長度之外(二次緩沖),緩沖控件總的出現(xiàn)時(shí)間長度和緩沖次數(shù)。
例如,在用戶點(diǎn)擊播放按鍵304后,第一次緩沖了2秒(loading時(shí)長)才首次播放一個(gè)視頻,然后播放了10秒后出現(xiàn)了緩沖,等待了2秒后緩沖完繼續(xù)出現(xiàn)視頻畫面播放,再播放了30秒后又出現(xiàn)了緩沖,緩沖了5秒后繼續(xù)播放至視頻結(jié)束,這個(gè)過程的二次緩沖了兩次,二次緩沖總時(shí)長為2+5=7秒。另外,根據(jù)這個(gè)例子,媒體播放應(yīng)用在播放過程中卡頓了兩次。
服務(wù)器利用媒體播放應(yīng)用的播放界面中播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,計(jì)算播放界面中播放進(jìn)度條控件被拖動(dòng)后顯示的緩沖控件的出現(xiàn)的時(shí)間長度。
服務(wù)器利用媒體播放應(yīng)用的播放界面中播放錯(cuò)誤提示控件的出現(xiàn)事件,計(jì)算播放界面中的播放錯(cuò)誤提示控件的出現(xiàn)次數(shù)。
步驟504:將所述播放質(zhì)量測試結(jié)果下發(fā)給客戶端。
服務(wù)器可以將上述統(tǒng)計(jì)數(shù)據(jù)以列表或者圖表的形式提供給終端設(shè)備的用戶或者給服務(wù)器端的研發(fā)人員。
通過本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法,自動(dòng)監(jiān)測各媒體播放應(yīng)用在播放過程中各種指標(biāo)數(shù)據(jù),不會(huì)干涉任何媒體播放應(yīng)用完整的播放流程。因?yàn)闇y試數(shù)據(jù)是由同一個(gè)測試工具采集,采用同一種算法,保證了數(shù)據(jù)的真實(shí)可靠以及公正。因此,可以提供媒體播放應(yīng)用的播放體驗(yàn)排名,客觀公正地評(píng)價(jià)各類媒體播放應(yīng)用的首次緩沖、卡頓等指標(biāo),并最終根據(jù)算法模型得到播放體驗(yàn)的排名,給業(yè)界提供一個(gè)參考及改進(jìn)的標(biāo)準(zhǔn)。另外,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法具有數(shù)據(jù)自動(dòng)采集分析能力:實(shí)現(xiàn)播放質(zhì)量數(shù)據(jù)自動(dòng)化收集,并可以按照用戶的地區(qū)、媒體的清晰度、時(shí)間(日、月)等多種維度的數(shù)據(jù)分析及展現(xiàn)。除此之外,通過自動(dòng)收集的數(shù)據(jù)實(shí)現(xiàn)按照日、月維度完成競品的播放質(zhì)量得分排名和月度趨勢變化,同時(shí)結(jié)合得分給到具體影響質(zhì)量得分的原因和得分靠后的5個(gè)城市,完成日?qǐng)?bào)月報(bào)信息精準(zhǔn)推送。準(zhǔn)確分析各項(xiàng)播放指標(biāo)在不同時(shí)段、不同地區(qū)的差異,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法可以精確定位播放質(zhì)量影響原因,從而提供給開發(fā)、運(yùn)維團(tuán)隊(duì)、產(chǎn)品團(tuán)隊(duì)有針對(duì)性的做出優(yōu)化。
圖6為根據(jù)本申請(qǐng)實(shí)施例的處理控件的事件數(shù)據(jù)過程流程圖。如圖6所示,處理控件的事件數(shù)據(jù)包括以下步驟:
步驟601:遍歷數(shù)據(jù)庫中未處理的客戶端上報(bào)的控件的事件數(shù)據(jù)。
因?yàn)榭蛻舳说臏y試應(yīng)用所上報(bào)的控件的事件數(shù)據(jù)都是按時(shí)間順序存儲(chǔ)在服務(wù)器端的數(shù)據(jù)庫中,服務(wù)器定期對(duì)這些控件的事件數(shù)據(jù)依次進(jìn)行處理。
步驟602:判斷一條控件的事件數(shù)據(jù)是否有測試任務(wù)的開始時(shí)間。
例如,服務(wù)器通過判斷一條控件的事件數(shù)據(jù)中是否包含有“begin_time”的字段,來判斷該條控件的事件數(shù)據(jù)是否有測試任務(wù)的開始時(shí)間。這個(gè)“begin_time”的字段值例如是當(dāng)用戶點(diǎn)擊圖3a中的播放按鍵304之后,開始出現(xiàn)播放控件時(shí)上報(bào)的時(shí)間點(diǎn)。如果一條控件的事件數(shù)據(jù)中有“begin_time”的字段,則表示開始一個(gè)新的測試任務(wù)的上報(bào),然后服務(wù)器執(zhí)行步驟603。如果沒有,則表示該控件的事件數(shù)據(jù)不屬于一個(gè)新的測試任務(wù),可能是屬于一個(gè)已有的測試任務(wù),服務(wù)器執(zhí)行步驟604。
步驟603,插入一條新的測試任務(wù)處理表項(xiàng),并分配一個(gè)任務(wù)處理表項(xiàng)標(biāo)識(shí)。
例如,服務(wù)器可以新建一條標(biāo)識(shí)為“result1”的測試任務(wù)處理表項(xiàng)。后續(xù)若有其他測試任務(wù),可以連續(xù)編號(hào)其他測試任務(wù)的任務(wù)處理表項(xiàng)標(biāo)識(shí),例如:“result2”、“result3”等等。
在每個(gè)測試任務(wù)處理表項(xiàng)中包含有一個(gè)測試任務(wù)的測試結(jié)果的數(shù)據(jù)分量,例如:首次緩沖時(shí)長、二次緩沖時(shí)長/次數(shù)、錯(cuò)誤次數(shù)等等。
步驟604,根據(jù)該條控件的事件數(shù)據(jù)中的測試任務(wù)的標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),找到相應(yīng)的測試任務(wù)處理表項(xiàng),使用該條控件的事件數(shù)據(jù)更新相應(yīng)的測試任務(wù)處理表項(xiàng)。
例如,控件的事件數(shù)據(jù)表示的是緩沖控件出現(xiàn)的時(shí)長,帶有相應(yīng)的任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),則服務(wù)器可以通過任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí)在數(shù)據(jù)庫中查找相應(yīng)的測試任務(wù)處理表項(xiàng),在找到相應(yīng)的測試任務(wù)處理表項(xiàng)之后,如果該測試任務(wù)表項(xiàng)中已經(jīng)記載有緩沖控件出現(xiàn)的時(shí)長,則可以在記載的時(shí)長上加上當(dāng)前的時(shí)長,進(jìn)行更新,如果沒有,則可以新建一條關(guān)于緩沖控件時(shí)長的數(shù)據(jù)分量。
如果一條控件的事件數(shù)據(jù)既沒有開始時(shí)間“begin_time”,也沒有任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),則表示該條事件數(shù)據(jù)所屬的測試任務(wù)之前的包含有開始時(shí)間的事件數(shù)據(jù)還未傳輸?shù)椒?wù)器端或者丟失,則可以新建一條測試任務(wù)處理表項(xiàng),保留其中的開始時(shí)間字段為空。若后續(xù)收到包含有開始時(shí)間的事件數(shù)據(jù),則可以添加到這個(gè)新建的測試任務(wù)處理表項(xiàng)中。
如果一條控件的事件數(shù)據(jù)既有開始時(shí)間“begin_time”,也有任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),則表示該測試任務(wù)可能是之前已上報(bào)過數(shù)據(jù),中間可能又退出測試任務(wù)的情況,這時(shí),可以根據(jù)任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí)查找到對(duì)應(yīng)的測試任務(wù)處理表項(xiàng),關(guān)閉原有的測試任務(wù)處理表項(xiàng),新建一條測試任務(wù)表項(xiàng)。
根據(jù)本申請(qǐng)實(shí)施例,在所述媒體播放應(yīng)用為視頻播放應(yīng)用,所述測試任務(wù)為測試視頻的情況下,圖5的方法進(jìn)一步包括:
接收終端設(shè)備上報(bào)的測試視頻的域名系統(tǒng)解析時(shí)間、與測試視頻所在服務(wù)器之間為建立傳輸控制協(xié)議tcp鏈接進(jìn)行的tcp三次握手所用的時(shí)間、從建立tcp鏈接到獲取到測試視頻的第一個(gè)視頻數(shù)據(jù)包的時(shí)間。
這樣,可以從網(wǎng)絡(luò)層的角度進(jìn)一步測試視頻播放應(yīng)用在播放視頻時(shí)的每一步耗時(shí),從而可以提供更為精準(zhǔn)的數(shù)據(jù),用于供研發(fā)人員優(yōu)化視頻播放應(yīng)用使用。
本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法分析了移動(dòng)終端設(shè)備的媒體播放應(yīng)用的播放控件,該方案也同樣適用于其他平臺(tái),諸如pc客戶端、網(wǎng)頁端、tv端等。
與前述的方法實(shí)施例對(duì)應(yīng),本申請(qǐng)實(shí)施例提供了媒體播放質(zhì)量測試裝置。
圖7為根據(jù)本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置的示意圖。其中該裝置700包括以下模塊:
控件數(shù)據(jù)獲取模塊701,用于獲取測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,當(dāng)用戶打開終端設(shè)備,例如手機(jī)上的測試應(yīng)用,測試媒體播放應(yīng)用時(shí),控件數(shù)據(jù)獲取模塊701會(huì)展示一個(gè)測試界面。測試應(yīng)用例如是安裝在安卓(android)終端設(shè)備上。在測試界面中,控件數(shù)據(jù)獲取模塊701會(huì)例如通過接口startactivity自動(dòng)加載從要測試的媒體播放應(yīng)用所提供的媒體內(nèi)容中選擇的測試任務(wù),例如一段電視劇視頻,供媒體播放應(yīng)用進(jìn)行播放。對(duì)于一個(gè)媒體播放應(yīng)用,服務(wù)器端可以預(yù)先收集該媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如各種控件的描述,其中包括控件標(biāo)識(shí)(id)。然后在下發(fā)測試任務(wù)時(shí),同時(shí)將播放界面的控件數(shù)據(jù)下發(fā)給終端設(shè)備。這些控件例如包括:緩沖控件、進(jìn)度條控件、播放控件、錯(cuò)誤提示控件等等。這樣,終端設(shè)備可以知道需要上報(bào)哪些控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,當(dāng)要測試多個(gè)媒體播放應(yīng)用時(shí),可以使用這多個(gè)媒體播放應(yīng)用都提供的相同的媒體內(nèi)容作為測試任務(wù)。例如,若這多個(gè)媒體播放應(yīng)用都提供某個(gè)電視劇的某一集視頻,便可以使用該電視劇的該集視頻。這樣的播放質(zhì)量比較結(jié)果會(huì)更直觀。
測試任務(wù)播放模塊702,用于運(yùn)行所述媒體播放應(yīng)用,以對(duì)所述測試任務(wù)進(jìn)行播放。
例如,當(dāng)用戶在測試界面中點(diǎn)擊測試任務(wù)的播放按鍵時(shí),測試任務(wù)播放模塊702便可以運(yùn)行要測試的媒體播放應(yīng)用,播放測試任務(wù)。
在有多個(gè)測試任務(wù),例如有多個(gè)要測試的媒體播放應(yīng)用的情況下,測試任務(wù)播放模塊702在使用一個(gè)媒體播放應(yīng)用播放完一個(gè)測試任務(wù)之后,可以自動(dòng)開始使用下一個(gè)媒體播放應(yīng)用播放下一個(gè)測試任務(wù)。
控件事件數(shù)據(jù)獲取模塊703,用于在所述測試任務(wù)的播放過程中,根據(jù)所獲取的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),拉取所述媒體播放應(yīng)用的當(dāng)前播放界面中的控件信息,并根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,在測試任務(wù)的播放過程中,控件事件數(shù)據(jù)獲取模塊703會(huì)根據(jù)控件數(shù)據(jù)獲取模塊701從服務(wù)器獲取的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如,控件id,通過安卓系統(tǒng)提供的用于捕捉屏幕狀態(tài)的開放接口,例如findaccessiblitynodeinfosbyviewid,實(shí)時(shí)查找當(dāng)前播放界面中是否有與播放界面的控件數(shù)據(jù)對(duì)應(yīng)的控件信息,如有則對(duì)其進(jìn)行拉取,并根據(jù)拉取的控件信息,獲取當(dāng)前播放界面中控件的事件數(shù)據(jù)。這些控件例如包括:緩沖控件、進(jìn)度條控件、播放控件、錯(cuò)誤提示控件等等。所拉取的控件信息為由控件的各個(gè)節(jié)點(diǎn)構(gòu)成的控件樹。例如,緩沖控件的控件樹為“com.tencent.qqlive:id/player_tips_loading_layout”,其中的“com”為根節(jié)點(diǎn)、“tencent”、“qqlive:id”、“player_tips_loading_layout”為子節(jié)點(diǎn)。
然后,測試應(yīng)用根據(jù)拉取的控件信息獲取當(dāng)前播放界面中的控件的事件數(shù)據(jù)。控件的事件數(shù)據(jù)例如包括:控件的出現(xiàn)、消失、被拖動(dòng)等。
控件事件數(shù)據(jù)上報(bào)模塊704,用于向服務(wù)器上報(bào)當(dāng)前播放界面中的所述控件的事件數(shù)據(jù)。
當(dāng)控件事件數(shù)據(jù)獲取模塊703獲取到當(dāng)前播放界面中的控件的事件數(shù)據(jù)之后,控件事件數(shù)據(jù)上報(bào)模塊704會(huì)將獲取的媒體播放應(yīng)用的播放界面中控件的事件數(shù)據(jù)通過http協(xié)議上報(bào)給服務(wù)器。
控件的事件例如用“event_name”字段表示。例如,對(duì)于緩沖控件的事件,“event_name”字段中的值為“com.tencent.qqlive:id/player_tips_loading_layout”。例如,“start_time”字段和“end_time”字段表示控件出現(xiàn)和結(jié)束的時(shí)間點(diǎn),“time_interval”字段表示控件出現(xiàn)的時(shí)長。
另外,除了控件事件之外,控件事件數(shù)據(jù)上報(bào)模塊704也可以上報(bào)測試任務(wù)開始和結(jié)束的時(shí)間點(diǎn),例如通過“begin_time”字段和“stop_time”字段進(jìn)行上報(bào)。
根據(jù)本申請(qǐng)實(shí)施例,在上報(bào)當(dāng)前播放界面中控件的事件數(shù)據(jù)時(shí),控件事件數(shù)據(jù)上報(bào)模塊704可以進(jìn)一步上報(bào)終端設(shè)備的信息,例如用于識(shí)別終端設(shè)備的終端設(shè)備標(biāo)識(shí),“guid”,每一個(gè)終端設(shè)備對(duì)應(yīng)唯一的終端設(shè)備標(biāo)識(shí)。另外,還可以上報(bào)測試任務(wù)的信息,例如用于識(shí)別測試任務(wù)的測試任務(wù)標(biāo)識(shí),“task_id”,每一個(gè)測試任務(wù)對(duì)應(yīng)唯一的測試任務(wù)標(biāo)識(shí)。
展示模塊705,用于接收服務(wù)器根據(jù)所述控件的事件數(shù)據(jù)得到的媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果,進(jìn)行顯示。
根據(jù)本申請(qǐng)實(shí)施例,在終端設(shè)備的控件事件數(shù)據(jù)上報(bào)模塊704將當(dāng)前播放界面中的控件的事件數(shù)據(jù)上報(bào)到服務(wù)器之后,服務(wù)器對(duì)其進(jìn)行行處理,得到當(dāng)前媒體播放應(yīng)用的播放質(zhì)量,然后將其返回給終端設(shè)備上的測試應(yīng)用。測試應(yīng)用接收之后,展示模塊705可以以列表或者圖表的形式展示媒體播放應(yīng)用的各項(xiàng)質(zhì)量指標(biāo)和/或得分。
通過本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置,可以提供媒體播放應(yīng)用的播放體驗(yàn)排名,客觀公正地評(píng)價(jià)各類媒體播放應(yīng)用的首次緩沖、卡頓等指標(biāo),并最終根據(jù)算法模型得到播放體驗(yàn)的排名,給業(yè)界提供一個(gè)參考及改進(jìn)的標(biāo)準(zhǔn)。另外,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法具有數(shù)據(jù)自動(dòng)采集分析能力:實(shí)現(xiàn)播放質(zhì)量數(shù)據(jù)自動(dòng)化收集,并可以按照用戶的地區(qū)、媒體的清晰度、時(shí)間(日、月)等多種維度的數(shù)據(jù)分析及展現(xiàn)。除此之外,通過自動(dòng)收集的數(shù)據(jù)實(shí)現(xiàn)按照日、月維度完成競品的播放質(zhì)量得分排名和月度趨勢變化,同時(shí)結(jié)合得分給到具體影響質(zhì)量得分的原因和得分靠后的5個(gè)城市,完成日?qǐng)?bào)月報(bào)信息精準(zhǔn)推送。準(zhǔn)確分析各項(xiàng)播放指標(biāo)在不同時(shí)段、不同地區(qū)的差異,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法可以精確定位播放質(zhì)量影響原因,從而提供給開發(fā)、運(yùn)維團(tuán)隊(duì)、產(chǎn)品團(tuán)隊(duì)有針對(duì)性的做出優(yōu)化。
圖8為根據(jù)本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置中的控件事件數(shù)據(jù)獲取模塊示意圖。其中,控件事件數(shù)據(jù)獲取模塊703包括:
播放界面監(jiān)控模塊801,用于監(jiān)控播放界面。
具體地,播放界面監(jiān)控模塊801實(shí)時(shí)對(duì)媒體播放應(yīng)用的當(dāng)前播放界面進(jìn)行監(jiān)控。
控件判斷模塊802,用于判斷當(dāng)前播放界面中是否有控件。如果否,則返回到播放界面監(jiān)控模塊801,繼續(xù)監(jiān)控播放界面;如果是,則進(jìn)行到控件信息拉取模塊803進(jìn)行處理。
例如,控件判斷模塊802可以判斷當(dāng)前播放界面中是否有控件樹,控件樹包括描述當(dāng)前播放界面中的控件的各個(gè)節(jié)點(diǎn)。如果有控件樹,則由控件信息拉取模塊803進(jìn)行拉取,如果沒有,則繼續(xù)由播放界面監(jiān)控模塊801監(jiān)控播放界面。
控件信息拉取和比較模塊803,用于拉取當(dāng)前播放界面中的控件信息,比較所拉取的控件信息和所述控件數(shù)據(jù)。
例如,控件信息拉取和比較模塊803可以拉取當(dāng)前播放界面中的所有控件的控件樹,然后比較所拉取的控件樹和服務(wù)器下發(fā)的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如控件id。
判斷模塊804,用于判斷當(dāng)前播放界面中是否存在控件數(shù)據(jù)所表示的控件;如果否,則返回到播放界面監(jiān)控模塊801,繼續(xù)監(jiān)控播放界面;如果是,則進(jìn)行事件獲取模塊805的處理。
在控件信息拉取和比較模塊803進(jìn)行上述比較之后,判斷模塊804判斷在當(dāng)前播放界面中是否有要上報(bào)的控件及其事件。如果雖然有控件,但當(dāng)前播放界面中的控件和服務(wù)器下發(fā)的控件數(shù)據(jù)不匹配,則不需要上報(bào)當(dāng)前播放界面中的控件,測試應(yīng)用繼續(xù)監(jiān)控播放界面,如果有控件,而且當(dāng)前播放界面中的控件和服務(wù)器下發(fā)的控件數(shù)據(jù)相匹配,則當(dāng)前播放界面中的控件是需要上報(bào)的控件,進(jìn)行到事件獲取模塊805的處理。
事件獲取模塊805,用于獲取當(dāng)前播放界面中的所述控件數(shù)據(jù)所表示的控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,控件的事件數(shù)據(jù)例如包括:播放控件出現(xiàn)的時(shí)間點(diǎn)、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長(首次加載)、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、除首次加載和拖動(dòng)情況造成的緩沖之外緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放錯(cuò)誤提示控件的出現(xiàn),等等。
其中,播放控件例如是當(dāng)用戶點(diǎn)擊播放按鍵之后,在終端設(shè)備的屏幕上出現(xiàn)媒體播放應(yīng)用的播放界面的同時(shí)出現(xiàn)的。隨著測試任務(wù)的播放,這個(gè)播放控件會(huì)自動(dòng)消失。
在播放控件顯示之后,有可能馬上出現(xiàn)緩沖控件,提示當(dāng)前測試任務(wù)正在緩沖中,當(dāng)緩沖控件消失時(shí),則測試任務(wù)便開始出現(xiàn),例如真正出現(xiàn)視頻畫面。
在播放測試任務(wù)的過程中,用戶可能會(huì)拖動(dòng)進(jìn)度條,在停止拖動(dòng)進(jìn)度條后,一般測試任務(wù)會(huì)再次緩沖,這時(shí),也會(huì)出現(xiàn)緩沖控件,當(dāng)這個(gè)緩沖控件消失后,則從進(jìn)度條拖動(dòng)后的時(shí)間點(diǎn)繼續(xù)播放測試任務(wù)。
除了上述的首次緩沖和因?yàn)檫M(jìn)度條的拖動(dòng)而產(chǎn)生的緩沖之外,在測試任務(wù)中也可能會(huì)因?yàn)槠渌虺霈F(xiàn)緩沖,同樣,緩沖控件會(huì)出現(xiàn)和消失。
在測試任務(wù)的播放過程中,由于網(wǎng)絡(luò)或者其他原因,可能會(huì)出現(xiàn)播放錯(cuò)誤,此時(shí)會(huì)有播放錯(cuò)誤提示控件。
控件事件數(shù)據(jù)獲取模塊703實(shí)時(shí)獲取上述的控件事件,結(jié)合起來由控件事件數(shù)據(jù)上報(bào)模塊704上報(bào)給服務(wù)器。
例如,獲取并上報(bào)播放界面中播放控件出現(xiàn)的時(shí)間點(diǎn)、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,用于由服務(wù)器計(jì)算計(jì)算首次加載時(shí)長。
獲取并上報(bào)播放界面中緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,用于由服務(wù)器計(jì)算從播放界面中出現(xiàn)媒體內(nèi)容到測試任務(wù)播放結(jié)束期間,除了播放界面中響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)時(shí)間長度之外(二次緩沖),緩沖控件總的出現(xiàn)時(shí)間長度和總次數(shù)。
例如,在用戶點(diǎn)擊播放按鍵后,第一次緩沖了2秒(loading時(shí)長)才首次播放一個(gè)視頻,然后播放了10秒后出現(xiàn)了緩沖,等待了2秒后緩沖完繼續(xù)出現(xiàn)視頻畫面播放,再播放了30秒后又出現(xiàn)了緩沖,緩沖了5秒后繼續(xù)播放至視頻結(jié)束,這個(gè)過程的二次緩沖了兩次,二次緩沖時(shí)長了2+5=7秒。另外,根據(jù)這個(gè)例子,媒體播放應(yīng)用在播放過程中卡頓了兩次。
獲取并上報(bào)播放界面中播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,用于由服務(wù)器計(jì)算播放界面中播放進(jìn)度條控件被拖動(dòng)后顯示的緩沖控件的出現(xiàn)的時(shí)間長度;
獲取并上報(bào)播放界面中播放錯(cuò)誤提示控件的出現(xiàn)事件,用于由服務(wù)器計(jì)算播放界面中的播放錯(cuò)誤提示控件的出現(xiàn)次數(shù)。
根據(jù)本申請(qǐng)實(shí)施例,上報(bào)控件事件數(shù)據(jù)之外,還可以上報(bào)測試任務(wù)結(jié)束的時(shí)間點(diǎn)。
在用戶點(diǎn)擊播放測試任務(wù)的播放按鍵之后,可以設(shè)置一個(gè)計(jì)時(shí)器進(jìn)行倒計(jì)時(shí),計(jì)時(shí)長度為測試任務(wù)的長度。當(dāng)這個(gè)計(jì)時(shí)器計(jì)時(shí)結(jié)束時(shí),則測試任務(wù)結(jié)束,上報(bào)測試任務(wù)結(jié)束時(shí)的時(shí)間。
還可以通過判斷媒體播放應(yīng)用的播放界面是否在當(dāng)前測試應(yīng)用的界面中來判斷測試任務(wù)是否結(jié)束。如果播放界面不在當(dāng)前測試應(yīng)用的界面中,則判斷測試任務(wù)結(jié)束,上報(bào)測試任務(wù)結(jié)束時(shí)的時(shí)間。
根據(jù)本申請(qǐng)實(shí)施例,在所述媒體播放應(yīng)用為視頻播放應(yīng)用,所述測試任務(wù)為測試視頻的情況下,所述控件事件數(shù)據(jù)獲取模塊703和控件事件數(shù)據(jù)上報(bào)模塊704進(jìn)一步用于:
在播放測試任務(wù)的過程中,獲取并上報(bào)測試視頻的域名系統(tǒng)解析時(shí)間、與測試視頻所在服務(wù)器之間為建立傳輸控制協(xié)議tcp鏈接進(jìn)行的tcp三次握手所用的時(shí)間、從建立tcp鏈接到獲取到測試視頻的第一個(gè)視頻數(shù)據(jù)包的時(shí)間。
這樣,可以從網(wǎng)絡(luò)層的角度進(jìn)一步測試視頻播放應(yīng)用在播放視頻時(shí)的每一步耗時(shí),從而可以提供更為精準(zhǔn)的數(shù)據(jù),用于供研發(fā)人員優(yōu)化視頻播放應(yīng)用使用。
相應(yīng)地,圖9為本申請(qǐng)實(shí)施例提供的另一種媒體播放質(zhì)量測試裝置示意圖。該裝置900在服務(wù)器上實(shí)現(xiàn),包括下述模塊:
下發(fā)模塊901,用于向客戶端發(fā)送測試任務(wù)和預(yù)設(shè)的要測試的媒體播放應(yīng)用的播放界面的控件數(shù)據(jù)。
服務(wù)器端可以預(yù)先配置好測試任務(wù),比如配置測試任務(wù)對(duì)應(yīng)的視頻名、所屬出品方、拉起的路徑、清晰度、播放時(shí)長等。
當(dāng)用戶在終端設(shè)備上打開測試應(yīng)用之后,下發(fā)模塊901可以從要測試的媒體播放應(yīng)用提供的媒體內(nèi)容中選擇測試任務(wù),例如一段電視劇視頻,供媒體播放應(yīng)用進(jìn)行播放。對(duì)于一個(gè)媒體播放應(yīng)用,服務(wù)器端可以預(yù)先收集該媒體播放應(yīng)用的播放界面的控件數(shù)據(jù),例如各種控件的描述,包括控件的標(biāo)識(shí)(id)。然后在下發(fā)模塊901下發(fā)測試任務(wù)時(shí),同時(shí)將控件數(shù)據(jù)下發(fā)給終端設(shè)備。這些控件例如包括:緩沖控件、進(jìn)度條控件、播放控件等等。這樣,測試應(yīng)用可以知道需要上報(bào)哪些控件的事件數(shù)據(jù)。
接收模塊902,用于在所述媒體播放應(yīng)用在所述客戶端播放所述測試任務(wù)的過程中,從所述客戶端接收客戶端根據(jù)所述控件數(shù)據(jù)獲取的媒體播放應(yīng)用的當(dāng)前播放界面中的控件的事件數(shù)據(jù)。
根據(jù)本申請(qǐng)實(shí)施例,接收模塊902接收媒體播放應(yīng)用的當(dāng)前播放界面中控件的事件數(shù)據(jù)例如包括:
播放控件出現(xiàn)的時(shí)間點(diǎn)、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長(首次加載)、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、除首次加載和拖動(dòng)情況造成的緩沖之外緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放錯(cuò)誤提示控件的出現(xiàn),等等。
其中,播放控件例如是當(dāng)用戶點(diǎn)擊播放按鍵之后,在終端設(shè)備的屏幕上出現(xiàn)媒體播放應(yīng)用的播放界面的同時(shí)出現(xiàn)的。隨著測試任務(wù)的播放,這個(gè)播放控件會(huì)自動(dòng)消失。
在播放控件顯示之后,有可能馬上出現(xiàn)緩沖控件,提示當(dāng)前測試任務(wù)正在緩沖中,當(dāng)緩沖控件消失時(shí),則測試任務(wù)便開始出現(xiàn),例如真正出現(xiàn)視頻畫面。
在播放測試任務(wù)的過程中,用戶可能會(huì)拖動(dòng)進(jìn)度條,在停止拖動(dòng)進(jìn)度條后,一般測試任務(wù)會(huì)再次緩沖,這時(shí),也會(huì)出現(xiàn)緩沖控件,當(dāng)這個(gè)緩沖控件消失后,則從進(jìn)度條拖動(dòng)后的時(shí)間點(diǎn)繼續(xù)播放測試任務(wù)。
除了上述的首次緩沖和因?yàn)檫M(jìn)度條的拖動(dòng)而產(chǎn)生的緩沖之外,在測試任務(wù)中也可能會(huì)因?yàn)槠渌虺霈F(xiàn)緩沖,同樣,緩沖控件會(huì)出現(xiàn)和消失。
在測試任務(wù)的播放過程中,由于網(wǎng)絡(luò)或者其他原因,可能會(huì)出現(xiàn)播放錯(cuò)誤,此時(shí)會(huì)有播放錯(cuò)誤提示控件。
接收模塊902實(shí)時(shí)接收測試應(yīng)用上報(bào)的上述控件事件。
處理和分析模塊903,處理控件的事件數(shù)據(jù),得到媒體播放應(yīng)用的播放質(zhì)量測試結(jié)果。
根據(jù)本申請(qǐng)實(shí)施例,處理模塊903對(duì)接收到的事件數(shù)據(jù)進(jìn)行以下處理:
處理和分析模塊903利用媒體播放應(yīng)用的播放界面中播放控件出現(xiàn)的時(shí)間、緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,計(jì)算首次加載時(shí)長。
處理和分析模塊903利用媒體播放應(yīng)用的播放界面中緩沖控件首次出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束的時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長、緩沖控件出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,計(jì)算從播放界面中出現(xiàn)媒體內(nèi)容到測試任務(wù)播放結(jié)束期間,除了播放界面中響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)時(shí)間長度之外(二次緩沖),緩沖控件總的出現(xiàn)時(shí)間長度和緩沖次數(shù)。
例如,在用戶點(diǎn)擊播放按鍵后,第一次緩沖了2秒(loading時(shí)長)才首次播放一個(gè)視頻,然后播放了10秒后出現(xiàn)了緩沖,等待了2秒后緩沖完繼續(xù)出現(xiàn)視頻畫面播放,再播放了30秒后又出現(xiàn)了緩沖,緩沖了5秒后繼續(xù)播放至視頻結(jié)束,這個(gè)過程的二次緩沖了兩次,二次緩沖總時(shí)長為2+5=7秒。另外,根據(jù)這個(gè)例子,媒體播放應(yīng)用在播放過程中卡頓了兩次。
處理和分析模塊903利用媒體播放應(yīng)用的播放界面中播放進(jìn)度條控件的拖動(dòng)的開始和結(jié)束時(shí)間點(diǎn)、響應(yīng)于播放進(jìn)度條的拖動(dòng)事件而出現(xiàn)的緩沖控件的出現(xiàn)和消失的時(shí)間點(diǎn)及出現(xiàn)的時(shí)長,計(jì)算播放界面中播放進(jìn)度條控件被拖動(dòng)后顯示的緩沖控件的出現(xiàn)的時(shí)間長度。
處理和分析模塊903利用媒體播放應(yīng)用的播放界面中播放錯(cuò)誤提示控件的出現(xiàn)事件,計(jì)算播放界面中的播放錯(cuò)誤提示控件的出現(xiàn)次數(shù)。
之后,服務(wù)器可以通過下發(fā)模塊901,將所述播放質(zhì)量測試結(jié)果下發(fā)給客戶端。
例如服務(wù)器可以將上述統(tǒng)計(jì)數(shù)據(jù)以列表或者圖表的形式提供給終端設(shè)備的用戶或者給服務(wù)器端的研發(fā)人員。
通過本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置,自動(dòng)監(jiān)測各媒體播放應(yīng)用在播放過程中各種指標(biāo)數(shù)據(jù),不會(huì)干涉任何媒體播放應(yīng)用完整的播放流程。因?yàn)闇y試數(shù)據(jù)是由同一個(gè)測試工具采集,采用同一種算法,保證了數(shù)據(jù)的真實(shí)可靠以及公正。因此,可以提供媒體播放應(yīng)用的播放體驗(yàn)排名,客觀公正地評(píng)價(jià)各類媒體播放應(yīng)用的首次緩沖、卡頓等指標(biāo),并最終根據(jù)算法模型得到播放體驗(yàn)的排名,給業(yè)界提供一個(gè)參考及改進(jìn)的標(biāo)準(zhǔn)。另外,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法具有數(shù)據(jù)自動(dòng)采集分析能力:實(shí)現(xiàn)播放質(zhì)量數(shù)據(jù)自動(dòng)化收集,并可以按照用戶的地區(qū)、媒體的清晰度、時(shí)間(日、月)等多種維度的數(shù)據(jù)分析及展現(xiàn)。除此之外,通過自動(dòng)收集的數(shù)據(jù)實(shí)現(xiàn)按照日、月維度完成競品的播放質(zhì)量得分排名和月度趨勢變化,同時(shí)結(jié)合得分給到具體影響質(zhì)量得分的原因和得分靠后的5個(gè)城市,完成日?qǐng)?bào)月報(bào)信息精準(zhǔn)推送。準(zhǔn)確分析各項(xiàng)播放指標(biāo)在不同時(shí)段、不同地區(qū)的差異,本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試方法可以精確定位播放質(zhì)量影響原因,從而提供給開發(fā)、運(yùn)維團(tuán)隊(duì)、產(chǎn)品團(tuán)隊(duì)有針對(duì)性的做出優(yōu)化。
圖10為根據(jù)本申請(qǐng)實(shí)施例的處理模塊903示意圖。如圖10所示,其包括:
事件數(shù)據(jù)遍歷模塊1001,用于遍歷數(shù)據(jù)庫中未處理的客戶端上報(bào)的事件數(shù)據(jù)。
因?yàn)榭蛻舳说臏y試應(yīng)用所上報(bào)的控件的事件數(shù)據(jù)都是按時(shí)間順序存儲(chǔ)在服務(wù)器端的數(shù)據(jù)庫中,事件數(shù)據(jù)遍歷模塊1001定期對(duì)這些控件的事件數(shù)據(jù)依次進(jìn)行處理。
開始時(shí)間判斷模塊1002,用于判斷一條控件的事件數(shù)據(jù)是否有測試任務(wù)的開始時(shí)間。
例如,服務(wù)器通過判斷一條控件的事件數(shù)據(jù)中是否包含有“begin_time”的字段,來判斷該條控件的事件數(shù)據(jù)是否有測試任務(wù)的開始時(shí)間。這個(gè)“begin_time”的字段值例如是當(dāng)用戶點(diǎn)擊播放按鍵之后,開始出現(xiàn)播放控件時(shí)上報(bào)的時(shí)間點(diǎn)。如果一條控件的事件數(shù)據(jù)中有“begin_time”的字段,則表示開始一個(gè)新的測試任務(wù)的上報(bào),然后轉(zhuǎn)到插入模塊1003進(jìn)行處理。如果沒有,則表示該控件的事件數(shù)據(jù)不屬于一個(gè)新的測試任務(wù),可能是屬于一個(gè)已有的測試任務(wù),則轉(zhuǎn)到更新模塊1004進(jìn)行處理。
插入模塊1003,用于在判斷事件數(shù)據(jù)有測試任務(wù)的開始時(shí)間時(shí),插入一條新的測試任務(wù)處理表項(xiàng),并分配一個(gè)任務(wù)處理表項(xiàng)標(biāo)識(shí)。
例如,插入模塊1003可以新建一條標(biāo)識(shí)為“result1”的測試任務(wù)處理表項(xiàng)。后續(xù)若有其他測試任務(wù),可以連續(xù)編號(hào)其他測試任務(wù)的任務(wù)處理表項(xiàng)標(biāo)識(shí),例如:“result2”、“result3”等等。
在每個(gè)測試任務(wù)處理表項(xiàng)中包含有一個(gè)測試任務(wù)的測試結(jié)果的數(shù)據(jù)分量,例如:首次緩沖時(shí)長、二次緩沖時(shí)長/次數(shù)、錯(cuò)誤次數(shù)等等。
更新模塊1004,用于在判斷控件的事件數(shù)據(jù)沒有測試任務(wù)的開始時(shí)間時(shí),根據(jù)該條控件的事件數(shù)據(jù)中的測試任務(wù)的標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),找到相應(yīng)的測試任務(wù)處理表項(xiàng),使用該條控件的事件數(shù)據(jù)更新相應(yīng)的測試任務(wù)處理表項(xiàng)。
例如,事件數(shù)據(jù)表示的是緩沖控件出現(xiàn)的時(shí)長,帶有相應(yīng)的任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),則服務(wù)器可以通過任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí)在數(shù)據(jù)庫中查找相應(yīng)的測試任務(wù)處理表項(xiàng),在找到相應(yīng)的測試任務(wù)處理表項(xiàng)之后,如果該測試任務(wù)表項(xiàng)中已經(jīng)記載有緩沖控件出現(xiàn)的時(shí)長,則可以在記載的時(shí)長上加上當(dāng)前的時(shí)長,進(jìn)行更新,如果沒有,則可以新建一條關(guān)于緩沖控件時(shí)長的數(shù)據(jù)分量。
如果一條控件的事件數(shù)據(jù)既沒有開始時(shí)間“begin_time”,也沒有任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),則表示該條事件數(shù)據(jù)所屬的測試任務(wù)之前的包含有開始時(shí)間的事件數(shù)據(jù)還未傳輸?shù)椒?wù)器端或者丟失,則可以新建一條測試任務(wù)處理表項(xiàng),保留其中的開始時(shí)間字段為空。若后續(xù)收到包含有開始時(shí)間的事件數(shù)據(jù),則可以添加到這個(gè)新建的測試任務(wù)處理表項(xiàng)中。
如果一條控件的事件數(shù)據(jù)既有開始時(shí)間“begin_time”,也有任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí),則表示該測試任務(wù)可能是之前已上報(bào)過數(shù)據(jù),中間可能又退出測試任務(wù)的情況,這時(shí),可以根據(jù)任務(wù)標(biāo)識(shí)和終端設(shè)備標(biāo)識(shí)查找到對(duì)應(yīng)的測試任務(wù)處理表項(xiàng),關(guān)閉原有的測試任務(wù)處理表項(xiàng),新建一條測試任務(wù)表項(xiàng)。
根據(jù)本申請(qǐng)實(shí)施例,在所述媒體播放應(yīng)用為視頻播放應(yīng)用,所述測試任務(wù)為測試視頻的情況下,接收模塊進(jìn)一步用于:
接收終端設(shè)備上報(bào)的測試視頻的域名系統(tǒng)解析時(shí)間、與測試視頻所在服務(wù)器之間為建立傳輸控制協(xié)議tcp鏈接進(jìn)行的tcp三次握手所用的時(shí)間、從建立tcp鏈接到獲取到測試視頻的第一個(gè)視頻數(shù)據(jù)包的時(shí)間。
這樣,可以從網(wǎng)絡(luò)層的角度進(jìn)一步測試視頻播放應(yīng)用在播放視頻時(shí)的每一步耗時(shí),從而可以提供更為精準(zhǔn)的數(shù)據(jù),用于供研發(fā)人員優(yōu)化視頻播放應(yīng)用使用。
本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置分析了移動(dòng)終端設(shè)備的媒體播放應(yīng)用的播放控件,該方案也同樣適用于其他平臺(tái),諸如pc客戶端、網(wǎng)頁端、tv端等。
圖11所示為根據(jù)本申請(qǐng)實(shí)施例的媒體播放質(zhì)量測試裝置的硬件結(jié)構(gòu)示意圖。
參照?qǐng)D11,該媒體播放質(zhì)量測試裝置可以包括:處理器1101(例如cpu)、通信總線1102、接口1103、存儲(chǔ)器1104。其中,通信總線1102用于實(shí)現(xiàn)該媒體播放質(zhì)量測試裝置中各組成部件之間的連接通信。接口1103包括用戶接口和網(wǎng)絡(luò)接口。用戶接口用于接收用戶輸入的信息,并將接收的信息發(fā)送至處理器1101進(jìn)行處理。顯示器可以為lcd顯示器、led顯示器,也可以為觸摸屏,用于顯示需要顯示的數(shù)據(jù)??蛇x的用戶接口還可以包括標(biāo)準(zhǔn)的有線接口、無線接口等。網(wǎng)絡(luò)接口可選的可以包括標(biāo)準(zhǔn)的有線接口、無線接口(如wi-fi接口)。存儲(chǔ)器1104可以是高速ram存儲(chǔ)器,也可以是穩(wěn)定的或非易失性存儲(chǔ)器,例如磁盤存儲(chǔ)器。存儲(chǔ)器1104可選的還可以是獨(dú)立于前述處理器1101的存儲(chǔ)裝置。如圖11所示,作為一種計(jì)算機(jī)存儲(chǔ)介質(zhì)的存儲(chǔ)器1104中可以存儲(chǔ)有圖7中的各個(gè)模塊。在圖11中,僅示出了模塊701-705用于示例。這些模塊例如為指令模塊。處理器1101執(zhí)行存儲(chǔ)于存儲(chǔ)器1104中的模塊,用于完成這些模塊的指定功能。作為一種計(jì)算機(jī)存儲(chǔ)介質(zhì)的存儲(chǔ)器1104中還可以存儲(chǔ)計(jì)算機(jī)程序指令,用于當(dāng)由處理器1101執(zhí)行時(shí),執(zhí)行圖1、圖4中的方法。
圖12所示為根據(jù)本申請(qǐng)實(shí)施例的另一種媒體播放質(zhì)量測試裝置的硬件結(jié)構(gòu)示意圖。參照?qǐng)D12,該媒體播放質(zhì)量測試裝置可以包括:處理器1201(例如cpu)、通信總線1202、接口1203、存儲(chǔ)器1204。其中,通信總線1202用于實(shí)現(xiàn)該媒體播放質(zhì)量測試裝置中各組成部件之間的連接通信。接口1203包括用戶接口和網(wǎng)絡(luò)接口。用戶接口可以包括顯示器、鍵盤、鼠標(biāo)等外設(shè),用于接收用戶輸入的信息,并將接收的信息發(fā)送至處理器1201進(jìn)行處理。顯示器可以為lcd顯示器、led顯示器,也可以為觸摸屏,用于顯示需要顯示的數(shù)據(jù)??蛇x的用戶接口還可以包括標(biāo)準(zhǔn)的有線接口、無線接口等。網(wǎng)絡(luò)接口可選的可以包括標(biāo)準(zhǔn)的有線接口、無線接口(如wi-fi接口)。存儲(chǔ)器1204可以是高速ram存儲(chǔ)器,也可以是穩(wěn)定的或非易失性存儲(chǔ)器,例如磁盤存儲(chǔ)器。存儲(chǔ)器1204可選的還可以是獨(dú)立于前述處理器1201的存儲(chǔ)裝置。如圖12所示,作為一種計(jì)算機(jī)存儲(chǔ)介質(zhì)的存儲(chǔ)器1204中可以存儲(chǔ)有圖9中的各個(gè)模塊。在圖12中,僅示出了模塊901-903用于示例。這些模塊例如為指令模塊。處理器1201執(zhí)行存儲(chǔ)于存儲(chǔ)器1204中的模塊,用于完成這些模塊的指定功能。作為一種計(jì)算機(jī)存儲(chǔ)介質(zhì)的存儲(chǔ)器1204中還可以存儲(chǔ)計(jì)算機(jī)程序指令,用于當(dāng)由處理器1201執(zhí)行時(shí),執(zhí)行圖5、圖6中的方法。
本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的,應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理單元中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。所述各實(shí)施例的功能模塊可以位于一個(gè)終端或網(wǎng)絡(luò)節(jié)點(diǎn),或者也可以分布到多個(gè)終端或網(wǎng)絡(luò)節(jié)點(diǎn)上。
另外,本申請(qǐng)的每個(gè)實(shí)例可以通過由數(shù)據(jù)處理設(shè)備如計(jì)算機(jī)執(zhí)行的數(shù)據(jù)處理程序來實(shí)現(xiàn)。顯然,數(shù)據(jù)處理程序構(gòu)成了本申請(qǐng)。此外,通常存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中的數(shù)據(jù)處理程序通過直接將程序讀取出存儲(chǔ)介質(zhì)或者通過將程序安裝或復(fù)制到數(shù)據(jù)處理設(shè)備的存儲(chǔ)設(shè)備(如硬盤和或內(nèi)存)中執(zhí)行。因此,這樣的存儲(chǔ)介質(zhì)也構(gòu)成了本申請(qǐng)。存儲(chǔ)介質(zhì)可以使用任何類型的記錄方式,例如紙張存儲(chǔ)介質(zhì)(如紙帶等)、磁存儲(chǔ)介質(zhì)(如軟盤、硬盤、閃存等)、光存儲(chǔ)介質(zhì)(如cd-rom等)、磁光存儲(chǔ)介質(zhì)(如mo等)等。
因此,本申請(qǐng)還提供了一種非易失性存儲(chǔ)介質(zhì),其中存儲(chǔ)有內(nèi)容分級(jí)程序,該內(nèi)容分級(jí)程序用于執(zhí)行本申請(qǐng)上述實(shí)施例方法中的任何一種實(shí)例。
以上所述僅為本申請(qǐng)的實(shí)例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。