网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

让跨浏览器测试 Web 应用程序变得简单

http://www.diybl.com/ 2008-1-25  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

我们都知道(我们也应该 知道),需要在多个浏览器和操作系统中测试我们的 Web 应用程序。但这个任务常常是理论上行得通却难于付诸实现。用户可能会使用各种各样的浏览器和操作系统组合来访问您的站点,而要实现一整套完整的跨浏览器测试则可能对您的开发资源造成不小的损耗。

什么?除了 IE 还有这么多浏览器?

21 世纪早期的开发人员可能只需要对 Internet Explorer 进行测试,但是这些日子已经一去不复返了。如今,IE 占据了大约 80% 的浏览器访问量。这个数字非常庞大,但并不具有绝对优势 — 当然,没有公司会将 20% 的用户群拱手与人。

您也不要妄想您的用户使用的浏览器特性可以反映大部分 Internet 用户的习惯。根据国家和兴趣的不同,使用浏览器和操作系统的的习惯也不尽相同。很多站点都针对特定的用户群,这些站点的用户很可能使用的是非 Windows 操作系统和 Internet Explorer 以外的浏览器。例如,访问 developerWorks 站点的访客中,60% 的人使用 Internet Explorer,而 35% 的人使用 Firefox。特别是 Web 开发专区,使用 Firefox 的人数多达 51%,而只有 41% 的访客使用 Internet Explorer。

幸运的是,一些工具和技巧可以使跨浏览器测试变得稍微简单一些 — 并且开销也更低。在本文中,您将了解各种可用于测试的策略;根据您的需求和资源,您可以找到最适合自己的策略。我将首先介绍一些比较全面的测试技术,如果资源和时间的限制使您无法实现所需的测试,本文还将介绍一些替代方法。

浏览器的小花招

附加功能

请记住,并不是所有人都可以在其浏览器上启用很多 Web 应用程序所依赖的两种技术 — Flash 和 JavaScript。对于本文介绍的技术,不管您的最终选择是什么,都应该在打开和关闭 JavaScript 和 Flash 的情形下进行测试(很多托管服务提供了一种简单的方法来启用这些选项)。对 cookie 也是如此 — 关闭 cookie、清除,执行所有可能的操作来模拟访问站点的浏览器的可能状态。

无疑, JavaScript 是 Ajax 应用程序的基础。对 Ajax 代码进行跨平台测试稍微有些困难;关键在于,越接近真实的用户体验,硬件或浏览器模拟层越少,测试效果就越好。跨浏览器调试 Ajax 应用程序比较复杂,并且使用搜索引擎正确地进行索引也很困难,这两大原因阻碍了这种应用程序的广泛应用。有关更多信息,请参考 参考资料 中的链接,其中包括 developerWorks Ajax 资源中心的链接。

跨多个浏览器和操作系统进行测试,最显而易见、最全面(当然成本也最高)的方法就是对多个浏览器和操作系统进行实际测试。从很多方面讲,浏览器是测试过程中最简单的部分,因为大多数主流浏览器都是免费的。尽管如此,请记住,您将进行测试的不仅仅是几种不同的浏览器,还包括同一 浏览器的各种版本。作为开发人员,您通常都会在自己的计算机中使用最新最好的浏览器版本 — 这也是出现 “对多个浏览器进行测试” 这一咒语的原因之一 — 但是,快速查看一下站点的浏览器统计信息,您就会发现,并不是所有用户都像您一样。

目前,同时运行同一种浏览器的多个版本比较困难,因为大多数浏览器的安装过程都覆盖了以前的所有版本。还好,有一些解决方法。对于 Firefox,可以将每个浏览器的可执行文件保存为不同的名字,然后确保首次启动各个版本时启用配置文件管理程序,这样就不会共享这些配置文件。图 1 展示了同时运行的两个 Firefox 浏览器版本 — 最新的 2.0.0.10 发行版和比较陈旧的 0.7 版本。


图 1. 同时运行的多个 Firefox 版本
同时运行的多个 Firefox 版本

对于 Internet Explorer,这个过程要稍微复杂一些。Windows 实际上 不希望您这样做;为了应对它的 “抵制”,您需要对注册表设置进行一些调整。一家小型软件公司 TredoSoft 发布了一款可以安装多个 IE 版本的免费工具,以及能够正确调整注册表键和 DDL 的指令,该公司因此而获得了广泛关注;请查看 参考资料 中的链接(其中还包含我即将介绍到的其他工具和扩展的链接,但是我以及 developerWorks 不会对这些链接进行担保)。

进行实际测试
不仅应该使用不同配置对各种浏览器进行测试,测试计算机(或者,适当规模的企业中受信任的远程用户测试程序)也应该有自己的 Internet 连接。换而言之,不要忘记测试真实的连接,这样便不会由于本地加载图片和脚本而影响测试准确性。尽可能多地添加真实世界中的因素 — 弹出窗口和广告拦截程序、个人防火墙和用户可能在其浏览器中使用的所有其他软件,这些因素都会影响页面的显示方式;也可以帮助您更好地理解真实终端用户的体验。University of Washington 的 Web Tripwire Toolkit(参见 参考资料)可以帮助您了解由于其他干扰而非浏览器实现引起的古怪问题。

当然,在设置并运行所有这些浏览器之前,需要知道从哪里获得它们!比如,Microsoft® 不会在其网站上提供 Internet Explorer 5 的下载,并且在 Mozilla Foundation 页面您也不一定能获得 Firefox 1.0,这些都是老版本。幸运的是,积极的 Web 用户们为旧的可执行文件创建了档案文件。evolt.org 上由自愿者推动的 Web 社区提供了大量各种风格的旧版浏览器,包括 IE、Opera 等等,但是缺少最新的 Mozilla 发行版;这些可以在诸如 filehippo.com 及类似的文件聚合站点找到,您可以很轻松地找到这些站点。对于 Apple 的 Safari,开发者喜爱的 Multi-Safari 项目将早期的 Safari 版本进行了打包,因此可以方便地实现并行运行(参加 参考资料 中有关内容的链接)。

节省屏幕空间

处理多个浏览器时可能遇到的一个实际问题就是如何避免窗口混乱。虽然,很多时候无法避免,但是您至少可以通过两种方便的工具来稍微整理一下。IE Tab 是一种 Firefox 插件,允许您在一个 Firefox 选项卡中运行一个 Internet Explorer 实例。这并不是模拟 — 它确实使用了 IE 呈现引擎,这意味着您看到的内容就是您在 Explorer 中实际获得的内容,但是,这也意味着只能在 Windows 中工作。图 2 展示了它的实际效果。


图 2. 使用 IE Tab
同时运行的多个 Firefox 版本

RightLynx 是一种针对 Internet Explorer 和 Firefox 的插件,当您右键单击时将弹出一个窗口,显示当前页面在 Lynx 中的显示状态,因此您不必始终打开活动的终端窗口;一个 Web 服务将在 Lynx 中加载页面并将结果文本发送回您的计算机。这些工具都是免费的,并且安装简单,您可以在 参考资料 一节找到相关链接。

Lynx:古老而又崭新的浏览器

当我提到 Lynx 时,您可能会大吃一惊。年轻的开发人员可能已经忘记了这个基于文本的浏览器,它最早出现于 90 年代早期,专门针对 UNIX® 命令行(但是也有针对 DOS、Windows 等的版本)。

文章整理:DIY部落 http://www.diybl.com (本站)   【点击打包该文章】
[1] [2]
如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言

 

最新新闻