谈到性能测试,我们首先想到的可能是从后端服务的接口入手,对服务进行性能测试,例如采用Jemeter,Gatling,LoadRunner等工具可以很方便的对后端接口进行压测评估系统性能。除了从后端接口对web系统进行测试外,实际还可以从web前端页面评估系统的性能,有很多在线工具支持从web前端出发评估系统性能,例如开源的在线工具PageSpeed或者商业的在线工具speedcurve等。通过在线工具输入web系统地址即可快速得到性能评估数据,使用非常方便,但在线工具也有局限性,例如,某些企业考虑到安全性,不愿意将数据存放在第三方的在线系统上;或者某些企业期望web performance测试系统能够与内部系统集成,性能测试数据能在多个系统共享;对于后面两类需求,在线的web performance评估系统都无法满足,所以,对于有后面两类需求的企业来说,更好的方式是采用其他离线工具来完成web performance的评估工作。那么,哪些离线工具支持web performance数据的采集呢?下面列举了常用的四个工具,并进行了简要对比,具体如下所示:

上面对各个工具或者插件提供的功能进行了简要对比,接下来就从第一个工具开始,看看如何通过这些工具评估web系统性能。Lighthouse即支持命令行方式,也支持插件运行方式,如果采用命令行方式,npm install lighthouse进行安装,安装后可以通过lighthouse --help查看命令中支持的参数,如下图所示,可以看到除收集performance metrics外,lighthouse还支持对网络设置throttling来模拟网络质量比较差的情况下web性能表现。

执行lighthouse https://xxx.yyy后,默认会生成html格式的报告,报告中给出了google vitals的指标值,还对各个维度进行了打分,且还给出了各种优化建议。可以看到通过lighhouse可以很方便的对web的性能进行评估,并且根据改进建议