馬春宇
(未來電視有限公司,天津 300300)
機(jī)頂盒端APP 當(dāng)前支持的功能很多,其中廣告功能是可以為公司業(yè)務(wù)發(fā)展帶來收益的。針對廣告主對于廣告功能的需求可以劃分如下:
(1)廣告按終端形態(tài)展示可以分為:視頻類貼片廣告(開屏、前貼、中插、后貼)、圖片類廣告(暫停、推薦位、背景圖、時鐘、角標(biāo))。
(2)廣告按投放策略可以分為:按投放時間、按流量、按版本號、按渠道、按設(shè)備號、按廠商品牌、按地域、按IP、按內(nèi)容(一級欄目、二級欄目、一級頻道、二級頻道、節(jié)目集、節(jié)目、一級分類、二級分類、輪播頻道)、時長、時段、應(yīng)用、渠道定向設(shè)置。
針對以上的廣告形態(tài)及投放策略,廣告日志上報(bào)核對也是測試工作的重點(diǎn)。廣告功能雖然多,但其產(chǎn)品形態(tài)是固定的,測試方法是固定的,基于人力成本和產(chǎn)品固定形態(tài),開啟了機(jī)頂盒端APP 廣告功能自動化測試。
廣告自動化測試分兩部分:一是終端ad 接口上報(bào)正確性自動化校驗(yàn),關(guān)注日志上報(bào)正確性,為最終日志統(tǒng)計(jì)服務(wù);二是終端廣告呈現(xiàn)與report 日志自動化核對,關(guān)注終端廣告展示數(shù)量、內(nèi)容的正確性,為最終日志統(tǒng)計(jì)服務(wù)。該自動化測試框架如圖1所示:

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