MixboxXcuiDriver 0.2.3

MixboxXcuiDriver 0.2.3

Artyom Razinov 维护。



 
依赖项
MixboxUiTestsFoundation>= 0
MixboxIpcSbtuiClient>= 0
 

  • 来自 Avito 的编码者巢穴

概述

Version License Build Status

强大的 iOS E2E UI 测试框架。

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

如果您想在公司中使用它,请向我们提交一个问题。我们正在使其为社区 usable,但我们的主要重点是使套件 100% 稳定。

功能

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

即将推出(尚未开源)

  • 页面对象的代码生成
  • 从应用程序获取所有断言失败
  • 用于与启动屏幕协作的界面
  • 报告(包括 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

其他文档