【问题标题】:Automated testing of webrtc application?webrtc应用程序的自动化测试?
【发布时间】:2015-01-30 03:47:55
【问题描述】:

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

  • 目标:chrome浏览器

  • 服务器:node.js(当前是 windows 环境)

最简单的测试场景是:

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

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

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

【问题讨论】:

  • 负载倍增器支持 webrtc 测试。你可以关注here

标签: javascript testing automated-tests mocha.js webrtc


【解决方案1】:

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

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

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

如果你想点击按钮,标准的工具是 selenium。如果您更喜欢 Javascript 而不是 Java,那么您可能正在寻找诸如 webdriver.io 之类的绑定。

【讨论】:

    【解决方案2】:

    如果你喜欢 Ruby,看看 Capybara。您可能还想使用 Xvfb,以便可以在没有显示器的机器上运行测试。

    这是一个示例 sn-p,它可以让您使用 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
    

    【讨论】:

    • 出于某种原因,从当前版本的 Capybara 开始,我似乎无法获得使用 'chromeOptions' => { 'args' => [ ... ] } 的语法(此处未显示)正常工作……上面的语法对我和我都有效看绿色测试视频
    【解决方案3】:

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

    【讨论】:

      最近更新 更多