浅聊web前端性能测试

news/2024/12/21 23:43:15/文章来源:https://www.cnblogs.com/Alisa-sweet/p/18621562

最近正好在做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)来查看是否丢包。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856601.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用magic-api实现增删改查分页

创建项目结构 pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apach…

【安全评审】“2024网络安全100强-行业应用”评分全流程细则

一 指标理解1.1 “行业应用”的核心优势是什么?1.2 评估维度有哪些?二、评审专家筛选2.1 对专家所在单位有什么要求?2.2 对专家所在行业有什么要求?2.3 对专家个人能力有什么要求?2.4 对专家组有什么要求?2.5 对专家个人价值观有什么要求?三、评分规则制定3.1 “典型案例…

《计算机组成及汇编语言原理》阅读笔记:p9-p27

《计算机组成及汇编语言原理》学习第 2 天,p9-p27 总结,总计 19 页。 一、技术总结 1.quantum physics(量子物理学) (1)quantum(量子) quantum的本意是:c. the smallest amount of sth(量子)。 In physics, a quantum is the minimum amount of any physical entity (physi…

第4章 C#的高级特性

第4章 C#的高级特性 4.1 委托 4.1.2 多播委托 对值为 null 的委托变量进行 + ​或 += ​操作,等价于为变量指定一个新值: SomeDelegate d = null; d += SomeMethod1; // 等价于 d = SomeMethod1委托是 不可变 的,因此调用 += ​和 -= ​的实质是 创建一个新的委托实例 ,…

使用frida分析白盒aes,DFA攻击

这次分析的app是:五菱汽车(8.2.1) 登录,抓包发现请求体只有sd字段,看见加密的时候,可以先使用算法助手hook java层所有加解密方法发现我们所需要的sd加密字段在java层hook不到,那加密算法应该是写在了so层,因为这个app是bb加固企业,得有脱壳机才能脱。 jadx加载dex,直接…

2024 golang安装使用详细教程以及常见问题处理(附激活至2099年)

GoLand 简介 GoLand 是一款非常强大的 Go 语言集成开发环境,由JetBrains公司开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和部署代码。 下面这种方式仅供交流学习,如果有能力还请支持正版 下载安装 为了方便,也可以去链接取 点击获取安装包开始安装下载完成…

Infinite Pixels(无限像素)第五次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 小组成员分工完成选题的软件设计组长 祝方略-2022329301131组员1 娄涵格-2022329301112组员2 颜宇航-2022329301125组员3 常佳鑫-2022329301071一、团队介绍团队名称:Infinite Pixels(无限像素…

CMake构建学习笔记19-OpenSSL库的构建

详细介绍了在Windows和Linux环境下构建OpenSSL库的方法,并且如何通过CMake的方式被主程序调用。1. 概述 OpenSSL是一个开源的加密工具包和库,主要实现了安全套接字层(SSL)和传输层安全(TLS)协议,以及各种加密算法、数字签名、消息摘要、加密证书等功能。这个库可以说是W…

概率论沉思录:初等假设检验

我们在上一篇博客中介绍了传统的抽样理论。其中,我们导出了几种经典的抽样分布,也即给定关于所观察现象的假设H,数据D的概率分布p(D | H)。在上一篇博客中提到的伯努利坛子模型中,假设H即坛子的内容,数据D即重复抽球所生成的红球和白球序列。但正如我们我们在上一篇博客的…

开启Word、Excel、PPT时速度很慢的一种解决方法

本文介绍基于修改加载项,解决Microsoft Office系列软件开启速度较慢的办法~本文介绍基于修改加载项,解决Microsoft Office系列软件开启速度较慢的办法。最近,发现Excel软件的打开速度越来越慢,会在一定程度上影响工作效率。因此尝试对此加以解决。其中,本文所给方法对于Wo…

2024-2025-1 学号20241315《计算机基础与程序设计》第十三周学习总结

作业信息这个作业属于哪个课程 <班级的链接>2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13这个作业的目标 <写上具体方面>第12章并完成云班课测试作业正文 ... 本博客链接 h…

【解决方案】电商精细化运营方案

随着互联网技术的不断发展和普及,电商行业在过去几十年中取得了巨大的发展和变革。从供小于求的“以商品为主”阶段,到享受时代红利的“以流量为主”阶段,再到重视消费者体验的“精细化运营”阶段,电商市场正在进入以消费者为中心精细化运营时代,这要求电商企业从存量市场…