`

H5前端性能测试

 
阅读更多



      一般说到性能测试,我们首先想到的是接口(服务端压测),但是如果服务端接口性能ok,但是当你的页面在浏览器/app native运行时,性能仍然不太理想。这时候就需要对前端进行性能测试。由于H5可跨平台,开发成本低,可随时上线,且试错成本低,可轻量的触达用户提供便捷的服务等优点,越来越受到追捧。但它也有缺点那就是无法将数据存储在本地,性能相对较差(例如3D效果,频繁的输入输出等等)所以做H5性能测试尤为重要。若H5是嵌入在navtive App中,则需要先在移动设备端进行专项测试(内存占用测试、弱网测试、流量测试、CPU测试、电量测试、帧率测试等)若发现CPU测试和帧率测试等等不达标时,也可借助chrom DevTools Performance来分析瓶颈,这里主要是讲述chrom Devtools Performance性能测试。

 

   HTML5可以使用chrom Devtools Performance来分析运行时的性能表现。

  • 如何使用performance
      1. 启动chrom浏览器-->打开新的无痕浏览窗口(在无痕浏览窗口浏览的页面数据,历史url,搜索信息,cookie信息不会被保存。需要把不用的扩展程序禁用,以防这些扩展程序影响测试结果).如图所示:
 
     2. 在无痕浏览窗口中访问demo
     3. 按F12/Command+Option+I(mac)/Control+shift+I(windows,Linux)来打开devtools-->选择“Performance”Tab
     4. 模拟移动设环境(CPU和Network)。移动端设备CPU一般比台式机和笔记本弱很多,且网速也可能比PC端有线网速慢。可以用CPU控制器(CPU Throttling)来模拟移动端设备CPU;用Network来模拟移动端设备的网络。
      操作步骤:
                a. 在DevTools中-->点击performancer tab。
                b. 选上Screenshots checkbox(默认是已被选上的)。这个是用来测试有动画效果时进行截图
                c.点击Capture Settings--> 设置CPU,选择4*slowdown,这是指模拟PC端1/4的低速CPU(即移动                       设备的CPU只有PC端的1/4)。
               d. 点击Capture Settings--> 设置Network
             

 
     5.设置demo
             为了使得这个demo有相对统一的运行表现(不同的机器性能有差异)。这个demo提供了自定义功能,用来确保这个demo的统一表现。
           操作步骤如下:
                 a. 点击demo上的【Add 10】这个按钮直到你能很明显的看到小方块移动变慢,在性能比较好的机 器上可能要多点击几次这个按钮。
                 b. 点击【Optimeze】按钮,会发现小方块会变的更快而且动画变得平滑。
                 c. 点击【un-optimeze】按钮,小方块又会变的更慢。
    6. 记录运行时性能表现
       在之前的 DEMO中,当运行优化模式的时候,小方块移动地非常快。为什么呢?明明2个模式都是移动了同样数量的小方块而且移动的时间也一样。那么现在我们在Performance界面下录制所发生的一切,并且分析下这个记录,从而找到非优化模式下的性能瓶颈。
      操作步骤如下:
        (1) 在DevToolsk ,点击 "Record"小图标,这时候DevTools就开始录制各种性能指标。录制时等待几分钟。

             (2)点击录制窗口中的【stop】,DevTools停止录制,并开始处理数据,完全处理数据后会显示性能报告。
       

 7. 通过各项指标分析报告
     一旦得到了页面的性能表现报告,那么就可以用它来分析页面的性能,从而找到性能瓶颈。
     (1) FPS(frame per second)是用来分析动画的一个主要性能指标。能确保在60fps的话,那么用户体验是不错的。如下图所示,观察FPS图表,如果发现一个红色的长条,那么说明这些帧存在严重问题,有可能导致非常差的用户体验。一般来说,绿色的长条越宽(越高),说明FPS越高,用户体验越好。


     (2)就在FPS图表下方,看到的就是CPU图标,如下图所示。在CPU图表的各种颜色与Summary面板中的颜色相互对应的, Summary面板就在Performance面板的下方。CPU图表中的各种颜色代表着在这个时间段内,CPU在各种处理上所花费的时间。如果你看到了某个(除Idle)占用了大量的时间,那么这可能就是一个可以找到性能瓶颈的线索。

    (3)把鼠标移动到 FPS,CPU或者NET图表之上,DevTools就会显示这个时间点界面的截图。左右移动鼠标,可以重发当时的屏幕录像。这个叫scrubbing,他可以用来分析动画的各个细节。


   (4) 在Frams图表中,把鼠标移动到绿色条状图上,DevTools 会展示这个帧的FPS。每个帧可能都在60以下,都没达到60的标准。如图所示:


    PS:chrom可以打开实时的FPS面板。操作步骤如下:
       a.  按下Command+Shift+p(Mac)/Control+Shift+p(windows,linux)打开命令菜单
       b. 输入Rendering,选择 show frames per second(FPS) meter,FPS实时面板就出现在页面的右上方。
 

 8. 定位瓶颈
      现在已经确定到这个的动画性能表现不太好,下一步就需要找到为什么。
     (1) 注意Summary面板,可以看到CPU花费了大量的时间在rendering上。那么可以可能减少rendering时间来提高性能。如下图所示:

   (2) 展开main图表,DevTools展示了主线程运行状况,X轴代表着时间。每个长条代表着一个event,长条越长就代表着这个event花费的时间越长。Y轴代表了调用栈。在栈里,上面的event调用了下面的event。

    PS:
       a. 若在事件的长条右上角出现红色小三角,说明这个事件是存在问题的,需要特别注意。如下图所示,若双击reveal这个链接,它会高亮触发这个事件的event。如果点击了app.js:94这个链接,就会跳转到对应的代码处。


 
      b. 在app.update这个事件的长条下方,有很多被触发的紫色长条。如果放大这些事件长条,可以看到每个长条都带有红色小三角。点击其中一个紫色事件长条,Devtools会在Summary面板里显示了更多关于这个事件的信息。在Summary面板中点击app.js:70链接,DevTools会跳转到需要优化的代码处。如下图所示:


 
 
  • 大小: 26.2 KB
  • 大小: 144.7 KB
  • 大小: 112.9 KB
  • 大小: 99.4 KB
  • 大小: 216 KB
  • 大小: 153.2 KB
  • 大小: 229.6 KB
  • 大小: 207 KB
  • 大小: 167.1 KB
  • 大小: 161.2 KB
  • 大小: 189.8 KB
  • 大小: 140.8 KB
  • 大小: 204 KB
  • 大小: 145.5 KB
分享到:
评论

相关推荐

    浅谈H5前端性能测试实践1

    在本文中,我们将探讨H5前端性能测试的实践方法,主要关注H5页面加载过程、白屏问题的分析以及解决卡慢问题的策略。H5因其灵活性、轻量化和跨平台特性,在各种业务场景中广泛应用,但其性能表现相较于原生应用常常略...

    购物车H5前端页面,带前计算端逻辑

    在构建一个具有前端计算逻辑的H5购物车页面时,我们需要关注多个关键点,这些知识点涵盖了前端开发的多个方面。以下是对这些要点的详细说明: 1. **HTML 结构**: - 页面需要包含各种元素,如商品列表、选择框...

    H5 人脸活体检测(数字读取检验)

    2. 性能优化:前端处理大量图像和音频数据可能影响用户体验,需要优化算法和代码结构。 3. 用户隐私保护:在收集和处理人脸数据时,必须遵守相关法律法规,确保用户隐私安全。 4. 抗干扰能力:系统应具备一定的抗...

    H5活体验证页面,测试demo

    提供的H5活体验证页面测试Demo是开发过程中的一个重要环节,它帮助开发者检查功能的正确性,优化性能,以及发现并修复可能存在的问题。测试应覆盖正常情况和异常情况,如网络波动、摄像头访问失败等。 总的来说,...

    基于 vue-cli3 搭建的前端H5模板

    本项目是一个基于 Vue CLI 3 搭建的前端H5模板,适用于快速构建响应式、高性能的移动网页应用。 在开始详细解释之前,我们先了解下Vue CLI 3 的核心特性: 1. **快速初始化**:Vue CLI 3 提供了一个全局安装的...

    史上最全H5测试点整理(摘自博客)

    H5测试是软件测试的一部分,主要包括功能测试、适配测试、性能测试、安全测试、H5上线后回归、H5测试与PC端测试不同的点等六个部分。 一、功能测试 功能测试是H5测试的基础,主要包括: 1. 关注页面请求。每个...

    mobile h5性能优化

    4. 前端性能指标的监控:持续跟踪前端性能的关键指标,比如加载时间、执行时间、内存占用等,及时发现性能瓶颈并进行优化。 5. 工具和框架的合理选择:选择合适的工具和框架也是提升性能的关键。一些框架如Preact和...

    【腾讯TMQ】移动H5性能测试平台解决方案.docx

    ### 腾讯TMQ移动H5性能测试平台解决方案 #### 平台目的与背景 在探讨移动H5性能测试平台之前,我们首先需要明确该平台建立的目的与背景。传统意义上的H5性能测试多集中于PC端,常用工具如Firebug、Fiddler和...

    饿了么前端h5页 App用

    饿了么是一个知名的在线餐饮服务平台,其前端H5页面需要具备良好的用户体验、交互设计以及高效的性能。HTML是构成网页的基本元素,而H5是HTML的最新版本,引入了许多新特性,如离线存储(Service Worker)、媒体元素...

    H5前端面试题,内含答案

    ### H5前端面试知识点详解 #### 一、Web标准与浏览器兼容性 - **Web标准理解**:Web标准包括HTML、CSS、JavaScript等规范,旨在提高网页的可访问性、可维护性和跨平台兼容性。 - **浏览器内核差异**: - **IE**:...

    h5动态注入js代码

    2. A/B测试:通过注入不同版本的JS代码,对比不同用户体验,进行优化决策。 3. 数据追踪:实时添加追踪代码,收集用户行为数据,用于分析和改进产品。 4. 安全更新:当发现安全漏洞时,可以通过注入修复代码,而无需...

    H5测试以及app与pc测试相同和不同。

    2. **前端性能测试**:评估页面加载速度、渲染效率等前端性能指标。 3. **浏览器兼容性测试**:确保H5页面能够在不同类型的浏览器(如Chrome、Firefox、Safari等)和不同版本下正常工作。 4. **服务器端性能测试**:...

    苏州综合性电商行业小程序开发及H5前端开发岗位介绍JD模板.pdf

    【苏州综合性电商行业小程序开发及H5前端开发岗位】是一个结合了互联网技术和电子商务的专业职位,主要涉及微信小程序和H5页面的开发与维护。在这个岗位上,开发者需要具备丰富的前端开发经验和移动端技术实力,以便...

    前端H5框架自适应模板

    在现代Web开发中,前端H5框架扮演着至关重要的角色,它们为开发者提供了构建响应式、高性能和易于维护的Web应用程序的工具。本资源“前端H5框架自适应模板”显然是一个专注于移动设备优化的解决方案,特别适用于750...

    h5仿wechat聊天框架

    同时,由于已经在实际项目中得到应用,我们可以推断这个框架在兼容性和性能上应该是经过验证的,具有一定的可靠性和实用性。 【H5技术详解】HTML5是超文本标记语言的最新版本,增加了许多新特性,如离线存储、拖放...

    H5报名系统模板

    4. 测试与优化:在多平台和多设备上进行测试,检查页面在不同环境下的兼容性和性能,对发现的问题及时进行优化。 5. 集成后端:将前端页面与后端服务器连接,实现数据提交和处理功能,确保报名信息能正确保存。 四...

    经典HTML5小游戏h5游戏源代码合集(37款).zip

    通过分析并实践这些源代码,你可以学习到如何创建游戏场景、设计游戏逻辑、优化性能以及构建交互体验。每款游戏都有其独特的设计和实现方式,深入研究这些源码,你将能够掌握更多关于HTML5游戏开发的技巧和最佳实践...

    原生 H5 商城静态页面(HTML+ CSS+ JS)

    原生H5商城静态页面是基于HTML5、CSS3和JavaScript技术构建的电子商务网站前端界面。这些技术共同为用户提供了丰富的交互性和动态视觉效果,使在线购物体验更加流畅且吸引人。下面将分别介绍HTML、CSS和JavaScript在...

    vue2+webpack搭建h5框架

    Vue2和Webpack是现代Web开发中的两个重要工具,它们结合在一起可以构建高效、模块化的H5前端框架。Vue2是一个轻量级的JavaScript框架,它提供了声明式的数据绑定和组件化功能,使得开发者能更容易地构建用户界面。...

    H5游戏源码 养成游戏我和小狗的一天.zip

    总之,"我和小狗的一天"这个游戏源码是一个综合性的H5游戏开发实例,涉及到了前端开发的多个方面,对学习和理解H5游戏开发有很好的参考价值。通过深入研究源码,可以学习到如何构建一个完整的H5游戏,从基础技术到...

Global site tag (gtag.js) - Google Analytics