首页 > 其他分享 >浅聊web前端性能测试

浅聊web前端性能测试

时间:2024-12-21 23:41:29浏览次数:5  
标签:web Lighthouse 浅聊 前端 并发 测试 加载 资源 页面

最近正好在做web前端的性能测试,这次就来聊聊关于这个的测试思路~

首先从用户的思维去思考,关于web前端性能,用户最看重的是什么......

其实就是下面三个点:

  1. 加载性能(即页面加载时间+资源加载时间)

  2. 渲染性能(即浏览器绘制出包含实际内容(如文本、图片等)的时间)

  3. 交互性能(即用户可以进行点击、输入等操作的时间和延迟时间)

这三点组成了用户的等待时间,也就是我们俗称的258秒~

那基于这三点,我开始设计测试方案,最后还是选择了jmeter+lighthouse的性能测试模式,原因也很简单,我太熟悉jmeter了(不是),其实原因大致是下列2点:

  1. Jmeter有加载性能和交互性能方面的优势:

    (1) 精准模拟资源请求: JMeter 可以精确模拟浏览器向服务器发起的各类资源请求,包括 HTML 文档、图片、脚本、样式表等,通过合理配置完全复现用户打开页面时浏览器的加载行为。

     例如:针对一个包含大量图片和脚本文件的网页,JMeter 可以按照实际页面中资源的加载顺序依次发送请求,精准测量每个资源的加载时间;又或者根据get URL 模拟用户触发查看页面的行为来查看响应时间。

    (2) 精准模拟真实用户交互:Jmeter可以完美模拟用户的操作序列。从用户登录、点击菜单、填写表单到提交数据等一系列操作,真实还原用户操作流程。

    (3) 基于多场景并发下的加载评估: 众所周知,jmeter最出名的其实是它作为压测工具的使用,利用其灵活的线程组设置,JMeter 能够模拟不同并发用户数场景下页面的加载情况。

     例如:在低并发时,可观察页面在日常流量下基础资源的加载是否流畅;中并发模拟正常业务高峰,查看资源加载的并发处理能力,查看是否因为并发请求过多导致资源排队等待加载时间延长;高并发考验系统极限,确保在极端流量下页面仍能有基本的加载呈现,不至于完全崩溃。

  

  2. Lighthouse在渲染性能方面的优势:

    (1) 实时渲染追踪:Lighthouse 在测试过程中可以紧密跟踪页面渲染进程,精确捕捉首次绘制(FP)的确切时间点,以及后续内容逐步渲染的节奏和时间,并且可以准确评分。

    (2) 资源优化:对于页面中的资源(如图片、字体等),Lighthouse 会提供资源加载优化的建议。除了前面提到的图片压缩,还会建议合理设置缓存策略,减少重复请求,提高资源加载效率。

  

最后我的做法是设计了三个场景(基于页面平时真正的高峰时间段下的场景)查看高峰时间段系统是否可以完美承受压力,之后开始负载测试查看上压力后的各个资源的性能瓶颈,最后在附上lighthouse的测试报告方便开发优化。

下面是一些疑问和解析:

1. 疑问:jmeter的响应时间是否包含资源的加载时间?

我的答案:这个问题我问了两个不同的AI软件(chatgpt和豆包),结果给的答案截然相反,所以后续我又查了很多资料,最终确认在GET URL请求时是包括的,如果JMeter测得的响应时间过长,大概率意味着页面整体加载以及资源获取过程存在延迟因素,可以进一步排查是服务器处理缓慢、网络传输问题,还是资源本身加载异常。

2. 疑问:Lighthouse是否可以查看大量并发时页面渲染的结果?

我的答案:Lighthouse 本身不能查看大量并发的页面渲染响应结果,它没有内置机制来模拟大量并发用户访问同一个页面或者多个页面的情况,但是它可以结合jmeter来使用,在jmeter并发时进行测试来查看并发场景的页面渲染。(但是这里需要注意,响应时间如果太长lighthouse会直接判定失败不能出报告,所以建议在低并发时使用)

3. 疑问:Lighthouse是否只能对单一页面进行测试?

我的答案:Lighthouse 不能直接同时对多个页面进行测试,要是想要一下子知道多个页面,可能需要结合其他脚本来循环执行lighthouse才能得出结果。

4. 疑问:如何判断不是网络原因和带宽原因导致的响应时间过长或者超时?

