【发布时间】:2016-10-18 08:59:03
【问题描述】:
我们正在开发一个基于 Twilio 的 Web 应用程序(AngularJS 和 Microsoft WebAPI),并使用 SpecFlow、Selenium Webdriver 和 Chromedriver 组装了许多自动化测试。我们使用 Programmable Voice 组件拨打电话,自动测试拨打测试号码。测试在开发人员机器上都运行良好,但是当部署在运行在 VMWare VSphere/ESXi 6 主机上的 Windows 2012R2 Datacenter 虚拟机上时,它们会失败,因为 Chromedriver 找不到记录设备,因此不会建立与 Twilio 的 WebRTC 连接。我们使用的主机没有声卡,因此显示没有可用于 VM 的音频设备。我相信我们可以将 USB 声卡添加到主机并与一个 VM 共享,但这是一个笨重的解决方案,使 VMWare DRS 有点无用,我们有几个 VM 想要运行这些测试。我希望我不是第一个尝试使用 Twilio 进行自动化测试的人,所以正在寻找其他人如何在虚拟/云环境中实现它?我已经向 Twilio 提出了一个支持案例,但他们没有任何想法。
【问题讨论】:
-
有许多不同的“虚拟音频设备”驱动程序可以满足您的需求。这是一个:software.muzychenko.net/eng/vac.htm 警告:我实际上并没有在虚拟化云环境中这样做,所以这可能会也可能不会。
-
快速更新。发现 Chrome 和 FF 都内置了允许您模拟音频设备的开关:blog.andyet.com/2014/09/29/testing-webrtc-applications
-
感谢 Devin,但我从未设法让这些虚拟音频设备在我们的环境中工作。他们安装但从不向 Windows 展示任何设备。我的理论是,这是由于缺少提供给 VM 的声卡,我认为这些设备仍然需要声卡。明天我将向其中一台主机添加一个 USB 外部声卡,我将向一台 VM 展示它,所以我很快就会发现。
-
我见过一些 Chrome 的开关,但不是那个。我给它一个狂欢。
-
Devin - 你是明星,Chrome 开关 --use-fake-ui-for-media-stream 很不错,也适用于 chromedriver。我已经成功地在没有声卡的 VM 上进行了 Twilio 调用,谢谢。顺便说一句,我还安装了一个 USB 声卡 (startech.com/uk/Cards-Adapters/Sound/USB-Audio/…),并且可以与一个 VMWare VM 共享它。这也有效,但根据我的原始帖子非常有限,因此您的解决方案要好得多。