在安卓设备上测试WebRTC

作者:Mozilla(原文链接

翻译:刘通

 

         测试WebRTC是一件困难的事情,其是根据内在超时完成的。本地运行很好的测试经常会在自动运行时候发生失败。在Mozilla,我们在AWS实例ARM模拟器上运行绝大部分的测试。在任何人问之前就告诉你们吧,是的这么做很慢。我们最近已经开始在实体手机上(以及模拟器上)运行我们的WebRTC测试。运行的快的话,出现的断续错误也就越少。

         我们首先是在X86模拟器上运行的测试。不走运的是,我们没有在x86上获得多少稳定的测试,甚至在本地模拟器上也是一样。除了这点以为,硬件虚拟支持要求运行x86模拟器运行的非常非常快,但这是在AWS上无法实现的,我们只能在这里看到很少很少的好处。

         我们WebRTC测试经常是在超时的边缘,这就导致了一会一失败的问题。更糟的是,这样的话一个看起来不足轻重的改变都会将测试推下这个边缘,导致一大堆的测试失败以及重要补丁的延迟。因此,我们最终会放弃越来越多的安卓测试。

       想要在移动端上反复运行测试真的是出乎意料的困难。幸运的是,我们Mozilla已经有了Autophone来完成这件事情。Autophone被设计用来在实体手机上运行测试,它很适合在WebRTC测试中做实时的约束。

         我们在Autophone中添加了只当指派影响WebRTC代码的时候此运行测试的功能。这使我们可以每天都能跟进大量的提交。不幸的是,如果看起来没关系的代码造成了某些功能的崩溃,我们会卡在这里。目前为止,这还不是问题。

         这项新工作最近在mozilla-inbound和autoland中已经开始。目前为止,一切都还不错。我们仍然会在模拟器上运行测试,但是正如上文说的一样,我们已经停止了很大一部分模拟器的工作。

        

运行测试

         这些新的工作在Treeherder中以MwCw的形式展现。Mochitests使用下面的语句在本地运行:

./mach mochitest –manifest obj-arm-linux-androideabi/_tests/testing/mochitest/manifests/autophone-webrtc.ini dom/media/tests/mochitest/

而且也可以用下面语句在Try中使用:

testing1

同样的清单也被用在Autophone中的崩溃测试,以及模拟器上,所以不需要特殊的mach指令。想要在Try上运行崩溃测试,要使用autophone-crashtest-webrtc来替换(或者加上)autophone-mochitest-webrtc。

         因为mochitest使用的是与Autophone不同的清单文件,所以你需要进行下面这样的编辑:

testing2

来启用或者关闭测试,而不是使用常用的mochitest.ini文件。

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营