【发布时间】:2020-08-02 21:58:11
【问题描述】:
我们正在尝试使用 Selenium WebDriver 查找网站的页面加载时间。我们想获取网站中多个屏幕/页面的页面加载时间,比如登录和登录后,主屏幕等等。
我们的 driver.get() 调用用于登录 URL,
driver.get("https://<website root>/login")
我正在尝试这段代码两次,第一次是在加载登录页面时,然后在单击登录按钮以加载主页后再次尝试。
long pageLoadTime = (Long) driver.executeScript("return (window.performance.timing.loadEventEnd-window.performance.timing.responseStart)" );
两次我们得到相同的 pageLoadTime。 window.performance 对象是否从不刷新?我明白发生了什么。我们如何获得测试流程中不同屏幕的加载时间。
【问题讨论】:
-
你是从一个方法调用它还是只在同一行写了两次?
-
同一行写在两个不同的地方,登录页面加载后一次,主页加载时再次
-
被测应用程序是否可能使用 Angular 或 React 框架?登录到不同的 URL 后浏览器窗口是否重新加载,或者即使登录后窗口 URL 也保持不变?
-
URL 路径保持不变,但片段发生了变化
-
这可能是这里的问题。根据浏览器,页面加载已完成,但应用程序继续在同一页面内使用 AJAX 加载页面元素。因此,当您查询加载时间时,它会返回相同的数字。对于您的应用程序,Selenium 可能不是衡量性能的正确工具。如果可能,请尝试使用 LoadNinja/JMeter/LoadRunner。
标签: selenium webdriver performance-testing page-load-time