测试人社区

怎么检测web端页面的性能呢?

目的:想要通过web自动化测试,测试web界面的加载性能,从而找到加载慢的请求,然后提给开发优化;

  • 问题1:请问老师,业界一般用什么方法做页面加载性能的测试呢?
    本来打算用selenium+webdriver,但是今天查阅官方文档的时候,文档明确说明不推荐这种方法去做界面性能测试,就有点不知所措了。
  • 问题2:对于页面加载性能的计算,是关注哪些指标呢,了解了一下在window.performance.timing有很多的响应数据如下,不知道这里面哪些需要关注呢,或者有哪些没在这个log里面的参数也需要关注的。
{"navigationStart":1594612195528,"unloadEventStart":0,
"unloadEventEnd":0,"redirectStart":0,"redirectEnd":0,
"fetchStart":1594612195531,"domainLookupStart":1594612195531,
"domainLookupEnd":1594612195531,"connectStart":1594612195532,
"connectEnd":1594612195583,"secureConnectionStart":1594612195533,
"requestStart":1594612195585,"responseStart":1594612195595,
"responseEnd":1594612195662,"domLoading":1594612195643,
"domInteractive":1594612196114,"domContentLoadedEventStart":1594612196115,
"domContentLoadedEventEnd":1594612196132,"domComplete":1594612196262,
"loadEventStart":1594612196262,"loadEventEnd":1594612196268}

第一次接触性能测试,没什么头绪,希望老师能给指导一下,或者有什么文档也可以推荐一下,感谢老师!

这个其实你去看看w3c的文档就好了,而且直接百度查,你就知道关注什么指标了!不过这些数据都是性能自动化应该考虑的,你的业务场景估计就是去定位网站的性能问题,这些指标反而会使你陷入不必要的事情。你直接通过google开发者工具就可以解决你的大部分问题了

谢谢你的回答。
我的目标就是做性能自动化,Google的开发者工具不知道你指的是不是Chrome那个工具?那个只能通过手动点击,实现不了自动化啊。

那如果做性能自动化的话,就有两种方法了;

  • 第一种就是你这这个w3c的api,通过拿到数值进行计算;
  • 第二种,google有个 chrome devtools protocol这个开放协议,并且github上面有开发者已经提供了各种不通语言的封装,可以拿到你在开发者工具里面看到的所有数值

以上两种选择一种就可以达到目的

chrome devtools protocol 这个我用过,我理解着这个需要webdriver去驱动获取,对吗?

这个就要你自己去探索了,理论上来说,是的

用webdriver去驱动获取的界面响应时间并不准确;
我再看一下你说的那个w3c的api接口,谢谢你的解答~

不准确指的是你用的selenium那套?

指的是selenium+webdriver,在selenium里面封装了性能测试的方法,去调用chrome devtools

你这样肯定不行啊,chrome devtools protocol提供了专门的api,如果用selenium那套我不确定会有啥问题;看你说不准,我就猜到了你用了selenium那套

好的,我去研究一下,谢谢你.

专项测试里面有提供方法

老师,我看了学院发的测试资料,还是利用了selenium进行js注入来得出的性能指标,这个因为有selenium的驱动,所以我认为可能结果并不准确。
请问老师说的专项里面提供的测试方法是哪个?

selenium 只是驱动,数据的获取还是靠的js。
可以参考这个链接
https://developers.google.com/web/tools/chrome-devtools/network/resource-loading

只要用selenium驱动的话,就会有webdriver的影响,这个结果不准确啊

老师,如果我觉得这个问题解决了的话会主动closed的,但是目前我认为还没有找到觉得合适的方案,所以请不要替我closed好吗?我想听听更多人的建议,谢谢老师。

那我帮你打成todo的 tag好了, open是没回答过问题的。方便助教区分

好的,谢谢老师