MixboxAllure 0.2.3

MixboxAllure 0.2.3

Artyom Razinov 维护。



 
依赖项
MixboxArtifacts>= 0
MixboxFoundation>= 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)。

如果您在公司中热衷于使用它,请向我们提交问题。我们正努力使其对社区可用,然而,目前这并不是我们的主要关注点。我们的主要关注点是创建一个 100% 稳定的测试套件。

功能

  • 操作和检查(显然)
  • 像素可见性检查
  • 每个检查都有轮询
  • 完全自动滚动
  • UICollectionView 中每个单元格在测试中都可见(包括屏幕外的单元格)
  • 可自定义的进程间通信
  • 测试中可见的视图的自定义值
  • 页面对象
  • 网络模拟(通过 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

其他文档