5. Jenkins 兼容性测试

做兼容性测试的原因:

Android,iOS版本多,API在不同版本上的行为不一致,系统机制发生变化。Android定制Rom多,系统函数和机制被修改,系统参数差异,比如默认堆大小。硬件差异,GPU太差影响卡顿和渲染,屏幕尺寸,分辨率不同影响UI布局,相关的传感器硬件差异。

兼容性不好造成的问题:

App安装不上,App crash,业务流程中断,尺寸错乱,告警和报错,卡顿,相应慢,花屏,黑屏,白屏等。

Android 设备组合:

android版本覆盖:4.4 ,6.x,8.x,9.x,10.x,11x

手机厂商定制Rom覆盖:华为,小米,OPPO,VIVO,三星,魅族等

典型机型覆盖:从用户数据中提取

典型分辨率:可用模拟器代替

iOS设备组合:

iOS版本覆盖:9.x ~ 13.x

典型机型覆盖:iPad,iPhone

典型分辨率:常见分辨率,刘海屏,可用模拟器代替

模拟器可以用来做UI,分辨率的测试,真机用来测试定制ROM的兼容性测试。

ROM是由英文Read only Memory的首字母构成的,意为只读存储器。顾名思义,就是这样的存储器只能读,不能像RAM一样可以随时读和写。手机ROM指的是存放手机固件代码的存储器(常说的刷机也就是指的是重新构建自己想要的ROM),比如手机的操作系统、一些应用程序如游戏等。手机ROM主要指的是手机内部可存储资料、程序、文档的空间,如果有不足的,可通过SD卡,mmd卡等外置卡解决文档存量需求。 而手机RAM主要是指手机的内存,主要针对手机软件运行所需要的缓存堆栈,一般对手机的运行速度有直接的影响。

兼容性测试一般的流程:

兼容性测试流程

测试环节可以用monkey工具或者Appcrawler来完成。

使用Appcrawler完成兼容性测试

也可以使用第三方兼容性测试平台,例如腾讯的WeTest。需要上传直接可登录的App安装包,挑选想测试的机型,例如top100机型。完成测试之后,WeTest会生成兼容型测试报告:

首先是测试结论,包含测试机型的数据,适配结果的分布,不兼容问题的分布,测试失败的原因,和适配结果。

测试结论

第二部分是设备详情,列出了所有测试设备,并分成适配失败的机型和适配通过的机型:

设备详情

点击每个设备的测试详情页面,能看到测试的数据和截图:

设备详情

最后是性能报告,统计了安装耗时的分布图,启动耗时的分布图,cpu使用率分布图,内存占用分布图,流量使用分布图:

性能分布图

性能测试数据:

性能数据

可以使用Jenkins的STF插件or 节点来设计兼容性测试的策略,要求每个case要在每个设备上都执行一遍

你可能感兴趣的:(5. Jenkins 兼容性测试)