馬春宇
(未來(lái)電視有限公司,天津 300300)
機(jī)頂盒端APP 當(dāng)前支持的功能很多,其中廣告功能是可以為公司業(yè)務(wù)發(fā)展帶來(lái)收益的。針對(duì)廣告主對(duì)于廣告功能的需求可以劃分如下:
(1)廣告按終端形態(tài)展示可以分為:視頻類(lèi)貼片廣告(開(kāi)屏、前貼、中插、后貼)、圖片類(lèi)廣告(暫停、推薦位、背景圖、時(shí)鐘、角標(biāo))。
(2)廣告按投放策略可以分為:按投放時(shí)間、按流量、按版本號(hào)、按渠道、按設(shè)備號(hào)、按廠(chǎng)商品牌、按地域、按IP、按內(nèi)容(一級(jí)欄目、二級(jí)欄目、一級(jí)頻道、二級(jí)頻道、節(jié)目集、節(jié)目、一級(jí)分類(lèi)、二級(jí)分類(lèi)、輪播頻道)、時(shí)長(zhǎng)、時(shí)段、應(yīng)用、渠道定向設(shè)置。
針對(duì)以上的廣告形態(tài)及投放策略,廣告日志上報(bào)核對(duì)也是測(cè)試工作的重點(diǎn)。廣告功能雖然多,但其產(chǎn)品形態(tài)是固定的,測(cè)試方法是固定的,基于人力成本和產(chǎn)品固定形態(tài),開(kāi)啟了機(jī)頂盒端APP 廣告功能自動(dòng)化測(cè)試。
廣告自動(dòng)化測(cè)試分兩部分:一是終端ad 接口上報(bào)正確性自動(dòng)化校驗(yàn),關(guān)注日志上報(bào)正確性,為最終日志統(tǒng)計(jì)服務(wù);二是終端廣告呈現(xiàn)與report 日志自動(dòng)化核對(duì),關(guān)注終端廣告展示數(shù)量、內(nèi)容的正確性,為最終日志統(tǒng)計(jì)服務(wù)。該自動(dòng)化測(cè)試框架如圖1所示:
圖1 終端廣告自動(dòng)化測(cè)試流程
廣告功能自動(dòng)化測(cè)試針對(duì)大屏端的功能實(shí)現(xiàn)是依托于appium框架實(shí)現(xiàn)的。Appium 是一個(gè)開(kāi)源、跨平臺(tái)的測(cè)試框架,可以用來(lái)測(cè)試原生及混合的移動(dòng)端應(yīng)用。Appium 使用WebDriver 的jsonwire 協(xié)議,來(lái)驅(qū)動(dòng)Apple 系統(tǒng)的UIAutomation 庫(kù)、Android系統(tǒng)的UIAutomator 框架。Appium 也集成了Selendroid,來(lái)支持老android 版本。項(xiàng)目中實(shí)際測(cè)試的機(jī)頂盒大屏端終端設(shè)備是Android 系統(tǒng)下的,appium 框架可以應(yīng)用到實(shí)際的項(xiàng)目場(chǎng)景中,實(shí)現(xiàn)大屏端推薦位遍歷。
在實(shí)際的腳本開(kāi)發(fā)中,我們使用python 作為開(kāi)發(fā)語(yǔ)言,主要是看中了python 語(yǔ)言的易學(xué)、易讀和可維護(hù)性。下面按“圖1:終端廣告自動(dòng)化測(cè)試流程”,分三個(gè)方面對(duì)廣告自動(dòng)化測(cè)試實(shí)現(xiàn)進(jìn)行介紹。
(1)廣告系統(tǒng)自動(dòng)化創(chuàng)建廣告
場(chǎng)景:廣告測(cè)試用例數(shù)量多,人工測(cè)試出現(xiàn)時(shí)間成本和測(cè)試質(zhì)量缺陷。
方案:廣告投放用例已經(jīng)根據(jù)廣告需求人工生成,將該用例按照預(yù)定格式生成廣告用例讀入文件,調(diào)取讀文件方法,在web端自動(dòng)填寫(xiě)相應(yīng)表字段,在頁(yè)面生成相應(yīng)的廣告投放,并將廣告投放相關(guān)信息回寫(xiě)到原文件。
在實(shí)際項(xiàng)目中,我們經(jīng)常會(huì)進(jìn)行終端APK 的主版本和分支版本測(cè)試。廣告系統(tǒng)中已經(jīng)創(chuàng)建的廣告投放是可以從主板本復(fù)用到各分支版本中的(如修改廣告投放適用的終端MAC 地址)。上述自動(dòng)化生成的廣告投放,可以按需求進(jìn)行相關(guān)字段自動(dòng)化編輯,從而實(shí)現(xiàn)廣告投放復(fù)用到其他終端設(shè)備上的場(chǎng)景需求。
(2)廣告終端展示自動(dòng)化
場(chǎng)景:廣告終端展示受限于終端投放策略,人工遍歷所有廣告用例從而發(fā)現(xiàn)終端展示問(wèn)題費(fèi)時(shí)費(fèi)力,存在缺陷。項(xiàng)目測(cè)試過(guò)程中,我們發(fā)現(xiàn)終端廣告常會(huì)出現(xiàn)無(wú)法播放的問(wèn)題,而有時(shí)無(wú)法定位到終端故障產(chǎn)生的規(guī)律,故障產(chǎn)生存在隨機(jī)性,測(cè)試人員有時(shí)很難復(fù)現(xiàn)問(wèn)題。
方案:機(jī)頂盒端是否展示廣告,取決于接口調(diào)用是否正常、網(wǎng)絡(luò)環(huán)境是否正常,其中接口調(diào)用是核心。我們將機(jī)頂盒大屏端APP 上每一個(gè)區(qū)塊上的推薦位應(yīng)該播放的廣告內(nèi)容及播放次數(shù)在廣告系統(tǒng)配置完畢,形成播放預(yù)期結(jié)果,將預(yù)期結(jié)果與實(shí)際廣告日志上報(bào)的report 接口數(shù)量進(jìn)行自動(dòng)化比對(duì),可以實(shí)現(xiàn)終端廣告漏播的自動(dòng)化測(cè)試。流程圖如下:
(3)廣告日志上報(bào)自動(dòng)化
場(chǎng)景:廣告日志上報(bào)的準(zhǔn)確性會(huì)影響最終各廣告主的廣告統(tǒng)計(jì)結(jié)果,日志信息是否存在漏報(bào)、錯(cuò)報(bào)是我們關(guān)心的核心問(wèn)題。廣告主在我司投放某種形態(tài)的廣告,最為關(guān)心的就是廣告曝光量,如果出現(xiàn)廣告曝光量與實(shí)際統(tǒng)計(jì)結(jié)果不一致,直接影響廣告合同的執(zhí)行,會(huì)對(duì)廣告業(yè)務(wù)帶來(lái)無(wú)法彌補(bǔ)的損失。
方案:廣告日志上報(bào)統(tǒng)計(jì)時(shí)會(huì)根據(jù)report 接口解密后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),而report 接口的拼接是根據(jù)廣告ad 接口進(jìn)行的。廣告ad 接口日志上報(bào)數(shù)量、日志上報(bào)順序以及接口參數(shù)的正確性是我們實(shí)現(xiàn)廣告日志自動(dòng)化測(cè)試的核心。
針對(duì)廣告日志漏報(bào)問(wèn)題,我們需要核對(duì)ad 接口上報(bào)的實(shí)際數(shù)量與預(yù)期數(shù)量是否一致;需要核對(duì)ad 接口上報(bào)的順序與預(yù)期日志順序是否一致;需要核對(duì)每一條ad 接口參數(shù)值與預(yù)期結(jié)果參數(shù)值是否一致。
廣告自動(dòng)化應(yīng)用于現(xiàn)有項(xiàng)目后,廣告測(cè)試僅需1人2小時(shí)便可完成接口自動(dòng)化測(cè)試和廣告日志上報(bào)自動(dòng)化測(cè)試,大大節(jié)約了測(cè)試人力成本。
人工測(cè)試難免出現(xiàn)漏測(cè)用例的情況,通過(guò)自動(dòng)化測(cè)試,廣告系統(tǒng)測(cè)試用例可以百分之百完成,測(cè)試結(jié)果準(zhǔn)確度達(dá)到95%(終端廣告展示因網(wǎng)絡(luò)因素導(dǎo)致播放不出的問(wèn)題未在自動(dòng)化中實(shí)現(xiàn))。