移動(dòng)APP自動(dòng)化測(cè)試主流框架

發(fā)布時(shí)間:2021-03-31

1. Instrumentation 
 
Instrumentaion 是Android自帶的一個(gè)測(cè)試框架,是很多其它測(cè)試框架的基礎(chǔ),可以在同進(jìn)程中加載被測(cè)組件。它有很多豐富的高層封裝,使用者可以使用基于instrumentation的其他框架,避免過(guò)多二次開發(fā)量。但I(xiàn)nstrumentation不支持跨應(yīng)用,導(dǎo)致基于instrumentation的框架都繼承了這個(gè)缺點(diǎn)。
 
2.MobileRunner
 
MobileRunner是國(guó)內(nèi)專業(yè)的支持IOS及Android上App、小程序、H5應(yīng)用的自動(dòng)化測(cè)試工具,實(shí)現(xiàn)7*24小時(shí)的自動(dòng)化回歸測(cè)試功能測(cè)試、兼容性測(cè)試,讓測(cè)試更簡(jiǎn)單。
 
3. Robotium 
 
Robotium是基于Instrumentation框架開發(fā)的一個(gè)更強(qiáng)的框架. 對(duì)常用的操作進(jìn)行了易用性的封裝. 用于開發(fā)功能性、系統(tǒng)和驗(yàn)收測(cè)試場(chǎng)景。它運(yùn)行時(shí)綁定到GUI組件。它安裝了一個(gè)測(cè)試用例套件作為在Android設(shè)備或仿真器上的應(yīng)用程序,并提供用于執(zhí)行測(cè)試的真實(shí)環(huán)境。
 
優(yōu)點(diǎn): 容易在最短的時(shí)間內(nèi)編寫測(cè)試腳本,易用性高。自動(dòng)跟隨當(dāng)前activity。 由于運(yùn)行時(shí)綁定到GUI組件,所以相比Appium,它的測(cè)試執(zhí)行更快,更強(qiáng)大。 不訪問(wèn)代碼或不了解app實(shí)現(xiàn),也可以工作。 支持Activities、Dialogs、Toasts、Menus、Context Menus和其他Android SDK控件。
 
缺點(diǎn): 不能處理flash和web組件。在舊設(shè)備上會(huì)變得很慢。 由于不支持iOS設(shè)備,當(dāng)自動(dòng)化測(cè)試同時(shí)覆蓋 android與iOS的情況時(shí),測(cè)試會(huì)被中斷。沒(méi)有內(nèi)置的記錄和回放功能.,使用記錄功能需要 TestDroid 和 Robotium Recorder 這樣的收費(fèi)工具。
 
4. UIAutomator
 
UIAutomator是由谷歌提供的測(cè)試框架,它提供了原生Android app和游戲的高級(jí)UI測(cè)試。這是一個(gè)包含API的Java庫(kù),用來(lái)創(chuàng)建功能性UI測(cè)試,還有運(yùn)行測(cè)試的執(zhí)行引擎。該庫(kù)自帶Android SDK。
 
優(yōu)點(diǎn):它在運(yùn)行訪問(wèn)不同的進(jìn)程時(shí),會(huì)給JUnit測(cè)試案例特權(quán)。庫(kù)由谷歌社區(qū)支持和維護(hù)。
 
缺點(diǎn):僅支持android4.1(API level 16)及以上。 不支持腳本記錄。 支持的重點(diǎn)是Java。 你不能獲得當(dāng)前活動(dòng)或儀表化。目前不支持web視圖。 庫(kù)僅支持使用Java,因此很難和使用Ruby的cucumber混合。如想支持BDD框架,建議使用Java自己的BDD框架,例如Jbehave。
 
5. Espresso
 
Espresso是Google的開源自動(dòng)化測(cè)試框架。相對(duì)于Robotium和UIAutomator,它的特點(diǎn)是規(guī)模更小、更簡(jiǎn)潔、API更加精確、編寫測(cè)試代碼簡(jiǎn)單、容易快速上手。因?yàn)槭腔贗nstrumentation的,所以不能跨App。
 
6. Calabash
 
Calabash是一個(gè)適用于iOS和Android開發(fā)者的跨平臺(tái)app測(cè)試框架,可用來(lái)測(cè)試屏幕截圖、手勢(shì)和實(shí)際功能代碼。Calabash開源免費(fèi)并支持Cucumber語(yǔ)言,Cucumber能讓你用自然的英語(yǔ)語(yǔ)言表述app的行為,實(shí)現(xiàn)BDD(Behavior Driven Development,行為驅(qū)動(dòng)開發(fā))。 Cucumber中的所有語(yǔ)句使用Ruby定義。
 
優(yōu)點(diǎn): 有大型社區(qū)支持。列表項(xiàng) 簡(jiǎn)單,類似英語(yǔ)表述的測(cè)試語(yǔ)句支持在屏幕上的所有動(dòng)作,如滑動(dòng),縮放,旋轉(zhuǎn),敲擊等。 跨平臺(tái)開發(fā)支持(同樣的代碼在Android和iOS設(shè)備中都適用)。
 
缺點(diǎn):測(cè)試步驟失敗后,將跳過(guò)所有的后續(xù)步驟,這可能會(huì)導(dǎo)致錯(cuò)過(guò)更嚴(yán)重的產(chǎn)品問(wèn)題。測(cè)試耗費(fèi)時(shí)間,因?yàn)樗偸悄J(rèn)先安裝app。 需要Calabash框架安裝在ios的ipa文件中, 因此測(cè)試人員必須要有iOS的app源碼。 除了Ruby,對(duì)其他語(yǔ)言不友好。
 
7. Appium
 
