2017-09-04 133 views
4

我正在尋找來自測試工程師和iOS開發人員關於具體問題的意見。iOS自動測試 - XCTest vs Appium

我一直在使用Appium一年多了,而且在真實設備上運行移動Web測試時遇到了各種困難。每當Apple在XCTest或Safari中進行更改時,Appium都會直接受到影響(即使他們修正了某些問題,但仍會出現其他問題),並且我已經花費更多時間解決與Appium相關的問題,如反對來自AUT的人。

此外,您需要一臺Apple電腦來開發和執行Appium iOS測試。所以我想爲什麼不直接使用XCTest編寫使用Swift或XCTest支持的任何語言的測試呢?

我非常感謝來自具有Appium和XCTest(Swift等)自動化測試經驗的人士的評論和意見。

使用Appium在XCTest上自動執行iOS本機和Web應用程序測試有什麼優勢?

+0

今天,我還一年後厭倦了Appium。我已經要求我的qa團隊領導,我們應該停止在appium上投入時間。這些人不測試他們的發佈,他們的發佈沒有經過測試,他們偶爾會改變。 :/ –

+0

你切換到xcuitest?這是怎麼回事? –

+0

我沒有。仍在研究。 –

回答

3

正如您已經發現的那樣,Appium最大的缺點之一就是它是第三方框架,並且每次Apple發佈Xcode時都會破壞它。這是不太可能改變,因爲蘋果現在維護自己的UI測試框架。

使用Appium還有其他一些優點 - 您可以從多種語言(Java,Ruby,Python,C#...)中選擇,這使任何人都可以使用這些非常流行的語言,您可以想象在iOS和Android上的相同應用程序的測試之間共享代碼。

根據我的經驗,雖然有很多人使用Appium,但社區支持水平並未彌補令人失望的維護水平;除了Appium與Xcode兼容性的脆弱之外,我發現一些關鍵函數在一些綁定中仍未實現,例如,在Python中滾動。

通過UI測試,可靠性是您框架中最重要的方面。沒有可靠性,你就不能相信測試來標記問題,沒有信任,你的測試對你和你的團隊幾乎沒有任何價值。這就是爲什麼我建議XCTest優於任何第三方框架。

使用XCTest,您永遠不必擔心無法更新您的Xcode版本,並且該框架保持爲Apple的發佈標準。與所有iOS UI測試框架一樣,有一些錯誤(特別是在採集器周圍),但是我發現框架的穩定性和Apple擁有的事實勝過了奇怪錯誤的缺點。

得到Apple的認可是使用XCTest的重要職業,因爲Apple可以取消對Appium所依賴的API的訪問,並且Appium可能會在一夜之間永遠停止工作。歷史上,蘋果公司不會在沒有至少一年的通知的情況下取消對自己的框架的支持。

要直接使用XCTest,您需要使用Swift(推薦)或Objective-C。沒有像Appium那樣多的語言選擇,但是對這兩種語言的支持是一致的,因爲它們都使用相同的實現。 Swift是一種強大的語言選擇,特別是對於大型項目,因爲它的類型安全性允許您在運行時注意到許多編程錯誤。這兩種語言都爲Xcode提供了極大的智能感知(自動完成)支持,而這些功能並非像「Python」或「Ruby」這樣的「動態」語言開箱即用。

XCTest周圍的社區越來越多,隨着更多關於在UI測試中使用它的信息越來越多,以及越來越多的人感覺能夠採用它。用於UI測試的框架的很多部分已經用於單元測試多年,所以在添加UI測試支持之前,已經有很多關於使用它的信息。

這兩個框架都使用類似的概念 - XCUIApplication類似於Appium的Driver,它允許您訪問屏幕上的內容。兩種框架提供的功能級別可以說非常相似,因此它取決於您的優先級在哪裏 - 具有可靠性(XCTest)或跨其他平臺和語言可訪問性(Appium)的可重用性。

+2

謝謝。這非常雄辯。 –

4

有些職業選手Appium和XCTest的&缺點:

贊成XCTest的:

  • 蘋果自己的產品,以便不太可能有在Xcode中/的iOS新版本的推出兼容性問題浮現
  • 測試運行效率更高(更快和更少的隨機錯誤)
  • 記錄/回放功能可以使對象識別更容易這些更靠譜辨認物體
  • 更容易設置比Appium(尤其是iOS版之後10+)

贊成Appium的:

  • 跨越允許更多的代碼重用Apple和Android自動化套件

  • 兼容語言的更多選擇

  • 黃瓜前端代碼兼容

還有其他優點的兩種工具&缺點,但有使用這兩個我覺得這是主要的(我個人認爲)

+1

謝謝。我有一個後續問題。是否可以在XCTEST中編寫基於瀏覽器的測試?我是否可以在Safari上運行測試? –