正如您已經發現的那樣,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)的可重用性。
今天,我還一年後厭倦了Appium。我已經要求我的qa團隊領導,我們應該停止在appium上投入時間。這些人不測試他們的發佈,他們的發佈沒有經過測試,他們偶爾會改變。 :/ –
你切換到xcuitest?這是怎麼回事? –
我沒有。仍在研究。 –