我想测试我在所有现代版本的 Internet Explorer(6、7 和 8 beta)中创建的网页,但我主要在 Mac 上工作,通常无法直接访问 PC。
14 回答
更新:微软现在为各种版本的 IE 提供虚拟机映像,可以在所有主要的 OS X 虚拟化平台(VirtualBox、VMWare Fusion和Parallels)上使用。
从以下位置下载适当的图像:https ://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
在基于 Intel 的 Mac 上,您可以在虚拟机中运行 Windows。对于要测试的每个版本的 IE,您都需要一个虚拟机。
以下说明包括免费和合法的虚拟化软件和 Windows 磁盘映像。
- 下载一些虚拟机软件。我们将使用的开发人员磁盘映像将与VMWare Fusion或Sun Virtual Box一起使用。VMWare 具有更多功能但售价 80 美元,另一方面,Virtual Box 更基本但对大多数用户免费(有关详细信息,请参阅Virtual Box 许可常见问题解答)。
- 下载微软免费提供的 IE 开发者磁盘镜像:http://www.microsoft.com/downloads/...
- 使用MacPorts提供的cabextract或源代码(感谢Clinton )提取磁盘映像。
- 从http://www.kju-app.org/下载 Q.app并将其放在 /Applications 文件夹中(您需要它来将磁盘映像转换为 VMWare/Virtual Box 可以使用的格式)
此时,该过程取决于您使用的 VM 软件。
虚拟盒子用户
在您的 Mac 上打开一个 Terminal.app(您可以在 /Applications/Utilities 中找到它)并运行以下命令序列,将 input.vhd 替换为您开始的 VHD 文件的名称,并将output.vdi替换为该名称您希望最终的磁盘映像具有:
/Applications/Q.app/Contents/MacOS/qemu-img convert -O raw -f vpc "input.vhd" temp.bin VBoxManage convertdd temp.bin "output.vdi" rm temp.bin mv "output.vdi" ~/Library/VirtualBox/VDI/ VBoxManage modifyvdi "output.vdi" compact
- 启动 Virtual Box 并创建一个新的虚拟机
- 选择刚刚创建的新 VDI 文件作为引导硬盘
VMWare 融合用户
在您的 Mac 上打开一个 Terminal.app(您可以在 /Applications/Utilities 中找到它)并运行以下命令,将input.vhd和output.vmdk替换为您正在处理的 VHD 文件的名称和您想要的名称您生成的磁盘映像具有:
/Applications/Q.app/Contents/MacOS/qemu-img convert -O vmdk -f vpc "input.vhd" "output.vmdk" mv "output.vmdk" ~/Documents/Virtual\ Machines.localized/
这可能需要一段时间(在我的 2.4GHz Core 2 Duo MacBook w/2Gb RAM 上,每个磁盘映像大约需要 30 分钟)。
- 启动 VMWare Fusion 并创建一个新的虚拟机
- 在高级磁盘选项中选择“使用和现有磁盘”,找到刚刚创建的VMDK文件
我推荐三种不同的方法:
基于云的交互式虚拟机
使用类似SauceLabs或BrowserStack的东西。您将能够选择一个浏览器,输入一个 url 并使用真正的操作系统和真正的浏览器,并根据您的需要进行测试和交互。这两者还支持设置往返您自己机器的隧道,因此任何本地主机名都可以正常工作。
还有CrossBrowserTesting,browserling / testling,它们似乎有类似的服务,虽然我自己没有使用过这些。
本地虚拟化
您可以使用VirtualBox(免费和开源,类似于 VMWare 或 Parallels)在您的计算机上创建一个或多个虚拟机。您可能知道也可能不知道,但您不需要为这些虚拟机获取 Microsoft Windows 的正式副本。Microsoft 提供了简化的 Windows 安装的免费 VM 映像,用于测试 Internet Explorer 和 Microsoft Edge(下载)。检查其中一篇文章以启动并运行它:
- 在 Mac OS X 上测试IE6、7、8 和 9,2011-06,xairon.net
- 用于 Mac 的 Internet Explorer 的简单方法,2011 年 9 月,osxdaily.com
过去,还有本地 Mac 应用程序(例如ies4osx),或者如果您没有 Windows,则需要 VM 的 Windows 应用程序(例如IETester或MultipleIEs)。缺点是这些仿真通常不如真正的客户端稳定,而且更难调试,因为它们不在浏览器的自然环境中运行。有时会导致在真实浏览器中不会发生的错误,并且可能没有真实浏览器会出现的错误。
云端截图工厂
如果您不需要交互性和/或需要更便宜的解决方案(请注意,这种方法可能并不总是更便宜,在做出假设之前做一些研究)还有在线服务,就像前一个一样,可以访问真正的浏览器/操作系统环境。但与前面相反,不授予对实际机器的交互访问权限,而只是获取屏幕截图。这既有好处也有坏处。缺点是您无法与之交互。然而,好处是其中大多数都可以轻松汇总屏幕截图,因此您不必一个接一个地开始会话并获取屏幕截图。
我用过的一些:
- BrowserShots(免费并且曾经是我最喜欢的,虽然速度慢让替代品更具吸引力)
- Adobe BrowserLab(也是免费的,需要 Adobe ID。没有 BrowserShots 那么多的选项和覆盖范围,但是:无延迟、即时截图、比较视图以及让截图在给定秒数后而不是立即截取的能力(到测试异步的东西)。
- CrossBrowserTesting(不是免费的,但也有一个交互环境(见上一个方法)和一个截图工厂,就像你自己的私有“BrowserShots”站点)
在 Mac 上虚拟化 Windows 后,您还可以尝试使用Mutiple IE安装程序来获得各种风格的 Internet Explorer,而无需创建单独的 VM 实例。
如果您只想查看页面在各种浏览器中如何呈现的简单屏幕截图,您可以尝试免费服务browsershots,或者有许多服务会自动在多个浏览器中测试您的页面。
Litmus是另一种基于网络的替代方案。
如果您只想获取屏幕截图,Browsershots是另一种选择。
VHD 的最新版本(2009 年 1 月)存在问题。VHD 看到有硬件更改并提示输入许可证密钥,最终将用户锁定在外。目前还没有已知的解决方法。
如果您没有可以在虚拟机中运行的 Windows 副本(VMware 也不是免费的),您可以尝试IEs4Linux。它需要你在你的 Mac 上配置一些开源的东西,但它都是免费的。你至少需要 fink、wine 和 cabextract。有关某些特定命令行方向的信息,请参见上面的链接。没那么难!
我不时使用 Codeweavers Crossover 产品来执行此操作。
http://www.codeweavers.com/products/cxmac/
这是与虚拟化不同的选择,与某些托管解决方案相比,它为您提供了更多的控制权。也就是说,它基于 WINE,因此您可能会遇到这样做的所有问题和问题。也就是说,对于没有插件的基本测试等,它工作得很好。
我不能 100% 确定是否支持 IE8,您需要检查一下,但它肯定会为您提供对 6 和 7 的原生支持。
一旦它可用于 Mac,您就可以使用Spoon 浏览器(基于 Web)。
OSX Daily 解释了如何使用单个终端命令安装 Windows VM(假设您已经安装了 VirtualBox)。总结一下:
即 7:
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="7" bash
即 8:
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="8" bash
即 9:
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" bash
所有的IE!:
curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | bash
有一个名为ies4osx的 IEs4 Linux 的 OSX 发行版,它在没有任何配置的情况下对我来说运行良好。
Browsershots 很好,但如果您需要测试功能而不仅仅是整体视觉渲染,那么它就没有用了。
IEs4OSX 和 IEs4Linux 有严重的缺陷。他们对 Flash 和 Silverlight 等插件和扩展没有真正的支持。渲染不精确,而且非常不稳定。为了进行测试,您确实需要在 Windows 上运行的实际 IE 版本,但您不需要专用的盒子。
VirtualBox 上的 IE 图像确实是最好的,也是最简单的方法。
如果有人正在寻找视觉演练,我在这里有一个截屏视频。
另一个基于 Web 的替代方案(尽管正如 Jeff 所说,对测试功能没有多大用处)是http://www.browsercam.com
如果这是一个商业网站(或一个重要的网站,它实际上在 IE 上运行很重要),那么不要走便宜的路线 - 投资一两台 Windows 机器。您的客户会感谢您的。
否则,虚拟化。