2024年4月26日发(作者:)

移动版H5项目的兼容性测试初探

本文其实就是,我对于“如何对H5项目的兼容性进行测试”这个问题的探索过程,与

大家分享一下。大部分资料都是来自于网络,并通过我自己的验证得出的;还有一小部分是

我自己经验总结得出的。可能有不严谨的地方,希望大家能够指正。

一、 测试流程简介:

(一) 测试计划与测试设计阶段:这个阶段主要是对项目文档进行解读,然后根据项目的

计划情况,安排测试计划;根据项目的策划文档,设计相关的测试方案和测试用例。

(二) 测试执行阶段:主要进行:功能测试、回归测试、兼容性测试。功能测试的主要测

试方法是:黑盒测试。根据测试用例,对已经开发完成并通过验收的功能,根据测

试计划和测试用例执行功能测试、修改BUG并回归测试、兼容性测试:一般都是

在功能测试完成,BUG全部清理完后才进行,主要是为了尽量减少BUG对兼容性

测试结果的影响。

(三) 测试总结

目前基本就这几个阶段,但是考虑到现在开发节奏比较快,基本上没有第一阶段,直接

进入执行测试阶段,在测试的时候,是边想边测试的。这就导致了会出现测试用例覆盖率不

达标的情况。

二、 兼容性测试:

目的:让项目在各种运行环境下,都能有统一的表现。

如果一个项目是在多平台上运行,或者同一平台的不同环境下运行,在功能测试完成之

后,都要进行兼容性测试。为的就是:让这个项目能在多个平台上能有如一的表现。

(一) 分析H5项目的运行环境:

根据平台分:android、IOS、wp

1) Android平台下的微信浏览器内核:

1. 微信6.1版以上,会调用内置的浏览器运行(QQ浏览器X5内核,基于

Android 5.0 WebView Blink内核,Chrome 37)

PS:在个别机型上有区别,即使是微信6.1,也不会调用微信的浏览器运

行,而是调用系统自带的浏览器运行。典型:华硕ZenFone2,比较特殊

的一点是,这个手机使用了intel的CPU。

判断是否调用微信内置浏览器,可在微信打开网页后,下拉会在屏幕最上

方有提示。

2. 6.1以下版本的微信,会调用系统自带的浏览器内核运行。

Android内嵌的浏览器,又根据系统版本的不同,有所区别:

a) android4.2之前的系统

b) android4.2之后的系统。浏览器内核是有区别的(虽然他们都是基于

WebKit内核的)。

2) IOS平台下的浏览器:由于IOS系统的限制,微信不能使用自家的内核,只能

调用Safari的内核运行。这里的话,又分为两种情况:

1. IOS8之前

2. IOS8以后包括IOS8(区别就是,IOS8中,苹果推出了新的网页浏览器控

件 WKWebView。详情可取搜索WebKitin IOS8)。鉴于IO8以下设备的占

有率很低,在测试成本和时间面前,我觉得可以忽略掉。

3) 分辨率:影响页面显示

1. Android手机目前主流的分辨率有:1280*720、1920*1080、854*480、

960*540

2. IOS设备目前的主流分辨率有:1136*640、1334*750、1920*1080、

2048*1536、1024*768

1136*640

IOS设备 1334*750

1920*1080

1280*720 16:9

1920*1080

Android设备

854*480

960*540

2048*1536

IOS设备 4:3

1024*768

3. 所以,根据以上分辨率,可以分为两类:16:9和4:3.

4) 手机CPU和GPU,这方面对H5项目影响较小,在提高测试效率面前,可以忽

略掉。

(二) 测试策略:

1) 使用:微信6.1以上、调用微信内置浏览器运行的Android手机测试(小米4)

2) 使用:微信6.1以上、调用手机自带浏览器运行的Android手机测试(华硕)

3) 使用:微信6.1以下、调用手机自带浏览器运行的Android4.1的手机测试(小

米3)

4) 使用:微信6.1以下、调用手机自带浏览器运行的Android4.3的手机测试(三

星S3)

