淘寶Android自動(dòng)化測(cè)試框架-TMTS
2010年是淘寶無(wú)線突飛猛進(jìn)開(kāi)創(chuàng)無(wú)線新業(yè)務(wù)的一年。而從2011年初開(kāi)始,淘寶技術(shù)質(zhì)量部自動(dòng)化測(cè)試組便致力于手機(jī)自動(dòng)化框架的調(diào)研和開(kāi)發(fā)工作。TMTS(Taobao Mobile Test System)框架,正是嘗試從Android和IPhone入手,建立無(wú)線測(cè)試領(lǐng)域的自動(dòng)化測(cè)試整體解決方案。經(jīng)過(guò)前段時(shí)間的開(kāi)發(fā),及業(yè)務(wù)線試用,TMTS框架Android部分已經(jīng)趨于穩(wěn)定。而IPhone的自動(dòng)化框架也已經(jīng)開(kāi)發(fā)完成,目前正在業(yè)務(wù)線試用階段。
本文重點(diǎn)介紹TMTS框架的Android部分,這部分目前已經(jīng)開(kāi)源。開(kāi)源鏈接: http://code.taobao.org/project/view/565/
在框架開(kāi)發(fā)前,我們先是通過(guò)無(wú)線業(yè)務(wù)的同學(xué),收集了明確的需求:
支持對(duì)release版本的測(cè)試。即不需要為自動(dòng)化測(cè)試專門(mén)打包。
支持內(nèi)嵌WebView的自動(dòng)化。淘寶有大量的應(yīng)用有WebView的場(chǎng)景,需要自動(dòng)化。
在應(yīng)用退出時(shí)調(diào)用killProcess殺掉自已進(jìn)程,不應(yīng)影響自動(dòng)化測(cè)試的結(jié)果收集。
之前也用過(guò)Robotium框架,但由于淘寶應(yīng)用的特殊性,導(dǎo)致自動(dòng)化能運(yùn)行,但最后的結(jié)果收集不到,除非把killProcess代碼注釋掉再編譯。
針對(duì)上面的需求,TMTS使用Android SDK的Instrumentation機(jī)制作為自動(dòng)化框架的基礎(chǔ),保證測(cè)試工程可以在不改寫(xiě)和重編譯被測(cè)應(yīng)用的基礎(chǔ)上,與被測(cè)應(yīng)用運(yùn)行在同一個(gè)進(jìn)程里,從而達(dá)到自動(dòng)化測(cè)試的目的。針對(duì)淘寶無(wú)線的自動(dòng)化測(cè)試場(chǎng)景,我們對(duì)原有Android控件進(jìn)行了一次抽象,基類為T(mén)mtsView,這里定義了所有控件共有的操作,如click等。對(duì)于SDK中能編輯文字的控件如TextView,EditText統(tǒng)一抽象為T(mén)mtsTextView。對(duì)于容器類的View統(tǒng)一抽象為T(mén)mtsViewGroup,等等。簡(jiǎn)化了控件類型的選擇,讓測(cè)試腳本更簡(jiǎn)單易讀。
持續(xù)集成是自動(dòng)化測(cè)試框架走向企業(yè)級(jí)應(yīng)用的必經(jīng)之路,只有持續(xù)集成、每日回歸跑起來(lái)了,自動(dòng)化才能有收益。我們對(duì)Athena框架進(jìn)行了二次開(kāi)發(fā),加入了失敗詳情收集,失敗截圖上傳,和運(yùn)行異常處理的功能,并與hudson集成直接查看運(yùn)行結(jié)果。同時(shí)我們還把每日構(gòu)建也做起來(lái),從開(kāi)發(fā)的svn分支自動(dòng)打包,自動(dòng)測(cè)試,生成報(bào)表。這樣每天只要查看運(yùn)行結(jié)果就可以了,大幅度提高了效率。
其它的很多功能,這里就不一一說(shuō)明了。通過(guò)下面的表,列舉TMTS,Robotium和Android Native Driver的特性與區(qū)別。
posted on 2014-06-25 11:07 順其自然EVO 閱讀(287) 評(píng)論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí) 、android