EarlGreyTest 2.2.2

EarlGreyTest 2.2.2

由以下人员维护:Aditya Atul TirodkarChan Hee ParkAlbert Wang



  • Google LLC.

Apache License Build Status

注意: EarlGrey 2.0 目前支持 Xcode 项目,以及为黑白盒测试从源代码构建。CocoaPods 支持黑白盒测试。欢迎对 CocoaPods 白盒测试和其他包管理器做出贡献。

要使用,请克隆带子模块的 earlgrey2 分支

// Clone EarlGrey 2.0
git clone -b earlgrey2 https://github.com/google/EarlGrey.git

// Download any dependencies
sh Scripts/download_deps.sh

EarlGrey 2.0

EarlGrey 2.0 是一个原生 iOS UI 自动化测试框架,它结合了 EarlGrey 与 Apple 的官方 UI 测试框架 XCUITest

EarlGrey 2.0 允许您用 Objective-C / Swift 编写清晰、简洁的测试,并可实现与 XCUITest 的进程外部交互。它有以下主要优势:

  • 同步: 从运行到运行,EarlGrey 2.0 通过确保应用程序处于空闲状态来确保您将在测试中得到相同的结果。它通过自动跟踪 UI 变化、网络请求和各个队列来实现这一点。EarlGrey 2.0 还允许您手动实现自定义时间。
  • 白盒: EarlGrey 2.0 允许您在测试中查询测试中的应用程序。
  • 原生开发: 与 EarlGrey 1.0 类似,您可以使用 Xcode 原生地使用 EarlGrey 2.0。您可以直接从 Xcode 或 xcodebuild 中运行测试。请注意,EarlGrey 2.0 使用的是一个 UI Testing Target,而不是像 EarlGrey 1.0 那样的 Unit Testing Target。

EarlGrey 1.0 是一个白盒测试工具,它允许您与应用程序底层的交互。由于 XCUITest 是一个黑盒测试框架,因此 EarlGrey 2.0 不能直接实现这一点。为了解决这个问题,我们使用 eDistantObject (eDO) 来实现这些白盒交互。

使用 EarlGrey 2.0

请参阅我们的 设置指南 以使用 Xcode 项目与 EarlGrey 2.0 集成。对于 CocoaPods,请参阅 CocoaPods 设置指南

对于快速样本项目,请查看我们的功能性测试项目。

获取帮助

您可以使用与 EarlGrey 1.0 相同的渠道与我们沟通。请使用 earlgrey-2 标签来区分项目。

苹果隐私描述标签 & 分析

EarlGrey 并不打算用于用户界面产品,因此我们不提供正式的 Apple Privacy Description Label 指引。但话虽如此,这个产品**不**收集或传输任何分析或个人数据。

许可

所有项目的源代码均采用 Apache 2.0 许可证授权。所有图像资源均采用 Creative Commons Attribution 4.0 International (CC BY 4.0) 许可证授权。两个许可证的文本包含在LICENSE文件中。

EarlGrey 2.0 相对于 XCUITest 的优势

  • 与动画、调度队列和网络请求的自动同步,如此处所示
  • 内置白盒测试支持,使用 RMI。
  • 更好地支持脆弱性问题。
  • 更好的测试控制。EarlGrey 拥有大量的匹配器。
  • EarlGrey 对元素的可见性进行像素级的检查。

EarlGrey 2.0 相对于 EarlGrey 1.0 的优势

  • 使用 XCUITest 进行的进程外测试。因此支持系统警报、应用间交互等。
  • 减少了对测试应用主线程的降级。
  • 由于 XCUITest 默认提供无障碍支持,因此支持更好。

注意事项

  • 您不能像 EarlGrey 1.0 那样直接访问测试应用。您需要使用 eDistantObject (eDO) 来实现。
  • XCUITest 应用启动可能增加 6 秒以上的延迟。请明智地使用 XCUIApplication launch