正如您已经发现的那样,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?这是怎么回事? –
我没有。仍在研究。 –