怎么用代码获取一个网页的加载时间?


#1

大佬们请教个问题。 我需要测试一个网页在各个地区的加载时间,怎么用代码完成? 这个加载时间是指F12打开网络,查看到的那个finished时间。

例如我要打开https://github.com/search?utf8=%E2%9C%93&q=Chrome+DevTools+Protocol&type= 这个页面会加载很多其他域名的图片或者内容,如:https://github.githubassets.com/favicon.ico

我搜了下,大概有插入js代码获取 window.performance.timing.loadEventEnd - window.performance.timing.navigationStart 或者用Chrome DevTools Protocol,python的话有PyChromeDevTools 可以作为客户端。

但是上面两种方法都是只能获取到https://github.com/加载完成的时间,而https://github.githubassets.com加载的时间却没法计算。

像一个网页里嵌套了iframe,请求了其他域名的img这些情况,怎么获取一个页面完整的加载时间?


#2

直接F12开控制台监视Network就好了吧



#3

想做成自动任务,所以需要是写成代码的那种


#4

你一共问了两个问题:

你需要目标地区的主机,从目标地区的主机上发出请求,而不是你电脑上发请求。

用 headless 浏览器,监控 frame 上的元素,元素存在,则说明该 frame 加载完。有多个 frame 就分别监控,因为不知道哪个 frame 先完成。


#5

#6

大佬们,我找到解决方法了。用chrome dev tools 获取chrome的performance数据就行


#7

代码的话检测document.onload即可。 嵌入webview都能拿到onload时间


#8

chrome dev tools 这些纯手工的方法在开发调试阶段还行,集成测试的时候怎么办?都不写测试的吗?


#9

当初我觉得可以开控制台看。你说要自动化…

真香.jpg