使用 XCTest 自动模拟不良网络连接

Automating bad network connection simulation with XCTest

我为我们的 iOS 应用程序准备了一组自动化 UI 测试,使用 XCTest 编写。 一些测试用例需要在糟糕的网络连接条件下进行验证。

我知道可以使用 Network Link Conditioner 模拟不良网络连接。我知道您也可以在真实设备和模拟器的设置中启用它。启用和设置所需状态似乎只涉及手动步骤。

但是,我想知道是否有可能使这个过程自动化 - 你将如何在 CI 上进行 运行 一套自动化测试(如果其中一些要被测试在糟糕的网络条件下)?

我们没有使用真实设备进行自动化测试。 我无权访问机器 运行 用于 CI 的测试套件。 我没有可以始终启用和设置 NLC 的专用机器,我也不能操作网络本身(路由器等)。 我们在测试中不使用模拟。

不幸的是,网络不好 connection/no 网络连接不容易用 XCTest 测试,也没有简单的方法来设置这样的东西。

有(通常)两种方法可以解决这个问题:

1/ implement some kind of network connection issues to your network-communication methods and run them when running UI tests

2/ test on real device with slow internet connection set in settings. 

不幸的是 - 默认情况下无法在模拟器或 Mac 服务器(您可能正在使用 CI)上设置慢速网络连接,并且第 3 方工具在这方面也不是很好.