首页 > 其他分享 >测试之前端性能问题定位学习文档

测试之前端性能问题定位学习文档

时间:2024-06-20 16:10:59浏览次数:26  
标签:定位 请求 用户 响应 文档 测试 时间 白屏 加载

一、h5网页加载原理

  • H5与native区别
维度 H5 native原生
 

渲染方式

 

1、从服务器端下载html

2、加载框架渲染依赖的js、css、图片

3、请求接口数据

4、调用浏览器内核渲染 以上对网络要求比较高

 

1、静态资源提前打包到app,直接从本地读取静态资源

2、请求接口数据,调用原生系统内核渲染,容易实现离线功能,可以在无网络环境下提供核心服务

 

跨平台性

 

可跨平台,一份代码,到处运行,开发成本低

基于Web技术(HTML, CSS, JavaScript),可以实现一次开发多平台部署,显著降低了跨平台的开发成本和维护难度

 

不支持跨平台,ios/android需要分别开发两套

 

发布更新

 

部署在服务器端,可快速发布更新

 

1、需要打包、审核、分发不同渠道,用户通过应用商店下载更新,过程较为繁琐,且受应用商店审核政策限制

2、需要用户端升级,周期长,成本高

 

性能

 

加载资源数比较多,对性能有一定影响,尤其是在复杂的动画效果、大量数据处理场景下可能会出现卡顿。

 只需要请求动态接口数据,响应快

原生应用直接调用操作系统提供的API,运行速度快,用户体验流畅,特别是在图形渲染、多媒体处理和硬件访问(如GPS、摄像头)方面表现更佳

   
  •  关键性能指标定义

    具体指标

    指标含义

    白屏时间

    它特指从用户在浏览器中发起请求(比如在地址栏输入URL或点击链接)到浏览器开始显示任何内容(通常是第一个HTML元素或者背景颜色变化,标志着文档开始加载)之间的时间间隔。这个时间段用户看到的是空白屏幕,因此得名“白屏时间”。

    白屏时间直接关乎用户体验,长时间的白屏可能会让用户感觉网站响应慢,甚至误以为没有成功加载页面而选择离开。缩短白屏时间对于提升用户满意度和降低页面放弃率至关重要。

    影响白屏时间的因素:

    网络延迟:用户与服务器之间的数据传输速度。
    服务器响应时间:服务器处理请求并开始发送响应的速度。
    前端资源加载策略:如CSS和JavaScript的加载顺序,以及是否使用了异步加载技术。
    浏览器渲染机制:文档解析速度、样式计算、布局和绘制等。
    资源大小与数量:过多或过大的资源文件会延长下载时间。

    首屏时间

    它表示从用户发起请求到浏览器在视口内(即用户可见区域)渲染出第一个有意义的内容所需的时间。这里的“第一个有意义的内容”可以是文本、图片、SVG元素或是非白色背景等,标志着用户能够开始理解页面内容的起点。

    首屏时间直接关联到用户体验,快速的首屏时间可以让用户感觉网站响应迅速,提高用户满意度和参与度。这个指标关注的是用户感受到页面开始加载内容的那一刻,而不是页面完全加载完毕。

     首屏时间 = 地址栏输入网址后回车 - 浏览器第一屏渲染完成 影响首屏时间的因素:白屏时间,资源下载执行时间 尽量让首屏时间满足一秒钟法则。

  • 白屏时间&首屏时间

  • 不同访问速度下用户体验

响应时间

指标等级

用户体验

说明

0-1s内

快速响应

最理想的响应时间,用户几乎无感知,可以提供最佳的用户体验

toC系统尽量满足这个指标

1-3s

可接受的响应

大多数用户可以接受这个范围内的响应时间,但较长的等待时间可能会导致用户的不满

toB系统,比查询类、报表类交易

3-7s

较慢的响应

这个范围的响应时间可能会引起用户的不耐烦和不满,用户体验可能会收到一定程度的影响

基本不可接受

超过7s

非常慢的响应

超过这个时间的响应时间被认为是非常慢的,用户可能会放弃等待或者离开网站

不可接受

  • 网页加载原理组成内容

静态资源:

HTML 文件:虽然HTML可以包含动态生成的内容,但其本身作为文件存储在服务器上时是静态的。
CSS 文件:定义页面样式的CSS代码,除非通过服务器端处理或JavaScript动态修改,否则是静态的。
图像、视频、音频文件:这些多媒体内容在上传至服务器后内容固定,属于静态资源。
字体文件:例如 .ttf、.woff 等字体文件,内容不会因为用户请求而变化,是静态资源。
部分JavaScript文件:虽然JavaScript可以用于实现动态功能,但JavaScript代码文件本身在服务器上是静态存储的,除非它们是由服务器动态生成的。

动态资源:

动态生成的HTML内容:通过服务器端语言(如PHP、ASP.NET、JSP等)或框架(如Ruby on Rails、Django等)生成的HTML页面,其内容会根据用户请求或数据库数据变化。
API请求返回的数据:从服务器获取的JSON、XML或其他格式的数据,通常根据用户请求或业务逻辑动态生成。
运行时执行的JavaScript代码:虽然JavaScript文件本身是静态的,但通过Ajax技术从服务器获取数据并动态修改DOM或页面内容的过程涉及动态资源。
服务器端渲染的内容:任何在服务器上根据请求参数实时生成的内容都属于动态资源。

  •  H5页面加载过程,包含 静态资源 和动态资源

 

  • html代码示例

 二、常见性能问题&定位方法

charles抓包---前端常见问题 之 js重复加载

根据抓取的信息,看到部分js重复加载。

charles抓包---前端常见问题 之 图片未压缩

 

 charles抓包---前端常见问题 之 接口、图片重复请求

 charles抓包---前端常见问题 之 接口请求总时过长

 

 

