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