webrtc 应用程序的自动化测试?

Automated testing of webrtc application?

我正在开发一个会议应用程序,详情:

最简单的测试场景是:

  1. 打开两个浏览器选项卡(如果需要打开浏览器)
  2. 模拟按钮点击两者。
  3. 模拟接受getUserMedia请求(最难的部分
  4. 更多仿真内容和读取 JavaScript 变量值并验证它们。

到目前为止,我一直在对所有这些进行手动测试,但我认为长期 运行 不切实际。 我没有做太多自动化测试(只是一些单元测试)。最初,我认为 mocha 可以完成这项工作,但开始认为这还不够。

我需要一些关于 tools or alternate test frameworks 实现浏览器启动、选项卡打开和授予媒体共享权限所需的指示。

Chrome 具有用于跳过获取 getUserMedia 权限以及使用假设备的命令行标志:

  • --use-fake-ui-for-media-stream(跳过 GUM 权限提示)
  • --use-fake-device-for-media-stream(使用假设备)

检查 http://blog.andyet.com/2014/09/29/testing-webrtc-applications, http://googletesting.blogspot.se/2014/08/chrome-firefox-webrtc-interop-test-pt-1.html 了解背景信息

如果要单击按钮,标准工具是 selenium。如果您更喜欢 Javascript 而不是 Java,那么 webdriver.io 之类的绑定可能就是您要找的东西。

如果你喜欢Ruby,可以看看水豚。您可能还想使用 Xvfb,这样您就可以 运行 在没有显示器的机器上进行测试。

这是一个示例片段,可让您使用 Philipp 建议的开关打开 Chome。我用它来创建无头视频录制测试。

Capybara.register_driver :chrome do |app|
  switches = %w(disable-popup-blocking disable-translate use-fake-ui-for-media-stream use-fake-device-for-media-stream test-type)
  Capybara::Selenium::Driver.new(app, browser: :chrome, switches: switches)
end

如果您正在寻找 webrtc 测试,您可能希望看到 loadmultiplier..,之前已回答 here