虚拟机上的跨浏览器测试 - 问题?

时间:2010-05-12 15:02:18

标签: javascript css cross-platform cross-browser vmware

我是一个组织的成员,其中一些非常称职的人在是否在虚拟机上测试JavaScript密集型Web应用程序的跨浏览器行为(针对IE6 / 7/8,FF2 / 3,Chrome)存在争议在XP / Vista / 7上)是可靠的。这是在Linux机箱主机上使用VMWare服务器。

虽然看到的差异很少,但有些情况下很难说它是虚拟产品还是不同的机器配置。

我向社区提出的问题是,人们对此有何体验?有没有人相信VM会造成不一致,或者它们通常是否可靠?我们能相信他们吗?

6 个答案:

答案 0 :(得分:6)

如果虚拟机运行的是普通操作系统,则浏览器应该没有任何问题。

渲染和性能差异可能会很明显,但无论如何你应该测试它。

请记住,您的最终用户也可能在虚拟机中浏览您的网站。

答案 1 :(得分:3)

VM是最好的方法。其他选项,如多个IE差异更频繁。 我个人使用 Virtual Box

答案 2 :(得分:3)

我从来没有看到虚拟机中的代码与“真实”PC上的代码之间的行为差​​异,我无法直接归因于底层操作系统之间的补丁差异。同样地,我有过在建筑物中工作的经验,其中只有一个神秘配置的笔记本电脑会表现出奇怪的行为,而且没有其他机器能够做同样的事情。 (是的,在Web应用程序中奇怪的Javascript行为。我现在从它的记忆中发抖。)

现在,如果您的代码涉及测试可能受视频驱动程序运行影响的事情,那么您可能会担心。显然,基于VM的方法不会给视频硬件带来太多变化。但是,对于Web应用程序,这似乎不太可能是一个问题。

答案 3 :(得分:2)

在VM内运行的操作系统和在实际金属上运行的操作系统之间没有区别!

显然,正如您所指出的,操作系统和应用程序配置可能难以进行并排比较。

此外,虚拟化可能存在性能差异。这不应对浏览器行为产生可衡量的影响。

我建议与您的伙伴合作,提出一个操作系统配置黄金副本脚本,您可以在构建可解决可能的比较问题的虚拟主机操作系统和主机操作系统时遵循这些脚本。例如:

答案 4 :(得分:2)

在VM中运行与在您可能需要注意的真实机器上运行的唯一区别是实际的硬件差异。使用VM的优势在于所有操作系统组合都将针对相同的虚拟硬件运行 - 相同的香草VGA“适配器”,相同的香草网络“卡”等。但是,对于测试,这也是一种负担,因为这意味着你没有测试现实世界的硬件。

在浏览器中运行的JavaScript通常不应该关心您的硬件,但可能存在可以观察到工件的情况。如果您的JavaScript使用高级浏览器功能,如插件,ActiveX控件或显示功能,如Flash,Silverlight,OpenGL或Canvas等,或视频或音频播放等,您的代码可能对机器之间的硬件差异敏感在同类虚拟机中进行测试时不明显。同样,如果您的JavaScript执行相当低级别的有线协议操作(通过XmlHttpRequest发送数据包),则VM虚拟网络堆栈与实际网卡硬件和驱动程序之间的差异可能会导致数据包到达时间,数据包丢失或可能发生变化甚至是乱序包。

最佳行动方案IMO是在虚拟机中进行大部分测试,甚至是所有自动化测试,仅仅因为它更易于管理,更经济,而且预算和时间表都可以进行一些测试在广泛不同的硬件上 - 超快速和超级可怕的视频卡,内置主板音频以及售后声卡,uniproc和multiproc系统等。

答案 5 :(得分:0)

没有区别。我们运行跨浏览器测试服务,并将VMWare ESXi用于所有基于Windows和Ubuntu的配置。 VM映像下的浏览器就像在“真实”操作系统下一样呈现。