浏览器兼容性测试

PC端浏览器如何选择

为什么考虑兼容性

浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,或者“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。
不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是前端项目需要在不同内核的浏览器中测试网页显示效果的原因。

浏览器内核

截止2014年3月,各浏览器内核的阵营如下:

Trident核心的浏览器:IE6、IE7、IE8、IE9
Gecko核心:FireFox
WebKit核心:safari
Blink核心:chrome(以前是WebKit内核,现在是Blink内核,统称为Chromium内核或Chrome内核)、opera
Trident+WebKit核心:国内的浏览器,如搜狗、360、QQ、百度、遨游等
注:新版Windows自带的edge浏览器,内核为EdgeHTML,2018年12月微软宣称edge浏览器将使用谷歌的 Chromium内核。

历史发展:

WebKit 早先由 Apple 由 KHTML 项目 fork 出来,用于 Safari 浏览器的 Web 引擎。Google Chrome/Chromium 从创始就一直使用 WebKit(WebCore) 作为 HTML/CSS 渲染引擎,由于宽松的协议、轻量级的设计和便捷的应用程序内嵌 API,WebKit 逐渐变得流行起来。尽管上面一众经常被统称为 WebKit,实际上各自都使用了自己的 WebKit 分支或者编译时选项,使得最终的渲染结果也是存在一定的差异的。

Blink Web 引擎是Google 从 WebKit fork 出的引擎,从2013年4月3日就已经在最新版本的chrome浏览器版本中应用。原因是,WebKit2 在 WebCore 层面上实现的进程隔离在一定程度上与 Google Chrome/Chromium 自己的沙箱设计存在冲突,故 Google Chrome/Chromium 一直停留在 WebKit,使用 Backport 的方式实现和主线 WebKit2 的兼容;这增加了 WebKit 和 Chromium 的复杂性,所以,Google 决定从 WebKit fork 出自己的 Blink Web 引擎,并删除了WebKit2 兼容代码。宣布放弃自有渲染引擎跟随 Chromium 的 Opera 也从WebKit跟随Chromium切换到了Blink Web引擎。

Presto: Opera12.16及更早版本曾经采用的内核,现已停止开发并废弃。

64位版本和32位版本的区别

  • 首先是硬件限制。 CPU最初是32位的,后来演化出64位,并且已经是大趋势了。64位是指CPU的通用寄存器的数据宽度为64位,运行64位数据的指令,当然也提供了更大的寻址空间。
  • 还需要操作系统的支持。 32位CPU的机器只能安装32位的操作系统,而64位CPU的机器(现在的主流)则可以选择安装32位操作系统或者64位操作系统。因为64位是兼容32位指令执行的,所以64位CPU的机器可以安装32位操作系统且不存在任何兼容性问题,但是这样显然会抹杀64位CPU的优势,降低执行效率,内存寻址空间也会受到4GB的限制。
  • 最后需要软件层次的支持。 64位的操作系统上可以运行32位和64位的软件,但和操作系统一样,只有64位软件才能最大地发挥出CPU和操作系统的功用和效率,并且,64位操作系统运行32位的软件有可能会出现兼容问题,无法正常或完整执行。

综上,64位的IE浏览器作为软件层次,是由CPU硬件和操作系统共同决定的。当操作系统版本一定时,IE版本基本没有可选择性。虽然32位和64位的IE浏览器在执行方面存在效率和兼容性的差异,但不是我们测试需要区分和关注的重点。

什么是极速模式

国内的浏览器一般是双核浏览器:极速模式(WebKit核心)+兼容模式(Trident核心),为什么?正是为了兼取WebKit核心轻量、高效、快速的优点,和Trident核心对网银等各种情况均有非常好的兼容性表现。

其特点总结如下:

  • 默认情况使用速度更快的WebKit的核心,遭遇兼容性问题时则允许用户手工切换至Trident核心。
  • 一般来说对于网上银行、支付宝这样一些特殊网站,双核浏览器普通采用智能切换技术,即当检测到这些站点时会自动切换到兼容模式。
  • 实现WebKit核心时,例如:在chrome内核升级后,双核浏览器必须拿到chrome内核源码,重新编译测试其浏览器,然后升级双核浏览器本身,才能升级chrome内核。由于同步更新的时间、人力成本过大,所以,一般双核浏览器和chrome的最新版的内核版本,是存在较大的时间差的,双核浏览器的WebKit核心的版本要老旧得多。
  • 实现Trident核心时,双核浏览器以微软操作系统的webcontrol控件为内核(IE浏览器本身也是以webcontrol控件为内核的),所以,当系统的IE升级或者打了更新补丁后,双核浏览器也就自动具备了这些安全防护或性能优化。双核浏览器的兼容模式和IE,是具有更大程度上的一致性。

综上,对于国内的浏览器应该优先和重点保证极速模式下测试回归。

IE各个版本在windows的支持情况

使用引自网上的一张图来说明情况:
浏览器兼容性测试_第1张图片
上图是各个Windows版本可以升级到的IE版本,但实际上,如果是正版系统开启自动更新后,均会由微软自动推送升级至可支持的最新IE版本。

根据上图,考虑到系统的获取以及安装难度为Win8.1>Win8>>Win7>>XP,推荐的虚拟机Windows环境与IE的搭配如下表:

虚拟机的系统版本 IE版本
XP IE6
XP IE7
XP IE8
win7 IE9
win7 IE10
win7 IE11

如何选择被测的浏览器

用数据说话,查看被测应用的浏览器份额。
按照一定比例进行覆盖,例如覆盖份额>5%的浏览器。

手机端浏览器

to be continue

你可能感兴趣的:(学习笔记,测试技术)