一般说到性能测试,我们首先想到的是接口(服务端压测),但是如果服务端接口性能ok,但是当你的页面在浏览器/app native运行时,性能仍然不太理想。这时候就需要对前端进行性能测试。由于H5可跨平台,开发成本低,可随时上线,且试错成本低,可轻量的触达用户提供便捷的服务等优点,越来越受到追捧。但它也有缺点那就是无法将数据存储在本地,性能相对较差(例如3D效果,频繁的输入输出等等)所以做H5性能测试尤为重要。若H5是嵌入在navtive App中,则需要先在移动设备端进行专项测试(内存占用测试、弱网测试、流量测试、CPU测试、电量测试、帧率测试等)若发现CPU测试和帧率测试等等不达标时,也可借助chrom DevTools Performance来分析瓶颈,这里主要是讲述chrom Devtools Performance性能测试。
HTML5可以使用chrom Devtools Performance来分析运行时的性能表现。
1. 启动chrom浏览器-->打开新的无痕浏览窗口(在无痕浏览窗口浏览的页面数据,历史url,搜索信息,cookie信息不会被保存。需要把不用的扩展程序禁用,以防这些扩展程序影响测试结果).如图所示:
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停止录制,并开始处理数据,完全处理数据后会显示性能报告。
![](http://dl2.iteye.com/upload/attachment/0130/8464/0700b04c-6db9-3c5b-acf1-26f9ba08ad9f.png)
7. 通过各项指标分析报告
一旦得到了页面的性能表现报告,那么就可以用它来分析页面的性能,从而找到性能瓶颈。
(1) FPS(frame per second)是用来分析动画的一个主要性能指标。能确保在60fps的话,那么用户体验是不错的。如下图所示,观察FPS图表,如果发现一个红色的长条,那么说明这些帧存在严重问题,有可能导致非常差的用户体验。一般来说,绿色的长条越宽(越高),说明FPS越高,用户体验越好。
![](http://dl2.iteye.com/upload/attachment/0130/8468/ebef9439-9183-3944-9792-5c6b73275f07.jpg)
(2)就在FPS图表下方,看到的就是CPU图标,如下图所示。在CPU图表的各种颜色与Summary面板中的颜色相互对应的, Summary面板就在Performance面板的下方。CPU图表中的各种颜色代表着在这个时间段内,CPU在各种处理上所花费的时间。如果你看到了某个(除Idle)占用了大量的时间,那么这可能就是一个可以找到性能瓶颈的线索。
![](http://dl2.iteye.com/upload/attachment/0130/8470/358bf28a-4242-358d-a961-a5925a054886.jpg)
(3)把鼠标移动到 FPS,CPU或者NET图表之上,DevTools就会显示这个时间点界面的截图。左右移动鼠标,可以重发当时的屏幕录像。这个叫scrubbing,他可以用来分析动画的各个细节。
![](http://dl2.iteye.com/upload/attachment/0130/8472/41d1560c-9032-3314-9d55-24e151382c68.png)
(4) 在Frams图表中,把鼠标移动到绿色条状图上,DevTools 会展示这个帧的FPS。每个帧可能都在60以下,都没达到60的标准。如图所示:
![](http://dl2.iteye.com/upload/attachment/0130/8474/eeca4470-2f63-36a9-8e65-69819e79f796.png)
PS:chrom可以打开实时的FPS面板。操作步骤如下:
a. 按下Command+Shift+p(Mac)/Control+Shift+p(windows,linux)打开命令菜单
b. 输入Rendering,选择 show frames per second(FPS) meter,FPS实时面板就出现在页面的右上方。
![](http://dl2.iteye.com/upload/attachment/0130/8480/0d0c73c5-d494-3e8e-b9d6-7cebb2166e26.png)
8. 定位瓶颈
现在已经确定到这个的动画性能表现不太好,下一步就需要找到为什么。
(1) 注意Summary面板,可以看到CPU花费了大量的时间在rendering上。那么可以可能减少rendering时间来提高性能。如下图所示:
(2) 展开main图表,DevTools展示了主线程运行状况,X轴代表着时间。每个长条代表着一个event,长条越长就代表着这个event花费的时间越长。Y轴代表了调用栈。在栈里,上面的event调用了下面的event。
![](http://dl2.iteye.com/upload/attachment/0130/8485/d6335c28-4b4d-37f7-a712-e20703d53e00.jpg)
PS:
a. 若在事件的长条右上角出现红色小三角,说明这个事件是存在问题的,需要特别注意。如下图所示,若双击reveal这个链接,它会高亮触发这个事件的event。如果点击了app.js:94这个链接,就会跳转到对应的代码处。
b. 在app.update这个事件的长条下方,有很多被触发的紫色长条。如果放大这些事件长条,可以看到每个长条都带有红色小三角。点击其中一个紫色事件长条,Devtools会在Summary面板里显示了更多关于这个事件的信息。在Summary面板中点击app.js:70链接,DevTools会跳转到需要优化的代码处。如下图所示:
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8450/ada586ed-456b-360d-ad9d-6de48e29eeb4-thumb.jpg)
- 大小: 26.2 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8452/de315d37-fa4c-3c5d-a578-0c39b287c129-thumb.png)
- 大小: 144.7 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8460/e5a3dfae-e028-3870-92ff-37a12968d8df-thumb.jpg)
- 大小: 112.9 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8462/c9e5bac5-0e39-33c5-803e-7b05693fe13a-thumb.png)
- 大小: 99.4 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8464/0700b04c-6db9-3c5b-acf1-26f9ba08ad9f-thumb.png)
- 大小: 216 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8468/ebef9439-9183-3944-9792-5c6b73275f07-thumb.jpg)
- 大小: 153.2 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8470/358bf28a-4242-358d-a961-a5925a054886-thumb.jpg)
- 大小: 229.6 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8472/41d1560c-9032-3314-9d55-24e151382c68-thumb.png)
- 大小: 207 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8474/eeca4470-2f63-36a9-8e65-69819e79f796-thumb.png)
- 大小: 167.1 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8480/0d0c73c5-d494-3e8e-b9d6-7cebb2166e26-thumb.png)
- 大小: 161.2 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8483/a4e377e4-ede7-34cf-9d80-94602e3007ac-thumb.jpg)
- 大小: 189.8 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8485/d6335c28-4b4d-37f7-a712-e20703d53e00-thumb.jpg)
- 大小: 140.8 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8489/0a636bbf-eec0-364c-8e6c-dbfe465c5a63-thumb.png)
- 大小: 204 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0130/8491/8df0d0bd-47e5-368d-998a-53b14835852a-thumb.png)
- 大小: 145.5 KB
分享到:
相关推荐
在本文中,我们将探讨H5前端性能测试的实践方法,主要关注H5页面加载过程、白屏问题的分析以及解决卡慢问题的策略。H5因其灵活性、轻量化和跨平台特性,在各种业务场景中广泛应用,但其性能表现相较于原生应用常常略...
在构建一个具有前端计算逻辑的H5购物车页面时,我们需要关注多个关键点,这些知识点涵盖了前端开发的多个方面。以下是对这些要点的详细说明: 1. **HTML 结构**: - 页面需要包含各种元素,如商品列表、选择框...
2. 性能优化:前端处理大量图像和音频数据可能影响用户体验,需要优化算法和代码结构。 3. 用户隐私保护:在收集和处理人脸数据时,必须遵守相关法律法规,确保用户隐私安全。 4. 抗干扰能力:系统应具备一定的抗...
提供的H5活体验证页面测试Demo是开发过程中的一个重要环节,它帮助开发者检查功能的正确性,优化性能,以及发现并修复可能存在的问题。测试应覆盖正常情况和异常情况,如网络波动、摄像头访问失败等。 总的来说,...
本项目是一个基于 Vue CLI 3 搭建的前端H5模板,适用于快速构建响应式、高性能的移动网页应用。 在开始详细解释之前,我们先了解下Vue CLI 3 的核心特性: 1. **快速初始化**:Vue CLI 3 提供了一个全局安装的...
H5测试是软件测试的一部分,主要包括功能测试、适配测试、性能测试、安全测试、H5上线后回归、H5测试与PC端测试不同的点等六个部分。 一、功能测试 功能测试是H5测试的基础,主要包括: 1. 关注页面请求。每个...
4. 前端性能指标的监控:持续跟踪前端性能的关键指标,比如加载时间、执行时间、内存占用等,及时发现性能瓶颈并进行优化。 5. 工具和框架的合理选择:选择合适的工具和框架也是提升性能的关键。一些框架如Preact和...
### 腾讯TMQ移动H5性能测试平台解决方案 #### 平台目的与背景 在探讨移动H5性能测试平台之前,我们首先需要明确该平台建立的目的与背景。传统意义上的H5性能测试多集中于PC端,常用工具如Firebug、Fiddler和...
饿了么是一个知名的在线餐饮服务平台,其前端H5页面需要具备良好的用户体验、交互设计以及高效的性能。HTML是构成网页的基本元素,而H5是HTML的最新版本,引入了许多新特性,如离线存储(Service Worker)、媒体元素...
### H5前端面试知识点详解 #### 一、Web标准与浏览器兼容性 - **Web标准理解**:Web标准包括HTML、CSS、JavaScript等规范,旨在提高网页的可访问性、可维护性和跨平台兼容性。 - **浏览器内核差异**: - **IE**:...
2. A/B测试:通过注入不同版本的JS代码,对比不同用户体验,进行优化决策。 3. 数据追踪:实时添加追踪代码,收集用户行为数据,用于分析和改进产品。 4. 安全更新:当发现安全漏洞时,可以通过注入修复代码,而无需...
2. **前端性能测试**:评估页面加载速度、渲染效率等前端性能指标。 3. **浏览器兼容性测试**:确保H5页面能够在不同类型的浏览器(如Chrome、Firefox、Safari等)和不同版本下正常工作。 4. **服务器端性能测试**:...
【苏州综合性电商行业小程序开发及H5前端开发岗位】是一个结合了互联网技术和电子商务的专业职位,主要涉及微信小程序和H5页面的开发与维护。在这个岗位上,开发者需要具备丰富的前端开发经验和移动端技术实力,以便...
在现代Web开发中,前端H5框架扮演着至关重要的角色,它们为开发者提供了构建响应式、高性能和易于维护的Web应用程序的工具。本资源“前端H5框架自适应模板”显然是一个专注于移动设备优化的解决方案,特别适用于750...
同时,由于已经在实际项目中得到应用,我们可以推断这个框架在兼容性和性能上应该是经过验证的,具有一定的可靠性和实用性。 【H5技术详解】HTML5是超文本标记语言的最新版本,增加了许多新特性,如离线存储、拖放...
4. 测试与优化:在多平台和多设备上进行测试,检查页面在不同环境下的兼容性和性能,对发现的问题及时进行优化。 5. 集成后端:将前端页面与后端服务器连接,实现数据提交和处理功能,确保报名信息能正确保存。 四...
通过分析并实践这些源代码,你可以学习到如何创建游戏场景、设计游戏逻辑、优化性能以及构建交互体验。每款游戏都有其独特的设计和实现方式,深入研究这些源码,你将能够掌握更多关于HTML5游戏开发的技巧和最佳实践...
原生H5商城静态页面是基于HTML5、CSS3和JavaScript技术构建的电子商务网站前端界面。这些技术共同为用户提供了丰富的交互性和动态视觉效果,使在线购物体验更加流畅且吸引人。下面将分别介绍HTML、CSS和JavaScript在...
Vue2和Webpack是现代Web开发中的两个重要工具,它们结合在一起可以构建高效、模块化的H5前端框架。Vue2是一个轻量级的JavaScript框架,它提供了声明式的数据绑定和组件化功能,使得开发者能更容易地构建用户界面。...
总之,"我和小狗的一天"这个游戏源码是一个综合性的H5游戏开发实例,涉及到了前端开发的多个方面,对学习和理解H5游戏开发有很好的参考价值。通过深入研究源码,可以学习到如何构建一个完整的H5游戏,从基础技术到...