推广 热搜: 关键词  效果  自动  直播  应用  信息  设置  提升  哪些  智能 

H5性能测试与优化:关键指标、方法与实践

   日期:2024-12-27     作者:3vy8j    caijiyuan  
核心提示:1、H5指移动网页本身 H5是指用H5语言制作的一切数字产品。 H5提供了全新的框架和平台,包括提供免插件的音视频、图像动画

1、H5指移动网页本身

H5是指用H5语言制作的一切数字产品。

H5提供了全新的框架和平台,包括提供免插件的音视频、图像动画、本体存储以及更多酷炫而且重要的功能,并使这些应用标准化和开放化

H5的最显著的优势在于跨平台性,用H5搭建的站点与应用可以兼容PC端与移动端、Windows与Linux、安卓与IOS。它可以轻易地移植到各种不同的开放平台、应用平台上。

随着H5页面的普及和运用,深深影响着我们各个业务的发展,H5性能测试越来越受到重视。

2、浏览器渲染原理和过程

浏览器作为一个客服端,它的主要作用就是展示可访问的资源,不管这些资源是本地资源还是通过网络请求获取到的资源。

  1. 地址栏输入地址触发网络请求,获取到html文件。
  2. HTML解析器解析HTML文件构建成为DOM树。
  3. 遇到CSS通过CSS解析器解析成为CSSOM。
  4. 遇到JS通过JS解析器解析。
  5. DOM Tree和CSSOM构建呈现树(6、7两个步骤)。
  6. 呈现树根据结构样式确定节点的位置(布局或者回流) ----回流。
  7. 确定好位置以后,根据外观样式绘制 ----重绘。
  8. 通过UI后台和用户界面组件把内容显示到浏览器主窗口上。

3、H5性能参数

H5测试内容包括:功能测试、浏览器兼容测试、前端性能测试、服务端性能测试,这里主要介绍H5性能测试。

(1)H5性能测试点

影响H5性能有以下几个要素:网络带宽、DNS解析、服务器处理能力、数据库操作等。以下是H5性能的测试点:

 

 

 

 

 

加载速度

网络

WIFI

5G

4G

3G/2G

启动

首字

首屏

缓存

有缓存

无缓存

缩短响应时间

CDN部署

合理分配域名

 

 

 

流量

http请求数

资源合并

http状态

失败资源处理

单个请求优化

缓存机制

压缩内容

资源合理组合

预加载

分页加载

css放顶部

js放底部

服务端压力

服务端压测

服务端性能

 

体验

提示信息

弱网络下加载提示

接口数据异常提示

打开性能

打开或刷新页面是否抖动

应用回退后台后体验

(2)H5性能相关参数介绍

以下简单介绍和H5性能相关的几个参数概念

时间相关

(1)白屏时间:用户首次看到网页有内容的时间,即第一次渲染流程完成时间。

(2)首屏时间:是指用户看到第一屏,即整个网页顶部大小为当前窗口的区域,显示完整的时间。

(3)首资源下载时间:从开始下载到第一个资源均下载完成的时间,不包括页面绘制时间。

(4)总资源下载时间:从开始下载到所有资源均下载完成的时间,不包括页面绘制时间。

(5)用户可操作时间:从页面开始加载到用户操作可响应的时间。

上述各种时间指标应根据当前H5的具体情况,选择合适的测试指标。

WebView相关

在android和IOS上测试H5性能,测试人员还应该关注因加载H5而引起的app常规性能指标。

(1)内存:加载页面前后内存变化,可间接反映H5中资源数量和大小,如dom数量,图片大小

(2)CPU:当页面中资源样式复杂,强调视觉效果时,测试员可观察CPU占用率来反映H5绘制质量。如果CPU长期处于高占用率,可考虑降低高计算量的视觉效果等手段

(3)FPS:帧率尤其在有视频和动画效果的H5中,测试员应该重点关注,防止严重的卡顿流出。

性能要求可以参考下表

 

项目

指标

内存

1.页面内反复切换tab,切换场景,滑动页面等场景不存在内存泄露,给出数据并说明结论; 2.运行过程中内存峰值<单个应用程序最大可能内存的60%;3.退出后内存恢复到进入游戏前的占用值

电量

程序放后台或处于飞行模式的情况下耗电小于10mAh

流量

无异常流量消耗;不存在资源的重复拉取

弱网络

1.无crash;2.体验方面提示用户网络环境差;3.拉取失败能正常返回

cpu

CPU 启动时cpu占比<20%;运行时cpu占比峰值<80%

Crash

网络/网络状态发生变化时/连续8小时运行,无crash

流畅度

avgFPS不小于40;inFPS大于0

4、测试方法和工具

(1)抓包工具--Fiddler、Charles等

这类工具不仅可以抓包,还可以对包进行篡改,动态展示瀑布流,对web进行调试。

(2)平台型工具--Page Speed、PCAP Web Performance Analyzer、WebPagetest等

可以快捷的测试出H5前端性能中的数据、视图,并给出一定程度的优化建议。

工具

优点

缺点

PCAP Web Performance Analyzer

方便移动端H5测试,包直接来源于移动端货去PCAP文件

各类资源数据统计一目了然

瀑布流展示http请求过程

操作麻烦,抓包和分析都需要人工操作

属于离线分析,不实时

没有具体的web展示

Page Speed

直观展示测试结果,并给出优化建议

可以测试移动端和PC端

提供了网页速度和用户体验两类结果,包括字体清晰度,窗口大小等用户体验结果

只有结果,没有详细的资源数据统计

没有提供各个http的request和response的详细数据

