我有一个有趣的测试问题。
我的要求是在网站上进行性能测试。
在这里发布以获得加载网页的真实时间(我正在测试)。我在这里指的是完成所有(初始)AJAX 调用(带有一些响应)所花费的总时间。我想到了使用页面加载事件。
但是这种方法并没有给出真正的时间。
任何建议如何做任何参考信息也很棒!
我的环境:Java 和 WedDriver。
使用时间戳标记您的请求对象,并在收到相应响应时从系统时间中减去它。
根据您的方法,您可以<T>
在服务器端拥有带有有效负载和解复用器的通用请求/响应对象。然后,这些通用对象可以包含代码以自动注册发送和接收的时间,并将花费的时间提供给客户端。使用这种方法聚合加载整个页面所花费的时间有点棘手,但我认为并非不可能 - 如果请求也被标记为原始页面,则 RPC 代理可能会跟踪这一点。
如果您要提供一些设置/代码的具体示例,我可能会更准确。
干杯,
正如大家所说,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 文件中返回网络调用。解析这些文件,你可能会得到你的时间。
希望这可以帮助。