康彩彩
摘要:為了提高回歸測試效率,節(jié)省人力成本,越來越多的中小IT企業(yè)開始引入自動(dòng)化測試,除了web自動(dòng)化測試、APP自動(dòng)化測試外,Android自動(dòng)化測試也是當(dāng)下的自動(dòng)化測試熱門方向,基于Android平臺(tái)的測試工具層出不窮,有CTS測試框架,monkey測試框架,appium測試框架等,該文將針對四類測試框架進(jìn)行研究和分析,選擇一款適用于Android嵌入式平臺(tái)的測試框架,用于導(dǎo)入企業(yè)Android平臺(tái)嵌入式終端項(xiàng)目,解決應(yīng)用功能和通訊接口復(fù)雜導(dǎo)致的測試方案實(shí)現(xiàn)難度高,回歸測試工作量大等項(xiàng)目的實(shí)際問題。
關(guān)鍵詞:Android1;動(dòng)化測試2;框架3
中圖分類號:TP31 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)22-0284-02
近年來我國嵌入式行業(yè)快速發(fā)展,嵌入式智能終端在金融IT行業(yè)存在著較為廣泛的應(yīng)用,嵌入式軟件開發(fā)平臺(tái)眾多,其中Android平臺(tái)應(yīng)用占比不可小覷,隨著金融IT市場的快速發(fā)展,客戶對Android平臺(tái)嵌入式終端產(chǎn)品的質(zhì)量需求和交付周期也在不斷提高,促使交付產(chǎn)品的企業(yè)對質(zhì)量控制人員的測試技術(shù)、測試覆蓋率、測試速率將有更高的要求,導(dǎo)入自動(dòng)化測試將勢不可擋,而選擇開源自動(dòng)化測試框架還是自主開發(fā)自動(dòng)化測試工具,選擇什么開源框架將是質(zhì)量控制人員需要決策的課題。
1 Android自動(dòng)化測試框架研究
1.1 Android系統(tǒng)結(jié)構(gòu)
android的系統(tǒng)架構(gòu)采用了分層的架構(gòu)。如Android系統(tǒng)構(gòu)架圖,共分為四個(gè)層,從高層到低層分別是應(yīng)用層、應(yīng)用軟件框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層。應(yīng)用層提供了一些核心應(yīng)用程序包,應(yīng)用軟件框架層是Android應(yīng)用開發(fā)的基礎(chǔ),系統(tǒng)運(yùn)行庫包括九個(gè)子系統(tǒng),Android核心系統(tǒng)服務(wù)依賴于Linux內(nèi)核。
1.2 自動(dòng)化測試的好處
自動(dòng)化測試可以代替大量的手工機(jī)械重復(fù)性操作,測試人員可以把更多精力花在更全面的用例設(shè)計(jì)和新功能測試上;自動(dòng)化測試可以大幅提升回歸測試的效率;自動(dòng)化測試可以更好地利用無人值守時(shí)間,去更頻繁地執(zhí)行測試;自動(dòng)化測試可以高效地實(shí)現(xiàn)某些手工測試無法完成或者代價(jià)巨大的測試類型,比如高并發(fā)場景的壓力測試;自動(dòng)化測試還可以保證每次測試執(zhí)行的操作一致性和可重復(fù)性,避免人為的遺漏或疏忽。
1.3 Android嵌入式終端的通信方式
Android嵌入式終端作為主機(jī)的從設(shè)備,與主機(jī)的通訊方式有兩種:USB Device HID通訊、藍(lán)牙4.0協(xié)議+2.1 EDR通信。(EDR:藍(lán)牙EDR是藍(lán)牙增強(qiáng)速率(Enhanced Data Rate)的英文縮寫,其特色是大大提高了藍(lán)牙技術(shù)的數(shù)據(jù)傳輸速率)。
1.4 四類測試框架研究和選擇
(1)AndroidCTS測試框架
CTS全稱Compatibility Test Suite,CTS的目的主要是保證API的兼容性。使用CTS測試的話,其測試用例需要根據(jù)系統(tǒng)的版本下載相應(yīng)的測試用例,其測試用例是一系列的apk文件和對應(yīng)的xml配置文件。進(jìn)入CTS測試管理界面,輸入命名list packages 可以獲取所有的測試用例。CTS測試提供了多種的運(yùn)行測試用例的方法。例如按照包名進(jìn)行自動(dòng)化測試、按照計(jì)劃進(jìn)行自動(dòng)化測試。CTS測試完后會(huì)自動(dòng)生成測試報(bào)告,測試報(bào)告是xml格式的文件,內(nèi)容就是調(diào)用各個(gè)API,看返回結(jié)果是否正確。CTS測試用例的開發(fā)需要基于源代碼開發(fā),由于測試用例的開發(fā)難度較大,放棄選擇該測試框架。
(2)Androidmonkey測試框架
Monkey是Android中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實(shí)現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。monkey測試,可以針對全局,也可以針對局部測試,執(zhí)行簡單,效果明顯,但是缺少自動(dòng)化測試用例的規(guī)劃與其系統(tǒng)性,monkey測試主要針對的是對app應(yīng)用的性能測試,以及壓力測試,不適用于Android嵌入式終端測試。
(3)Androidappium測試框架
appium是一個(gè)開源、跨平臺(tái)的測試框架,可以用來測試原生及混合的移動(dòng)端應(yīng)用。appium支持IOS、Android及FirefoxOS平臺(tái)。在Android端,appium基于WebDriver協(xié)議,利用Bootstrap.jar,最后通過調(diào)用UiAutomator的命令,實(shí)現(xiàn)App的自動(dòng)化測試。appium測試主要針對App測試。appium測試流程示例:PC端開啟appium軟件,設(shè)置API級別;編寫測試用例(使用python可以快速編寫出相關(guān)的測試用例),指定測試的包名以及應(yīng)用的入口地址;執(zhí)行測試。appium是移動(dòng)自動(dòng)化測試領(lǐng)域最主流的工具之一,還支持多種編程語言(Java/Python/C#/JavaScript…等),如果是APP UI層的自動(dòng)化測試,appium非常適合,但不適用于Android嵌入式終端測試。
(4)Robot Framework
Robot Framework是一款python編寫的功能自動(dòng)化測試框架。Robot Framework最下面是被測系統(tǒng)。中間是測試庫,基于測試庫,用例腳本才能和被測系統(tǒng)進(jìn)行交互,所以需要根據(jù)被測系統(tǒng)的形態(tài)來選擇相應(yīng)地測試庫。最上層則是測試框架,也就是RobotFramework這一層。其作用包括用例腳本管理、測試數(shù)據(jù)管理、測試運(yùn)行、測試報(bào)告和測試日志等。
由于Robot Framework自動(dòng)化測試平臺(tái)是運(yùn)行在Windows系統(tǒng)的PC上,為了能夠跨平臺(tái)使用腳本測試嵌入式終端,需要在平板上開發(fā)RPC服務(wù)(RPC采用客戶機(jī)/服務(wù)器模式,請求程序就是一個(gè)客戶機(jī),而服務(wù)提供程序就是一個(gè)服務(wù)器。),將RPC服務(wù)當(dāng)服務(wù)運(yùn)行在平板上,接收PC機(jī)通信數(shù)據(jù),并發(fā)送給設(shè)備并等待設(shè)備返回?cái)?shù)據(jù),最后響應(yīng)給上位機(jī)。選擇該測試框架,可滿足Android嵌入式終端測試需求。
2 結(jié)束語
通過此課題研究,成功選擇Robotframework自動(dòng)化測試框架,通過該框架的定制開發(fā),可完成定制測試庫、RPC服務(wù)、測試腳本等開發(fā),可以解決Android嵌入式終端應(yīng)用功能多,導(dǎo)致的測試復(fù)雜度高,回歸測試頻繁,導(dǎo)致的測試工作量大等問題,基于Robotframework框架開發(fā)的測試庫,測試套件可最大限度地復(fù)用,可以有效降低相關(guān)項(xiàng)目的質(zhì)量控制成本。
參考文獻(xiàn)
[1] laura.2016嵌入式行業(yè)現(xiàn)狀及發(fā)展趨勢分析[N].21ic,2016-12-26.
[2] 陳昊.Android手機(jī)自動(dòng)化測試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2014.
[3] 齊濤著.Robotframework自動(dòng)測試修煉寶典[M].北京:電子工業(yè)出版社,2015.
[4] 王敏,尹瀟.分層自動(dòng)化測試框架搭建及應(yīng)用[J].自動(dòng)化,2016(09):256.
【通聯(lián)編輯:朱寶貴】