使用java测量网页的总加载时间

我正在创建一个应用程序来检查页面加载所需的时间。 到目前为止,我有这样的事情:

long startTime = System.currentTimeMillis(); //load page and wait for it to finish long elapsedTime = System.currentTimeMillis() - startTime; 

现在,我不只是想测量html文档加载的时间,而是整个dom。 基本上,如果它在浏览器中,我希望它能够测量加载微调器停止所需的时间。

我该怎么做才能做到最好? 我正在尝试WebDriver,但它似乎并不一致; 有时它会在仍然加载东西时考虑完成页面(我也尝试过隐式等待)。

获取Load时间如下: 铬加载时间

运行以下脚本:

 import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class AutomationTests { public static void main(String[] args) { WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com"); final JavascriptExecutor js = (JavascriptExecutor) driver; // time of the process of navigation and page load double loadTime = (Double) js.executeScript( "return (window.performance.timing.loadEventEnd - window.performance.timing.navigationStart) / 1000"); System.out.print(loadTime + " seconds"); // 5.15 seconds } } 

从服务器收到页面后,要获取加载页面所需的时间,请更改:
window.performance.timing.navigationStart to window.performance.timing.responseEnd

在Firefox和Chrome上测试过。

在这种情况下,您需要等到显示一些元素。 喜欢这个:

 long startTime = System.currentTimeMillis(); driver.get("Some url"); WebElement ele = driver.findElement(By.id("ID of some element")); long endTime = System.currentTimeMillis(); long elapsedTime = endTime - startTime ; System.out.println("Total Time for page load - " + totalTime); 

如果您使用Selenide框架,它已经包含一个function,可以为您提供所有页面组件的计时。

在此处输入图像描述