2012-10-12 28 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文件中返回网络呼叫。解析这些文件,你可能会得到你的时间。

希望这会有所帮助。

相关问题