0

我需要针对物理移动设备运行测试,并且需要同时将单元测试部署到许多并发设备。

从概念上讲,这类似于 Xamarin 移动测试云或 Microsoft 移动云......但我需要一个本地等效项,以便我可以测试蓝牙和 GPS 功能

我希望测试 7 到 14 个物理设备都连接到同一个 USB 集线器。

问题

  • 一台 Mac / Windows 机器可以通过一个 USB 端口与多少台设备通信?

  • 在选择硬件时,我需要牢记哪些电源注意事项?

这是我想象的一个视觉示例,但是该设备专注于充电,而不是将 USB 背板连接到计算机。

4

1 回答 1

2

每个 USB 控制器可以有 127 个设备(128 个减去控制器),但我并不是说您可以同时让 127 个设备与主机通信并保持任何类型的数据吞吐量,这是另一回事....

许多设备的核心 USB 问题是功耗。Y即使使用所谓的“有源”USB 集线器,我们也使用具有仅数据侧和仅电源侧的特殊电缆。

做到这一点的真正好的电缆通常是通过迎合发烧友的公司找到的,因此通常非常昂贵并且效果很好,但对于这种用途来说太过分了。也要避免使用廉价的 Y 型电缆,因为您会遇到数据传输失败的情况。低质量的电缆会扼杀数据吞吐量,让您在追逐测试失败的情况下绕圈子。

消费类外部 USB 集线器的创建方式并不相同,并且其功率输出和每个端口的同时吞吐量差异很大。虽然大多数会在一个/两个设备同时通话时表现良好,但当 4-8 个设备都在通话时,许多设备会开始失败。尝试级联它们以增加端口数量也可能导致整个链发生故障。确保您有良好的退货政策,无论您可以从哪里购买。

您没有说明测试框架,而是说明了一些Appium信息:

对于基于 Appium 的 Android 测试,我使用了以下组合:

  • Android<-USB->主机(adb)
    • 8台设备大约是可靠同时(双向)测试的门槛
  • Android<-Wifi->AP<-Host(adb)
    • DHCP 服务器通过 MAC 地址处理为 Android 设备分配 IP,因此我们可以创建端口到 IP 的静态映射,以便通过重新映射adb
    • 每个 Window 服务器/主机同时运行 8 个 Appium 服务器(因此是设备),这是预期的结果
    • 这适用于每个专用AP 大约 32/64 个设备。
      • 请记住,AP 必须距离设备约 4/5 英尺,以实现适当的信号衰减
      • 移动云数据中心使用 EMI / 法拉第笼来隔离每个移动设备机架,其中在每个机架内安装了多个服务器、一个 AP 和设备
  • Android<-USB2Ethernet<-Host(adb)
    • 并非所有设备都支持 OTG,因此这并不总是一种选择,但效果很好。
    • Android<-Wifi->AP与设置一样需要 DHCP 服务器

iOS 是一个完全不同的蠕虫罐:

  • 连接到 Mac 的 4 台 iOS 设备几乎是您可以实现的所有可靠结果。
  • 请记住,主机上的每个 Appium 服务器都会启动一个单独的 Xcode Instruments。
  • Mac Minis 非常适合专用的 Appium 测试服务器。

在 GPS 测试方面,模拟是最简单的方法。有些硬件设备专为 GPS 测试而设计,供顶级应用程序开发人员(地图、交通、航空电子设备等)使用,但对于临时内部设备实验室而言,这些设备通常购买和设置成本很高(需要 EMI / 法拉第笼来封闭设备和 GPS 注入器天线)。

由于干扰、配对问题等,蓝牙在设备实验室中可能是一个大问题......,让许多设备在附近竞争一个(或更多)蓝牙配件可能会使配件无法与任何设备配对. 基本上同时进行蓝牙测试并不能很好地工作,但是您可以使用 Appium 自动打开/关闭 wifi/蓝牙/飞行模式,但是对于 Android 设备,这要求它们都连接到 USB 并且不用于adb将主机端口重新映射到 IP wifi地址...

于 2017-09-14T09:36:45.743 回答