iOS自動化測試框架對比

1. XCTest

XCTest是蘋果在iOS 7和Xcode5引入的一個簡單而強大的測試框架,它的測試編寫起來非常簡單,并且遵循xUnit風格。

優點:與Xcode深度集成,有專門的Test導航欄

缺點:受限于官方測試API,因此功能不是很豐富

2. UIAutomation

UIAutomation是蘋果提供的UI自動化測試框架,使用Javascript編寫。基于UIAutomation有擴展型的工具框架和驅動型的框架。擴展型框架以JavaScript擴展庫方法提供了很多好用js工具,注入式的框架通常會提供一些Lib或者是Framework,要求測試人員在待測應用的代碼工程中導入這些內容,框架可以通過他們完成對app的驅動。驅動型UI Automation 在自動化測試底層使用了UI Automation庫,通過TCP通信的方式驅動UI Automation來完成自動化測試,通過這種方式,編輯腳本的語言不再局限于JavaScript

3. Frank

Frank是iOS平臺一款非常受歡迎的app測試框架,它使用Cucumber語言來編寫測試用例, Frank包含一個強大的“app inspector”–Symbiote,可以用它來獲得運行中app的詳細信息,便于開發者將來進行測試回顧。 它允許使用Cucumber編寫結構化英語句子的測試場景。 Frank要求測試時在應用程序內部編譯,這意味著對源代碼的改變是強制性的。操作方式為使用Cucumber和JSON組合命令,將命令發送到在本地應用程序內部運行的服務器上,并利用UISpec運行命令。

優點: 測試場景是在Cucumber的幫助下,用可理解的英語句子寫的。強大的Symbiote實時檢查工具。 活躍的社區支持。 不斷擴大中的庫

缺點:對手勢的支持有限。 在設備上運行測試有點難。 修改配置文件需要在實際設備上運行。 記錄功能不可用

4. KIF

KIF是Keep It Functional項目的縮寫,是一款iOS app功能性測試框架,使用Objective-C語言編寫,對蘋果開發者來說非常容易上手,更是一款開發者廣為推薦的測試工具。KIF tester使用私有API來了解App中的視圖層級。但缺點是運行較慢

5. Calabash

Calabash是一個適用于iOS和Android開發者的跨平臺app測試框架,可用來測試屏幕截圖、手勢和實際功能代碼。Calabash開源免費并支持Cucumber語言,Cucumber能讓你用自然的英語語言表述app的行為,實現BDD(Behavior Driven Development,行為驅動開發)。 Cucumber中的所有語句使用Ruby定義。

優點: 有大型社區支持。列表項 簡單,類似英語表述的測試語句支持在屏幕上的所有動作,如滑動,縮放,旋轉,敲擊等。 跨平臺開發支持(同樣的代碼在Android和iOS設備中都適用)

缺點:測試步驟失敗后,將跳過所有的后續步驟,這可能會導致錯過更嚴重的產品問題。測試耗費時間,因為它總是默認先安裝app。 需要Calabash框架安裝在ios的ipa文件中, 因此測試人員必須要有iOS的app源碼。 除了Ruby,對其他語言不友好

6. Subliminal

Subliminal是另一款與XCTest集成的框架。與KIF不同的是,它基于UIAutomation編寫,旨在對開發者隱藏UIAutomation中一些復雜的細節

7. Kiwi

Kiwi是對XCTest的一個完整替代,使用xSpec風格編寫測試。 Kiwi帶有自己的一套工具集,包括expectations、mocks、stubs,甚至還支持異步測試。它是一個適用于iOS 開發的Behavior Driven Development(BDD)庫,優點在于其簡潔的接口和可用性,易于設置和使用,非常適合新手開發者。Kiwi使用Objective-C語言編寫,易于IOS開發人員上手

8.Appium

Appium是一個開源的、跨平臺的自動化測試工具,支持IOS、Android和FirefoxOS平臺。 通過Appium,開發者無需重新編譯app或者做任何調整,就可以測試移動應用,可以使測試代碼訪問后端API和數據庫。它是通過驅動蘋果的UIAutomation和Android的UiAutomator框架來實現的雙平臺支持,同時綁定了Selenium WebDriver用于老的Android平臺測試。開發者可以使用WebDriver兼容的任何語言編寫測試腳本,如Ruby,C#,Java,? JS,OC, PHP,Python,Perl和Clojure 語言

iOS自動化工具對比

自動化測試框架總結

iOS自動化測試框架繼承關系如下. XCTest與 Xcode 的 IDE 直接集成,使用簡單, 但其不支持stub和mock, 所以單使用XCTest框架的較少. Kiwi是一個iOS平臺十分好用的行為驅動開發BDD的測試框架,有著非常漂亮的語法,可以寫出結構性強,非常容易讀懂的測試。UI Automation是Apple官方提供的UI自動化測試的解決方法,但接口不夠豐富。

KIF、Frank、Calabash都是通過使用代碼的形式來模擬事件觸發,使得被測代碼就像是由用戶行為所觸發的一樣。但這樣的代價是插入一個額外層的復雜度。

iOS測試框架中支持BDD的有calabash 和Kiwi。

可選用的單元測試框架有Kiwi,Specta,Quick等,而KIF,Subliminal和calabash更適用于UI級驗收測試

IOS A/B test 測試框架 FlipTest

FlipTest是一個優秀的iOS app A/B測試框架,可為app挑選最佳的UI。FlipTest會基于外觀和易用性等眾多因素返回測試結果,進而幫開發者解決UI問題。用FlipTest進行測試無需向App Store重新提交應用或者大幅更改代碼,只需要在app中添加一行代碼,節省了不少時間

參考資料

移動APP自動化測試框架對比

iOS自動測試框架對比

iOS UI自動化測試與代碼覆蓋率

基于KIF的iOS UI自動化測試和持續集成

解放程序員的雙手-iOS UI自動化測試

解放程序員的雙手-iOS UI自動化測試二

appium 中文文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容