0

我有一个有趣的测试问题。
我的要求是在网站上进行性能测试。

在这里发布以获得加载网页的真实时间(我正在测试)。我在这里指的是完成所有(初始)AJAX 调用(带有一些响应)所花费的总时间。我想到了使用页面加载事件。
但是这种方法并没有给出真正的时间。
任何建议如何做任何参考信息也很棒!


我的环境:Java 和 WedDriver。

4

2 回答 2

0

使用时间戳标记您的请求对象,并在收到相应响应时从系统时间中减去它。

根据您的方法,您可以<T>在服务器端拥有带有有效负载和解复用器的通用请求/响应对象。然后,这些通用对象可以包含代码以自动注册发送和接收的时间,并将花费的时间提供给客户端。使用这种方法聚合加载整个页面所花费的时间有点棘手,但我认为并非不可能 - 如果请求也被标记为原始页面,则 RPC 代理可能会跟踪这一点。

如果您要提供一些设置/代码的具体示例,我可能会更准确。

干杯,

于 2012-10-12T18:31:18.420 回答
0

正如大家所说,WebDriver 并不意味着性能。但是,请参阅我有时使用的以下方法。

如果您可以捕获针对某些特定 web 元素(可以是一个div或一个span块)的性能,则以下代码将起作用。

1使用任何秒表。我正在使用 apache 秒表。

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

2初始化变量

StopWatch timer = new StopWatch();

3启动计时器并在下一行导航到您的页面。我更喜欢driver.navigate().to()它,driver.get()因为我觉得它减少了调用新 URL 的其他处理时间。

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

4等待可以指定页面加载完成的特定元素。一旦出现,在下一行停止计时器。

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

附加说明:如果您想知道任何特定 webapge 加载的网络调用的加载时间,请使用 webkit likephantomJS或类似browsermobproxy. 它将在 HAR/JSON 文件中返回网络调用。解析这些文件,你可能会得到你的时间。

希望这可以帮助。

于 2017-03-29T08:17:42.277 回答