我的答案:我是尝试了在多个网络环境下进行的测试才排除了网络的原因,但是也可以在测试时通过(ping [服务器 IP] -t)来查看是否丢包。

 

标签:web,Lighthouse,浅聊,前端,并发,测试,加载,资源,页面
From: https://www.cnblogs.com/Alisa-sweet/p/18621562

相关文章

  • 第21天:信息收集-CDN绕过&Web应用&加速部署&漏洞回链&全网扫描&反向邮件&解析记录
    #知识点1、信息收集-Web应用-CDN加速-如何识别2、信息收集-Web应用-CDN加速-绕过方法一、前置知识:1.传统访问:用户访问域名–>解析服务器IP–>访问目标主机2.普通CDN:用户访问域名–>CDN节点–>真实服务器IP–>访问目标主机3.带WAF的CDN:用户访问域名–>CDN节点(WAF)–>......
  • node.js基于Web的连锁餐饮智能管理系统程序+论文 可用于毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于餐饮管理系统的研究,现有研究主要以传统餐饮管理系统为主,专门针对连锁餐饮的智能管理系统研究较少。在国内外,传统餐饮管理系统已发展到一定阶段,有诸......
  • CF1548A Web of Lies 题解
    WebofLies题解洛谷。Codeforces。题意比较直接,就不复述了。思路分析题意首先根据操作3,删人只是暂时的,可以分析出每次删的人对于后面都没有影响。关注到这个词:执行以下操作直至不可再执行为止。显然,在整个图中所有该被删除的人都逃不掉,迟早被删除。那么看看什么样......
  • web渗透流程与思路
    1、目录爆破web渗透第一件事肯定就是目录爆破,首先它可以让你了解网站的大概结构,从而去寻找攻击面,尤其是一些功能性的网页,例如login、admin等,其次可能会爆破出网站没有公开展示的敏感网页或者信息。下面的项目里包含有各种敏感文件或目录的爆破字典。https://github.com/carlo......
  • 【Web】0基础学Web—随机颜色、数学对象、日期及方法、定时器、倒计时
    0基础学Web—随机颜色、数学对象、日期及方法、定时器、倒计时随机颜色数学对象日期及方法定时器倒计时cssjs随机颜色点击div时,随机改变div背景颜色<body><divclass="wrapper"onclick="changebgColor()"></div><script>//改变背景颜色......
  • 【Web】0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串
    0基础学Web—函数、箭头函数、函数闭包、函数参数、js作用域、字符串函数函数声明函数调用函数事件调用函数匿名函数立即执行函数箭头函数函数闭包函数参数js作用域字符串字符串创建字符串方法字符串拼接字符串截取去除字符串首尾空格遍历其他函数function函数名(......
  • javaweb练习分析——4
    对于单表的查询可能会有多种,其中较为简单的是查询所有、根据id查询、根据其他单一条件查询,但有时会遇到相较于前面的操作较为复杂的操作,就是多条件查询。需要根据前端页面输入的条件来查询。对比简单的查询操作第一个区别是用注解不在适用,要在mapper.xml文件中书写sql语句<sele......
  • javaweb练习分析——5
    在完成对单表的增删改查操作后,就要实现项目中的业务逻辑,比如登录操作、还有目前这个项目中的房产之间的买卖业务逻辑,需要不同角色之间共同完成功能,将多表联系起来。以顾客购买房产为例,第一步首先要将在售的房产呈现出来,之后就是顾客可以点击地址查看详细信息,然后顾客点击交易可以......
  • javaweb练习分析——3
    先实现简单的对各个单表之间的增删改查的操作就以增加数据为例,由于比较简单,就可以直接用注解的方式来实现在mapper文件中,书写sql语句@Insert("insertintohouseinfovalues(#{houseId},#{roomType},#{address},#{year},#{area},#{sales},#{status},#{agent},#{customer})")......
  • JetBrains WebStorm 2024 破解教程附资源(亲测可用)
    1、下载安装包WebStorm20242、安装教程1、双击安装,弹窗安装对话框  2、更改安装目录至D盘,点击下一步 3、 都进行勾选,点击下一步 4、默认,点击安装 5、安装过程中,等待安装完成,选择之后重启,点击完成 6、激活,打开随行下载的文件夹,找到激活工具,双击执行  ......