我有一個有趣的測試問題。
我的要求是在網站上進行性能測試。如何獲取WebPage中當前AJAX調用的列表以及如何以編程方式跟蹤,如果已完成
問題在這裏獲得真正的時間來加載網頁(我正在測試)。 REAL時間這個詞在這裏指的是完成所有(初始)AJAX調用所需的總時間(有一些響應)。我想過使用頁面加載事件。
但是這種方法不給REAL時間。
任何建議如何做到這一點,任何參考信息也很棒!
我的環境:Java和WedDriver。
我有一個有趣的測試問題。
我的要求是在網站上進行性能測試。如何獲取WebPage中當前AJAX調用的列表以及如何以編程方式跟蹤,如果已完成
問題在這裏獲得真正的時間來加載網頁(我正在測試)。 REAL時間這個詞在這裏指的是完成所有(初始)AJAX調用所需的總時間(有一些響應)。我想過使用頁面加載事件。
但是這種方法不給REAL時間。
任何建議如何做到這一點,任何參考信息也很棒!
我的環境:Java和WedDriver。
使用時間戳標記請求對象,並在收到相應響應時從systime中減去此對象。
根據您的方法,您可以在服務器端使用通用的請求/響應對象,其中有效載荷爲<T>
,分離器爲demuxer。然後這些通用對象可以包含代碼來自動註冊發送和接收的時間,並提供花在客戶端上的時間。使用這種方法加載整個頁面所花費的時間有點複雜,但不是幾乎不可能的,我應該這麼想 - 如果請求也使用始發頁面進行標記,那麼RPC代理可能會跟蹤該代碼。
如果您要提供一些具體的設置/代碼示例,我可能會更精確。
乾杯,
正如大家所說,webdriver的並不意味着績效。但是,請參閱我有時使用的以下方法。
如果您可以捕獲針對某個特定webelement的性能,可以使用以下代碼,該代碼可以是div
或span
塊。
使用任何秒錶。我正在使用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文件中返回網絡呼叫。解析這些文件,你可能會得到你的時間。
希望這會有所幫助。
Selenium不是一個性能測試框架。 – Arran
我知道它提供了用於性能測試的實用程序。我想知道在加載頁面的時候它正在說多少時間來完成AJAX調用。請讓我知道,如果有任何方法可以幫助我獲得總時間。 – Reddy
你知道Speedtracer - https://developers.google.com/web-toolkit/speedtracer/嗎? –