MixboxArtifacts 0.2.3

MixboxArtifacts 0.2.3

Artyom RazinovArtyom Razinov 维护。



  • Avito 的编码者社群

概览

Version License Build Status

为 iOS 的强大端到端 UI 测试框架。

目前它在 Avito 中使用,我们有 900+ 的 UI 测试,其中 95% 是绿色的,25% 在 PR 上运行,我们正在努力让 100% 的测试在 pull request 上执行。我们在 3 个平台上运行这些测试,需要 1.5 个小时(测试总时长为 55+ 小时),因为我们使用了 Emcee,一个可以跨多台机器运行测试的测试运行程序(注意 Mixbox 不需要 Emcee)。

如果您想在公司中使用它,请向我们提交一个问题。我们正在努力使其可供社区使用,但是这并不是我们现在的重点。我们的主要重点是创建一个 100% 稳定的套件。

特性

  • 操作和检查(显然)
  • 像素可见性检查
  • 每个检查都有轮询功能
  • 完全自动的滚动
  • CollectionView 中的每个单元格在测试中都是可见的(包括屏幕外的单元格)
  • 应用和测试之间的进程间通信可自定义
  • 测试中可见的视图的自定义值
  • 页面对象
  • 网络模拟(通过 NSURLSessionProtocol)
  • 设置权限(相机/地理位置/通知等)
  • 推送通知模拟(限制:只能在活动应用内!)
  • 在测试中打开 URL
  • 地理位置模拟
  • 硬件键盘(很少定义按键代码,但易于实现)
  • 无需分支仓库即可自定义
  • 所有功能都可以禁用
  • Swift & Objective-C
  • 已测试(但不是很彻底)

即将推出(尚未开源)

  • 页面对象的代码生成
  • 从应用获取所有断言失败
  • 与 Springboard 交互的封装
  • 报告(包括 Allure,一个具有 Web UI 的开源报告系统)
  • 在发布和测试构建之间切换无障碍值

安装

使用Mixbox有两种方法。

第一种在示例中有描述,非常简单,基本就是使用pod SomePod

第二种我们在Avito中使用,看起来像这样:测试(在Podfile中查看)。

目前文档还不够完善,所以您可以尝试将Mixbox链接到项目中(示例),但请参考测试中的代码示例。

支持的iOS/Xcode/Swift版本

  • Xcode 10.0, 10.1, 10.2.1。
  • Swift 4.0+
  • iOS 9.3.2, iOS 10.3, iOS 11.3, iOS 11.4, iOS 12.0,中间版本可能可行或不可行,上述版本已在CI上进行测试

Xcode 9及更早版本不再受支持。此外,我们不知道Xcode 10.2.0是否可行,它未在我们的CI上进行测试。

已知问题

  • 在iOS 11.2上崩溃(在iOS 11.3、iOS 11.4上运行正常)。
  • 设置权限在实际设备上不起作用(也可能有其他问题,我们在实际设备上未进行测试;基本功能正常)。
  • 未测试设备旋转,我认为我们可能存在相关问题。
  • 未测试iPad。

其他文档