WebPagetest(推荐

提供了首屏时间、首字节时间,全界面加载时间的工具,并提供对应时间点的截图

提供了瀑布流视图和连接视图,清晰展示了并发请求的http连接以及请求资源

提出优化建议checklist,详细标出各个资源是否可以优化,如压缩、缓存、发布CDN、设置GZIP等

提供测试过程的视频演示

并不是专门为移动端h5测试所设计的

关注h5前端页面本身的性能,没有关注浏览器引起的内存、CPU、FPS等的变化

Chrome DevTools(推荐

支持移动端h5在PC端远程调试,能够对具体的移动设备进行测试

集成了Page Speed

提供Network面板,展示瀑布流视图,各类资源清晰展示,并提供了缩略图,方便查看图的大小尺寸,以及是否有缺失和冗余

提供TimeLine面板,展示CPU、内存、FPS等性能数据

录制分析的一种静态分析方法,不同于fiddler等抓包工具提供的实时抓包、修改等功能

5、工具使用举例

(1)WebPageTest

WebPageTest是一个免费开源的在线性能评测工具;其使用真正的浏览器(IE和Chrome等)与真实的消费者连接速度,可以从全球多个地点运行免费网站速度测试;并依据测试结果提供丰富的诊断信息,包括资源加载瀑布图,页面速度优化检查和改进建议,会给每一项内容一个最终的评级。

打开官网地址:https://www.webpagetest.org

开源地址 https://github.com/WPO-Foundation/webpagetest

在上图中2处输入要测试的URL网址。在3处选择地址(Test Location),如下图,下拉选择就好,可以选择安卓,iOS,PC端等设备,以及不同国家地等;补充:点击Advanced Setting下拉可以进行高级设置,不过我们一般选择默认就好设置完成,点击START TEST,开始测试;

(2)Chrome DevTools

Chrome DevTools(Chrome 开发者工具) 是内嵌在 Chrome 浏览器里的一组用于网页制作和调试的工具。

手机端USB和PC连接,并打开开发者模式

在浏览器地址栏输入chrome://inspect 或者 about:inspect 打开DevTools

如下图所示;由于网络限制缺少性能分析的功能

 

6、H5性能优化及原理

1)Http请求个数 

有统计证明:一个网页最终到达终端用户有80%的时间都是在JS,CSS,图片,mp3,flash等资源的http请求。另一方面,http请求的数量也是有限制的,浏览器对同一个域名有连接数限制,不同浏览器内核、不同版本的请求数不尽相同,大部分的并发请求数是6个。

看来通过够控制http请求的数量,减少http请求时间,达到减少网页加载和呈现的时间,能带来更好的用户体验。

(2)组件是否压缩

通常来说,组件压缩是一种增加CPU压缩解压缩时间来减少网络传输消耗的办法,并且通常网络资源较cpu资源更紧张,所以对合适的对象设置压缩能个取得良好的收益。

压缩方法:在http请求中设置所接受到压缩方式,在Server端对Response资源进行压缩再传给浏览器。一般使用GZIP设置content-Encoding字段。

压缩对象:从http请求返回资源中的html,js,CSS,xml等都可以设置压缩,值得注意的是我们不需要对图片音乐等资源设置压缩,因为这些资源本身已经压缩过了,再次压缩收益并不高,而且增加CPU负担。Js,CSS我们通常通过去掉空格和回车来压缩,再经过GZIP压缩,能达到良好的压缩效果。

(3)图片格式和大小是否合适 

图片格式:显示效果较好的图片格式中,有webp、jpg和png24/32这几种常见的图片格式。一般来说,webp的图片最小,但在iOS或者android4.0以下的系统中可能会有兼容性问题需要解决。

图片尺寸:这获取图片尺寸时候应该考虑图片具体的展示场景,如当前移动设备中常用个尺寸规格为480×800、600×1024、720×1280,800×1280等,从原图来保证图片能够被呈现,而不是通过代码对图片放大或缩小。

图片压缩:对于jpg,png格式图片来说本身就已经经过了压缩,这对于稀缺的带宽资源是不够的,我们还需要更加优化的压缩算法,通过一系列的图片压缩工具如TinyPNG, Smush.it可以得到更好的压缩且图片质量不变。

(4)CSS放在顶部  

在浏览器渲染过程中谈到,dom树构建完成后。CSS要放到html代码的开头的head标签结束前。如果网页是动态生成的,那么在head代码完成后可以页面输出,这样浏览器就会更快地解析出来head中的内容,开始下载CSS文件资源。而CSS放在底部则会引起重新绘制,用户侧感受到“闪屏”的不好体验。

(5)JS放在底部

JS在下载的时候会引起两个问题:阻止网页内容的展示并阻止其他资源下载。在“减少http数量”部分中,我们谈到各种资源的下载是并行的,根据不同域名不同浏览器内核并行数量有所不同,所以下载js时候,并行下载机制失效。并且在js中可能包括document.write等改变页面布局的操作,所以渲染引擎会等待js下载完成再开始渲染。所以用户侧页面加载时间会因为等待而变得更长。

(6)使用CDN

CDN内容分发网络(Content Delivery Network)将源站内容发布到最接近用户的“边缘”节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器能力带来的访问延迟高问题,提供一系列加速解决方案。所以,如果H5的用户分散在全国各地,建议尽可能的将资源放到CDN,如腾讯云CDN。

 

 

 

参考文章:https://mp.weixin.qq.com/s/drQcMJukTjozNRlpjtLPXw

 

本文地址:https://sicmodule.kub2b.com/tnews/5364.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号