2012-10-12 32 views
0

我有一個有趣的測試問題。
我的要求是在網站上進行性能測試。如何獲取WebPage中當前AJAX調用的列表以及如何以編程方式跟蹤,如果已完成

問題在這裏獲得真正的時間來加載網頁(我正在測試)。 REAL時間這個詞在這裏指的是完成所有(初始)AJAX調用所需的總時間(有一些響應)。我想過使用頁面加載事件。
但是這種方法不給REAL時間。
任何建議如何做到這一點,任何參考信息也很棒!


我的環境:Java和WedDriver。

+1

Selenium不是一個性能測試框架。 – Arran

+0

我知道它提供了用於性能測試的實用程序。我想知道在加載頁面的時候它正在說多少時間來完成AJAX調用。請讓我知道,如果有任何方法可以幫助我獲得總時間。 – Reddy

+0

你知道Speedtracer - https://developers.google.com/web-toolkit/speedtracer/嗎? –

回答

0

使用時間戳標記請求對象,並在收到相應響應時從systime中減去此對象。

根據您的方法,您可以在服務器端使用通用的請求/響應對象,其中有效載荷爲<T>,分離器爲demuxer。然後這些通用對象可以包含代碼來自動註冊發送和接收的時間,並提供花在客戶端上的時間。使用這種方法加載整個頁面所花費的時間有點複雜,但不是幾乎不可能的,我應該這麼想 - 如果請求也使用始發頁面進行標記,那麼RPC代理可能會跟蹤該代碼。

如果您要提供一些具體的設置/代碼示例,我可能會更精確。

乾杯,

0

正如大家所說,webdriver的並不意味着績效。但是,請參閱我有時使用的以下方法。

如果您可以捕獲針對某個特定webelement的性能,可以使用以下代碼,該代碼可以是divspan塊。

使用任何秒錶。我正在使用apache秒錶。

import org.apache.commons.lang3.time.StopWatch; 

初始化變量

StopWatch timer = new StopWatch(); 

啓動計時器,並在下一行瀏覽到您的網頁。我更喜歡driver.navigate().to()而不是driver.get(),因爲我覺得它減少了調用新URL的其他處理時間。

timer.start(); 
driver.navigate().to(URL); 

等待可以指定頁面加載的特定元素完成。一旦出現,在下一行停止計時器。

new WebDriverWait(driver, 10).until(ExpectedConditions. presenceOfElementLocated(By.className("demoClass"))); 
timer.stop(); 
System.out.println("timer.getTime() + " milliseconds"); 

附加說明:如果你想知道任何特定webapge負載網絡的加載時間調用,使用WebKit的像phantomJS或東西一樣browsermobproxy。它會在HAR/JSON文件中返回網絡呼叫。解析這些文件,你可能會得到你的時間。

希望這會有所幫助。

相關問題