Appium是一個(gè)開源的、跨平臺(tái)的自動(dòng)化測(cè)試工具,支持IOS、Android和FirefoxOS平臺(tái)。 通過(guò)Appium,開發(fā)者無(wú)需重新編譯app或者做任何調(diào)整,就可以測(cè)試移動(dòng)應(yīng)用,可以使測(cè)試代碼訪問(wèn)后端API和數(shù)據(jù)庫(kù)。它是通過(guò)驅(qū)動(dòng)蘋果的UIAutomation和Android的UiAutomator框架來(lái)實(shí)現(xiàn)的雙平臺(tái)支持,同時(shí)綁定了Selenium WebDriver用于老的Android平臺(tái)測(cè)試。開發(fā)者可以使用WebDriver兼容的任何語(yǔ)言編寫測(cè)試腳本,如Java, OC, JS, PHP,Python, Ruby, C#,Clojure 和Perl語(yǔ)言。
 
8. Selendroid
 
Selendroid 是一個(gè)基于Instrumentation的一個(gè)框架. 完全兼容Webdriver協(xié)議。 Selendroid 可以在模擬器和實(shí)際設(shè)備上使用,也可以集成網(wǎng)格節(jié)點(diǎn)作為縮放和并行測(cè)試。
 
9. Robolectric
 
Robolectric 是一款A(yù)ndroid單元測(cè)試框架,但它并不依賴于Android提供的測(cè)試功能,它通過(guò)實(shí)現(xiàn)一套JVM能運(yùn)行的Android代碼,然后在unit test運(yùn)行的時(shí)候去截取android相關(guān)的代碼調(diào)用,然后轉(zhuǎn)到Robolectric實(shí)現(xiàn)的代碼(shadow objects)去執(zhí)行這個(gè)調(diào)用的過(guò)程。因此它不像模擬器或設(shè)備需要dexing(Android dex編譯器將類文件編譯成Android設(shè)備上的Dalvik VM使用的格式)、打包、部署和運(yùn)行的過(guò)程,大大減少了測(cè)試執(zhí)行的時(shí)間。Pivotal實(shí)驗(yàn)室聲稱使用Robolectric可以在28秒內(nèi)運(yùn)行1047個(gè)測(cè)試。
 
除了實(shí)現(xiàn)Android里面的類的現(xiàn)有接口,Robolectric還給每個(gè)Shadow類額外增加了很多接口,可以讀取對(duì)應(yīng)的Android類的一些狀態(tài)。比如它為ImageView提供了getImageResourceId()方法,測(cè)試者可以通過(guò)getImageResourceId()接口來(lái)確定是不是正確顯示了期望的Image。
 
10. RoboSpock
 
RoboSpock是一個(gè)開源的Android測(cè)試框架,它提供了簡(jiǎn)單的編寫B(tài)DD行為驅(qū)動(dòng)開發(fā)規(guī)范的方法,使用Groovy語(yǔ)言,支持Google Guice庫(kù)。RoboSpock合并了Robolectic和Spock的功能。
 
11. Cafe
 
Cafe是百度出品的一個(gè)基于Robotium的測(cè)試框架,它提供了跨進(jìn)程的測(cè)試解決方案
 
12. Athrun
 
Athrun 是taobao出的一個(gè)移動(dòng)測(cè)試框架,它支持Android和IOS。Android部分是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2類基礎(chǔ)上進(jìn)行了擴(kuò)展,提供了一整套面向?qū)ο蟮腁PI。 IOS上的自動(dòng)化測(cè)試包括注入式自動(dòng)化框架AppFramework,和基于錄制的自動(dòng)化框架Athrun_IOS, InstrumentDriver。
 
13. 其他
 
其他自動(dòng)化框架還有應(yīng)用于穩(wěn)定性測(cè)試的Monkey系列(Monkey, Monkeyrunner, MonkeyTalk), 其中MonkeyTalk 支持iOS 和 Android,它可以為應(yīng)用進(jìn)行真實(shí)的,功能性交互測(cè)試。MonkeyTalk 提供簡(jiǎn)單的 “smoke tests”,復(fù)雜數(shù)據(jù)驅(qū)動(dòng)的測(cè)試套件。MonkeyTalk 支持原生,移動(dòng)和混合應(yīng)用,真實(shí)設(shè)備或者模擬器。MonkeyTalk 使得場(chǎng)景捕獲非常容易,可以記錄高級(jí)別,可讀的測(cè)試腳本。還有適用于瀏覽器自動(dòng)測(cè)試的Selenium WebDriver,可以真實(shí)測(cè)試用戶行為,用戶交互如觸摸、手指滾動(dòng)、長(zhǎng)按等,還支持HTML5的一些特性,比如本地存儲(chǔ)、session存儲(chǔ)、應(yīng)用緩存等。而CTS則是應(yīng)用于兼容性測(cè)試的自動(dòng)化工具, CTS大部分是基于Junit和儀表盤技術(shù)編寫的。還擴(kuò)展了自動(dòng)化測(cè)試過(guò)程,可以自動(dòng)執(zhí)行用例,自動(dòng)收集和匯總測(cè)試結(jié)果。CTS采用XML配置文件的方式將這些測(cè)試用例分組成多個(gè)測(cè)試計(jì)劃(plan),第三方也可以創(chuàng)建自己的plan。
 
推薦閱讀:
 
 
 
 
 
本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問(wèn)題,請(qǐng)權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測(cè)試工具和測(cè)試服務(wù)

微信客服
問(wèn)題
反饋
產(chǎn)品
畫冊(cè)

掃描二維碼下載澤眾軟件企業(yè)宣傳冊(cè)

產(chǎn)品畫冊(cè)
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系