最近正好在做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前端性能测试的更多相关文章

  1. 两款较好的Web前端性能测试工具

    前段时间接手了一个 web 前端性能优化的任务,一时间不知道从什么地方入手,查了不少资料,发现其实还是蛮简单的,简单来说说. 一.前端性能测试是什么 前端性能测试对象主要包括: HTML.CSS.JS ...

  2. 【转】两款 Web 前端性能测试工具

    前段时间接手了一个 web 前端性能优化的任务,一时间不知道从什么地方入手,查了不少资料,发现其实还是蛮简单的,简单来说说. 一.前端性能测试是什么? 前端性能测试对象主要包括: HTML.CSS.J ...

  3. Web前端性能测试-性能测试知多少---深入分析前端站点的性能

    针对目前接手的web前端的性能,一时间不知道从什么地方入手,然后经过查找资料,发现其实还是蛮简单的. 前端性能测试对象: HTML.CSS.JS.AJAX等前端技术开发的Web页面 影响用户浏览网页速 ...

  4. web前端性能测试小点

    关于前端性能的文章: http://www.cnblogs.com/fnng/archive/2011/09/19/2181894.html web应用的前端性能响应时间指浏览器的页面加载时间.浏览器 ...

  5. 浅谈web前端性能优化

    前端性能优化: 一.尽可能减少前端http请求. 1.合并优化脚本文件和css文件. 2.同种类型的背景图片尽量放在一起,用css控制显示. 二.使用浏览器缓存. 如果能强制浏览器缓存在本地,将会降低 ...

  6. 浅谈web前端开发阅历

    WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没有学校的正轨教育,大多数人都是靠本人自学成才.本文次要引见本人从事web开发以来(从大二至今)看过的书籍和本人的成长过程,目的是给想了解Java ...

  7. 浅谈web前端开发

    我个人认为前端攻城狮其实就是编程技术人员,用一句话来形容“比UI设计懂技术,比技术人员更懂交互”,当然也有人说前端工程师是工程师中的设计师,是设计师中的工程师. 好了废话不多说了,下面进入正题吧!   ...

  8. 利用Docker安装Web前端性能测试工具Sitespeed.io

    目录结构 一.Sitespeed.io概述 1.Sitespeed.io简介 2.Sitespeed.io使用场景 二.Sitespeed.io的安装和使用 1.安装Sitespeed.io 2.连接 ...

  9. 浅谈web前端安全

    单纯地在你的客户端弹出信息只是类似于迫使你在自己的房间脱衣服--没人看得到,自然也不算啥恶意行为.那么如果我把你的信息通过脚本发送到我的服务器保存起来呢?先放心,我不打算这么做,也没那笔闲钱去购置一个 ...

  10. 浅谈web前端优化

    开篇 优化网站是一个系统性和持续性的过程.很多人认为优化网站的性能只需要合并图片啦,减小HTTP请求啦,部署CDN啦就行,实际上这都是见木不见林的做法.以上的做法经常会被面试者提起,在被问到自己在网页 ...

随机推荐

  1. plt.gca()坐标轴移动

    我们可以看到绘制出来的图有四个边框,我们通过gca()对坐标轴进行一些简单处理,代码如下. import torch import torch.nn.functional as F import ma ...

  2. element+vue2的查询form表单封装成组件复用

    <template> <el-form :inline="true" style="display: flex; flex-direction: row ...

  3. java截取##间的话题字符串

    转载MARK一下,百度根据关键字不好搜到,省的下次到处找.package iqiyi.com.model;import java.util.regex.Matcher;import java.util ...

  4. CSP模拟 小 trick 总结 (持续施工中)

    虽然这篇博客来的有点晚,但还是写了,欢迎dalao补充( (很杂,建议先浏览目录) 1.分块.莫队有关: \(\color{brown}(1)一个真正的回滚莫队(感谢\ Qyun\ 的讲解):\) $ ...

  5. 在 Kubernetes Pod 中如何获取客户端的真实 IP

    Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡.在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地 ...

  6. Vue 中 v-html 无法被 style scoped 渲染的问题

    假设有这么一个 vue 组件: <template> <div v-html="docPreview"/> </template> <st ...

  7. OpenSSH9.3p1升级实践

    安装Telnet服务 为了避免升级OpenSSH导致服务器不可连接.需要先下载安装Telnet组件.升级期间使用Telnet作为升级期间的服务器连接方式. 先查询telnet是否安装 rpm -qa ...

  8. AI赋能-《用ChatGPT做软件测试》新书上市

    图书链接京东: https://item.jd.com/10121763192532.html当当: http://product.dangdang.com/29797547.html内容简介本书以目 ...

  9. typescript 编译报错 不能用于索引类型

    Element implicitly has an 'any' type because expression of type 'any' can't be used to index type 't ...

  10. 每日学学Java开发规范,OOP规约(附阿里巴巴Java开发手册(终极版))

    前言 每次去不同的公司,码不同的代码,适应不同的规范,经常被老大教育规范问题,我都有点走火入魔的感觉,还是要去看看阿里巴巴Java开发规范,从中熟悉一下,纠正自己,码出高效,码出质量. 想细看的可以去 ...