5) 使用:分辨率为16:9、IOS版本是8.0以上的设备测试(iPhone6 Plus)

6) 使用:分辨率为4:3、IOS版本是8.0以上的设备测试(iPadmini2)

综上:完成在这6个设备上的测试,基本可以达到我之前指定的测试标准。

三、手机硬件:这里主要介绍下影响手机兼容性的硬件:CPU和GPU

(一) CPU:这里主要简单介绍下android设备的CPU,由于苹果对CPU数据暴露很少,

所以能查到的资料也不多。

1) 高通:移动处理器的绝对领导者,移动处理器高端市场占有率很高

1. 最高型号:高通骁龙820

2. 代表设备:小米系列、国内各大旗舰设备、三星S7、S7 Edge等

2) 联发科:占据了移动处理器市场的中低端位置。Heliox20世界上首款10核移

动处理器。

1. 最高型号:heliox25(美[hi:li':oʊ])

2. 代表设备:魅族MX5、红米系列、国产各种千元机等

3) 海思:华为自主研发CPU,定位高端市场

1. 最高型号:麒麟955

2. 代表设备:华为P系列、荣耀系列、Mate系列。如华为P9(955)

4) 三星猎户座:三星自主研发CPU,主要用于三星S系列旗舰手机、及魅族MX、

MX2、MX3、MX4PRO、PRO5等手机。

1. 最高型号:

Exynos 7420

2. 代表设备:三星S2-三星S6,部分note系列手机

5) Intel

1. 最高型号:Atom X7系列(类似于酷睿 I7系列)

2. 代表设备:华硕ZenFone系列,联想K900等。

PS:这个CPU各种兼容性问题啊。。

6) Nvidia的Tegra系列:现在手机上很少见这个系列的CPU了,android平板上

有些会用到。市场占有率很低。

1. 最高型号:Tegra X1

2. 代表设备:Google Nexus9平板

7) 联芯:国内芯片厂,定位低端

1. 最高型号:L1860C

2. 代表设备:红米2A

8) 德州仪器:在2,3年前的手机上出现过,后来不做手机CPU了

1. 代表机型:nexus2

大概总结下:

高通、联发科市场占有率较高,兼容性也比较好。海思是华为自主研发,在华

为很多机型上都会用到,偶然一些应用会出现兼容性的问题,兼容性一般。三

星猎户座占有率也不低,但是最新的S7系列手机中,三星都放弃使用自家的

CPU改用高通了,可见其性能还是和高通有差距。兼容性方面三星CPU还是

比较好的。其他:intel、tegra、联芯现在占有率都很低,基本可以忽略了,而

且intel CPU的兼容性超级差。

(二) GPU:

1) Adreno:高通自家CPU自带的GPU,性能强大,有高通CPU的地方,就有这

个GPU

1. 最高型号:Adreno 530

2. 代表设备:小米5

2) PowerVR系列:主要用于苹果设备的GPU,性能强大

1. 最高型号:PowerVR 7XT系列

2. 代表设备:苹果设备

3) Mali系列:ARM推出的GPU,联发科、三星CPU猎户座、海思麒麟等,各种

不能研发GPU的厂商都用这种GPU

1. 最高型号:Mali T880

2. 代表设备:三星S6、华为P9等

4) Nvidia的Tegra系列:显卡大厂Nvidia研发的TegraCPU自带的GPU

1. 最高型号:Tegra X1

2. 代表设备:GoogleNexus 9

大概总结下:

移动设备的GPU基本都与CPU有关联:高通CPU都是用的Adreno,苹果设备

全线都是使用PowerVR系列的GPU,德州仪器的CPU,也是使用PowerVR的

GPU的。其他剩余的一些CPU厂商,基本都使用的ARM的Mali系列GPU,

Nvidia的CPU也是只用他自家的GPU。

GPU方面的兼容性问题都比较少,市场占有率比较高的:Adreno、PowerVR、

Mali系列,兼容性基本都没啥大问题。