◆馬春宇
?
自動化測試管理與實踐
◆馬春宇
(未來電視有限公司 天津 300300)
伴隨著自動化測試工作的逐步展開,機頂盒大屏端自動化測試已經(jīng)涵蓋了我司終端、后臺、接口等各個方面,自動化測試工作在節(jié)約人力成本和時間成本上起到了很重要的作用。自動化測試需求是從實際測試項目中抽取出來的,對于手動測試過程中重復性操作頻率較高的、操作過程較簡單的內(nèi)容我們可以通過自動化提供測試效率。結(jié)合整個自動化工作,我們需要將前端、后臺、接口測試關(guān)聯(lián)起來,形成一個測試閉環(huán),在項目中充分發(fā)揮自動化測試與管理的優(yōu)勢。
自動化;測試管理;實踐
伴隨著自動化測試工作的逐步展開,機頂盒大屏端自動化測試已經(jīng)涵蓋了我司終端、后臺、接口等各個方面,自動化測試工作在節(jié)約人力成本和時間成本上起到了很重要的作用。自動化測試需求是從實際測試項目中抽取出來的,對于手動測試過程中重復性操作頻率較高的、操作過程較簡單的內(nèi)容我們可以通過自動化提供測試效率。機頂盒端自動化測試需求包括以下四點:
(1)終端APK頁面遍歷、視頻播放功能自動化開發(fā);
(2)終端APK遍歷及播放過程中的用戶行為日志核對自動化開發(fā);
(3)終端APK廣告后臺投放需求自動化開發(fā);
(4)終端APK廣告展示及廣告日志上報核對自動化開發(fā)。
自動化需求:央視影音ott端APK是我司研發(fā)的一款機頂盒端APK,該APK包含點播視頻播放、選集、收藏、訂閱、直播內(nèi)容播放、輪播內(nèi)容播放、搜索、篩選、用戶中心、廣告等相關(guān)功能。該終端APK上各頁面遍歷、播放相關(guān)功能操作流程較固定,可以通過自動化操作提高測試效率。
自動化方案:針對終端APP我們使用appium框架,采用python開發(fā)語言實現(xiàn)自動化測試。針對大屏端與手機端APP遍歷過程中存在的巨大差異,我們開發(fā)了焦點跟隨法專利,從而解決了大屏端瀑布流頁面區(qū)塊不規(guī)則的遍歷操作。對于終端推薦位詳情頁播放功能、選集功能我們通過uiautomator截屏識別終端元素的方法,進行元素定位和點擊操作,按照預定操作流程執(zhí)行相關(guān)測試步驟,自動化執(zhí)行相關(guān)測試用例。
自動化需求:后臺系統(tǒng)創(chuàng)建、修改、刪除、搜索數(shù)據(jù)屬于重復性測試工作,當前人工操作存在以下問題:
(1)人工填寫信息易出錯;
(2)人工核對后臺數(shù)據(jù)正確性費時費力;
(3)測試用例較多時,手動執(zhí)行測試耗時。
自動化方案:我們通過selenium框架,使用python開發(fā)語言開發(fā)實現(xiàn)后臺功能自動化測試。自動化方案實現(xiàn)思路:
后臺系統(tǒng)自動化創(chuàng)建表單的過程,就是對表單中的各個字段填寫數(shù)據(jù)的過程。我們將表單中的字段信息匯總形成輸入用例文件,通過讀取測試用例文件的方式,自動化填寫表單信息,從而實現(xiàn)后臺自動創(chuàng)建表單的過程。在實現(xiàn)的過程中對于頁面上的異常報錯我們會做相關(guān)的處理判斷,以便涵蓋所有測試用例場景;
后臺系統(tǒng)自動化修改表單過程,我們通過修改測試用例文件中的相應字段,作為測試輸入,同樣通過讀取用例文件的方式,自動化修改表單內(nèi)容,從而實現(xiàn)自動化修改表單的過程。在實現(xiàn)的過程中我們會對后臺修改邏輯進行兼容,以覆蓋所有修改測試用例。
后臺系統(tǒng)自動化刪除表單過程,我們根據(jù)刪除需求,提供需要修改內(nèi)容的ID值,讀取ID數(shù)組,實現(xiàn)自動化刪除表單的過程。在實現(xiàn)的過程中我們會對后臺刪除邏輯進行兼容,以覆蓋所有刪除測試用例。
后臺系統(tǒng)自動化搜索過程,我們將搜索條件作為測試輸入寫入到測試用例文件中,通過讀文件方式,向后臺搜索框中自動化輸出搜索條件。對于每次搜索內(nèi)容對應的搜索結(jié)果的正確性,我們會通過關(guān)鍵字比對的方式進行自動化結(jié)果校驗,從而保證搜索條件和搜索結(jié)果的正確匹配。
通過自動化的方式對后臺系統(tǒng)進行相關(guān)操作,會極大地改善上述問題,大量地減少測試人員的工作量,保證測試結(jié)果的正確性。
自動化需求:在實際測試項目中,我們往往會遇到后臺服務升級的情況,服務升級后原有服務接口功能是否正常無法保證。而測試人員如果手動重新跑一遍測試用例會出現(xiàn)如下問題:
(1)服務接口較多時,手動執(zhí)行用例數(shù)量太多;
(2)接口入?yún)⑤^多時手動執(zhí)行測試用例耗時;
(3)人工手動填寫接口入?yún)⑷菀壮鲥e;
(4)接口返回結(jié)果需要人工手動整理,測試人員需要耗費大量時間核對每一個用例預期結(jié)果和實際結(jié)果;
(5)測試比對結(jié)果展示不直觀;
(6)接口參數(shù)變化時,需手動修改用例,重新手動執(zhí)行用例。
自動化方案:針對以上手動測試存在的弊端,我們采用python開發(fā)語言實現(xiàn)了接口自動化測試。該測試方案基本思路是:
(1)將接口測試用例按預定格式編輯成讀入文件(該文件格式支持excel、xml);
(2)編寫自動化測試執(zhí)行腳本,通過讀取測試用例文件中各字段內(nèi)容,填寫滿足相關(guān)接口請求的入?yún)⑿畔?,調(diào)用請求方式,自動執(zhí)行接口請求;
(3)將接口請求結(jié)果自動回寫入到文件相關(guān)字段;
(4)執(zhí)行回寫文件中的預期結(jié)果值與實際結(jié)果值比對工作,自動生成每條用例測試結(jié)果;
(5)對所執(zhí)行自動化測試結(jié)果進行統(tǒng)計輸出,生成報表發(fā)送郵件至相關(guān)人員查看。
結(jié)合整個自動化工作,我們需要將前端、后臺、接口測試關(guān)聯(lián)起來,形成一個測試閉環(huán),在項目測試中充分發(fā)揮自動化測試的優(yōu)勢。我們選用Jenkins,Jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。終端自動化代碼、后臺自動化測試代碼、接口自動化測試代碼部署到Jenkins上后,我們可以定時開啟自動化測試操作。我們通過web端自動化測試,創(chuàng)建終端自動化測試所需要的各種投放內(nèi)容(包括推薦位信息、廣告素材),從而為終端自動化測試服務;終端自動化測試所生成的用戶行為日志,可以作為自動化用戶行為日志核對的輸入數(shù)據(jù),為自動化日志核對服務;而接口的自動化測試為保證后臺服務升級時接口功能無誤服務的。
整個自動化管理流程如圖1所示。
圖1 自動化測試管理流程
對于整個自動化測試所依托的測試用例,它一定要精準可靠,覆蓋整個需求。這里就需要嚴格地對測試用例進行評審,評審人員涵蓋測試、研發(fā)、產(chǎn)品、運營及項目經(jīng)理,通過多方評審提高測試用例質(zhì)量,提高測試用例覆蓋度,保證自動化測試的初始數(shù)據(jù)的準確性,從而使整個自動化測試結(jié)果準確無誤。
[1]王妍.基于TestLink的軟件測試自動化管理[J].智能計算機與應用,2019,9(02):159-161.
[2]劉禎,胡媛媛,宋泉良.嵌入式軟件自動化測試系統(tǒng)研究[J].中國新通信,2019,21(02):52.
[3]姚正亞,曾艷瓊.軟件自動化測試管理研究[J].中國新通信,2018,20(23):79.
[4]項楠.軟件測試技術(shù)與測試管理分析[J].科學技術(shù)創(chuàng)新,2018(31):75-76.
[5]蔣澤瑞.基于Selenium的自動化測試管理系統(tǒng)的分析與設(shè)計[J].電子技術(shù)與軟件工程,2018(09):36.
[6]張彥.軟件測試工程化的研究和實踐[J].電子世界,2017(14):100.
[7]王惠芳.實驗室測試管理自動化的探索[J].電信科學,2017,33(06):193-196.
[8]徐泊.一種自動化測試系統(tǒng)的輔助測試工具的分析與設(shè)計[D].北京郵電大學,2017.
[9]張競帆.基于Selenium的一種Web自動化測試系統(tǒng)的設(shè)計與實現(xiàn)[D].北京交通大學,2017.
[10]王暉.國產(chǎn)操作系統(tǒng)自動化測試平臺技術(shù)研究[J].無線互聯(lián)科技,2017(10):48-51.