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

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