charles抓包---前端常见问题 之 响应时间过长

 

charles抓包---前端常见问题 之  我也不知道这是啥问题,没好好听课~~~~  知道的留言一下   延迟时间过长?

 

  •  前端常见问题汇总
问题分类 具体表现 具体问题
常见问题 网页

大量使用内嵌js、css,html文件太大,导致白屏时间长

HTTP Requests 请求数太多,一次加载40-50个以上

接口

响应时间长,接口慢

接口返回报文过大,未做分页,单次返回超过1MB

同一接口重复请求

js/css

jss、css资源文件文件包太大,单个大于100kB

公共js、css资源文件重复请求

未压缩

未使用缓存

请求资源返回http404状态响应码

图片

单张图片太大,并且未压缩,单个大于200KB

图片不规范,滥用大规格图片,比如700*700及以上的列表图、9宫格图

未使用缓存

  • charles抓包耗时分析

Response Code:304 DNS:DNS域名解析的时间(长链接时为0)

Connect:建立链接的时间(长链接时为0)

SSL Handleshake:SSL认证时间(长链接时为0)

Request: 发送请求的时间

Response: 响应包下载时间,和包大小、 网速有关

Latency:服务器响应时间 Speed/Response

Speed:接收/下载速度

Duration:表示本次资源下载的总时间, 等于:DNS+Connect+SSL +Handshake+Request+Latency+Response

 

  • http协议交互过程

请求资源/接口响应时间:T1+T2+T3+T4+T5。 常见性能问题:T4(服务器响应慢)、T5(响应包太大/网络不稳定导致下载慢)

 

三、优化方向

 

 

 

 

标签:定位,请求,用户,响应,文档,测试,时间,白屏,加载
From: https://www.cnblogs.com/xgllovewyy/p/18257394

相关文章

  • Spring Cloud Gateway网关下Knife4j文档聚合,以及动态路由的读取和代码配置
    SpringCloudGateway网关下Knife4j文档聚合,以及动态路由的读取和配置一.Knife4j文档聚合1.1基础环境明细1.2集成knife4j1.2.1maven1.2.2yml配置1.2.2.1其他模块配置1.2.2.2manual手动配置模式1.2.2.3discover服务发现模式1.2.2.3==这里请注意==:如果你使用了:S......
  • 测试管理工具的进化史:从简单到强大的演变过程!
    随着软件开发的不断进步,测试管理工具也在不断地演变和发展。从最初的简单工具到如今的强大工具,测试管理工具经历了漫长的进化过程。本文将详细介绍测试管理工具的演变过程,以及从简单到强大的演变过程中的关键因素。测试管理工具进化史在过去的几十年里,测试管理工具经历了......
  • 软件测试入门基础03-MySQL
    前言:这是我个人的学习记录,我是科班在读有一定基础,很多东西不会特别详细,欢迎大佬指点,也很高兴有人看了能得到帮助这一小节的内容是MySQL,我已经修完数据库,但时间久远忘记许多于是又看了一遍做个笔记。印象中数据库挺简单,简单的说就是增删改查。我修这门课时把实验做完基本上知......
  • 数据采集与控制 > 声音与振动 > PCI8811,该板卡是一款为测试音频和振动信号而设计的高精
    每通道集成独立的IEPE激励源,可实现加速度传感器及麦克风等相关的信号调理。信息社会的发展,在很大程度上取决于信息与信号处理技术的先进性。数字信号处理技术的出现改变了信息与信号处理技术的整个面貌,而数据采集作为数字信号处理的必不可少的前期工作在整个数字系统中起到关......
  • 文档在线预览的实现
    文档在线预览的实现--以及Word文件转PDF,OFD文件转PDF,office转图片(PPT文档在线预览效果)最近在研究企业文档管理,这个是基本上所有企业都需要的软件,当然也是有很多种解决方案。对于企业文档来说,最基本的需求就是独立存储,共享。这种需求只需要建立一个Windows共享文件夹或......
  • burpsuite学院之api测试
    API(应用程序编程接口)使软件系统和应用程序能够进行通信和共享数据。API测试非常重要,因为API中的漏洞可能会破坏网站的机密性、完整性和可用性的核心方面。所有动态网站都由API组成,因此SQL注入等经典Web漏洞可以归类为API测试。在本主题中,我们将教您如何测试网站前端未充......
  • 一、浅谈自动化测试基础
    1.数据驱动思想:实现数据与脚本代码的分离操作,将数据存储在指定的数据格式文件或数据库中,如Excel、Json、Yaml、Mysql等。2.关键字驱动思想:基于数据驱动思想实现进一步的封装,以行为动作驱动业务。将每一步操作封装在单独的类、单独的函数中,一个函数或者一个类中的方法......
  • CH9141功耗测试
    测试结果:CH9141芯片,BLE-TPT-B-ANT模块,基于3.6版本序号广播间隔平均功耗(uA)1100ms3852200ms2103500ms9541s55.652s32.2 连接间隔,无实际数据传输序号连接间隔平均功耗(uA)17.5ms2210215ms11103100ms1934500ms63......
  • 基于小程序056大学生心理健康测试系统微信小程序项目(源码+文档+运行视频+讲解视频)
    前言......
  • 敏捷测试:具体方法和实践
    敏捷测试:方法和实践前言传统测试VS敏捷测试敏捷团队组织架构敏捷迭代生命周期敏捷迭代周期概览敏捷测试周期工作表敏捷测试人员必备素质开发阶段:静态测试测试阶段:递增型迭代测试总结前言Wikipedia对敏捷测试的定义:敏捷测试是遵守敏捷开发原则之下的......