webrtc 应用程序的自动化测试

Automated testing of webrtc application?

本文关键字:自动化测试 应用程序 webrtc      更新时间:2023-09-26

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

  • 目标:铬浏览器

  • 服务器:节点.js(当前为Windows ENV)

最简单的测试场景是:

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

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

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

Chrome 有命令行标志,用于跳过 get UserMedia 权限以及使用虚假设备:

    --
  • use-fake-ui-for-media-stream (跳过 GUM 权限提示)
  • -
  • -使用假设备进行媒体流(使用假设备)

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

如果你想点击按钮,标准工具是硒。如果你更喜欢Javascript而不是Java,像 webdriver.io 这样的绑定可能是你正在寻找的。

如果你喜欢Ruby,看看Capybara。 您可能还希望使用 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..,之前在这里回答过。