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