2015-12-16 67 views
1

我正在創建一個應用程序來檢查加載頁面需要多長時間。到目前爲止,我有這樣的事情:使用java測量網頁的總加載時間

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

現在,我不只是要測量的HTML文檔需要多長時間來加載,而是整個DOM。基本上,如果它在瀏覽器中,我希望它能夠衡量加載微調器停止需要多長時間。

我該如何做到最好?我正在嘗試WebDriver,但似乎並不一致;有時它會在加載內容的同時考慮完成頁面(我也嘗試過隱式等待)。

+1

您是否試圖自動/重複地執行此操作?如果沒有:大多數瀏覽器都可以使用他們的開發工具爲您提供這些信息。 – Marged

+0

@Marged是的,我想這個一再/自動 – Andrio

回答

1

在這種情況下,您需要等到顯示某個元素。就像這樣:

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); 
4

要獲得Load時間如下: Chromium Load time

運行以下腳本:

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.navigationStartwindow.performance.timing.responseEnd

在Firefox和Chrome上測試。

1

如果使用硒框架,它已經包含在其中的功能,讓您所有的頁面組件的時機。

enter image description here

+0

良好的截圖= P – drets