首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS自动化测试-- XCTest vs Appium

iOS自动化测试-- XCTest vs Appium
EN

Stack Overflow用户
提问于 2017-09-05 06:43:45
回答 2查看 4.8K关注 0票数 17

我正在寻求测试工程师和iOS开发人员对特定问题的意见。

我使用Appium已经一年多了,在真实设备上运行移动web测试时,我遇到了各种困难。每次苹果在XCTest或Safari中做出改变,Appium都会受到直接影响(即使他们修复了一些东西,也会出现一些其他问题),到了这样一个地步,我花了更多的时间来解决与Appium相关的问题,而不是来自AUT的问题。

此外,您还需要一台苹果电脑来开发和执行Appium iOS测试。所以我想,为什么不直接使用XCTest,用Swift或XCTest支持的任何语言编写测试呢?

我非常感谢那些对Appium和XCTest (Swift等)自动化测试都有经验的人的评论和意见。

与XCTest相比,使用Appium自动化iOS原生和web应用测试有什么优势?

EN

回答 2

Stack Overflow用户

发布于 2017-09-06 06:31:15

正如您已经发现的,Appium最大的缺点之一是它是一个第三方框架,几乎每次Apple发布Xcode时它都会崩溃。这不太可能改变,因为苹果现在维护着自己的UI测试框架。

使用Appium还有一些其他的优势--你可以从很多语言中选择(Java,Ruby,Python,C#...),这使得任何能用这些非常流行的语言编程的人都可以使用它,并且你可以在iOS和Android上的同一个应用程序的测试之间共享代码。

在我的经验中,虽然有很多人在使用Appium,但社区支持的水平并不能弥补令人失望的维护水平;除了Appium与Xcode兼容性的脆弱性之外,我发现一些关键功能在一些绑定中仍然没有实现,例如在Python中滚动。

对于UI测试,可靠性是框架最重要的方面。如果没有可靠性,您就不能信任测试来标记问题,如果没有信任,您的测试对您和您的团队几乎没有价值。这就是为什么我推荐XCTest胜过任何第三方框架的原因。

使用XCTest,您永远不必担心无法更新您的Xcode版本,并且框架将按照苹果的发布标准进行维护。就像所有的iOS UI测试框架一样,有一些bug (尤其是在选择器周围),但我发现框架的稳定性和它属于苹果的事实超过了奇怪的bug的缺点。

被苹果认可是使用XCTest的一个重要利器,因为苹果可能会移除Appium所依赖的API,Appium可能会在一夜之间永远停止工作。从历史上看,苹果不会在没有至少一年的通知的情况下简单地移除对自己框架的支持。

要直接使用XCTest,您需要使用Swift (推荐)或Objective-C。没有Appium提供的语言选择那么多,但对这两种语言的支持是一致的,因为它们都使用相同的实现。Swift是一种强有力的语言选择,尤其是对于较大的项目,因为它的类型安全性允许您在运行前注意到许多编程错误。这两种语言都在Xcode中提供了强大的智能感知(自动完成)支持,这是Python或Ruby等“动态”语言无法提供的。

随着更多关于将XCTest用于UI测试的信息变得可用,以及越来越多的人感到能够采用它,围绕它的社区正在增长。用于UI测试的框架的许多部分已经在单元测试中使用了很多年,所以在添加UI测试支持之前,在许多方面已经有了很多关于使用它的信息。

这两个框架都使用了相似的概念-- XCUIApplication类似于Appium的驱动程序,它可以让你访问屏幕上的内容。这两个框架提供的功能级别可以说非常相似,因此这取决于您优先考虑的是可靠性(XCTest)还是跨其他平台的可重用性以及语言可访问性(Appium)。

票数 19
EN

Stack Overflow用户

发布于 2017-09-06 15:42:28

Appium和XCTest的一些利弊:

支持XCTest的

  • 苹果自己的产品在发布新版本的Xcode/iOS时不太可能出现兼容性问题
  • 测试运行效率更高(可以说,errors)
  • Record/play back功能可以更快、更少地随机地识别对象对于那些更难识别对象的人来说更容易
  • 比Appium更容易安装(尤其是在iOS 10+之后)

支持Appium的

黄瓜

  • 允许更多的代码在苹果和安卓自动化系统中重用选择兼容的languages

  • Compatible与
  • 前端代码

这两个工具都有其他的优缺点,但在使用了这两个工具之后,我觉得这是主要的(在我个人看来)

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46044804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档