Java 如何获取网页中当前AJAX调用的列表,以及如何以编程方式跟踪(如果已完成)
我有一个有趣的测试问题。Java 如何获取网页中当前AJAX调用的列表,以及如何以编程方式跟踪(如果已完成),java,testing,selenium,webdriver,Java,Testing,Selenium,Webdriver,我有一个有趣的测试问题。 我的要求是在网站上进行性能测试 在这里发布以获取加载网页所需的实时时间(我正在测试)。我在这里所指的“实时”一词是指完成所有(初始)AJAX调用(带有一些响应)所花费的总时间。我想到了使用页面加载事件。 但这种方法不能提供实时性。 任何关于如何做的建议,任何参考资料都是非常棒的 我的环境:Java和WedDriver。用时间戳标记请求对象,并在收到相应响应时从系统时间中减去时间戳 根据您的方法,您可以在服务器端使用带有负载和解复用器的通用请求/响应对象。然后,这些通用
我的要求是在网站上进行性能测试 在这里发布以获取加载网页所需的实时时间(我正在测试)。我在这里所指的“实时”一词是指完成所有(初始)AJAX调用(带有一些响应)所花费的总时间。我想到了使用页面加载事件。
但这种方法不能提供实时性。
任何关于如何做的建议,任何参考资料都是非常棒的
我的环境:Java和WedDriver。用时间戳标记请求对象,并在收到相应响应时从系统时间中减去时间戳 根据您的方法,您可以在服务器端使用带有
负载和解复用器的通用请求/响应对象。然后,这些通用对象可以包含自动注册发送和接收时间的代码,并向客户机提供花费的时间。使用这种方法,聚合整个页面加载所花费的时间有点棘手,但我认为这并非不可能——如果请求也被标记为原始页面,RPC代理可能会跟踪这一点
如果您提供一些具体的设置/代码示例,我可能会更精确
干杯,正如大家所说,WebDriver不是为了性能。但是,请参阅下面我有时使用的方法 如果可以捕获某个特定webelement的性能,则以下代码将起作用,可以是
div
或span
块
1使用任何秒表。我用的是阿帕奇秒表
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加载的网络调用的加载时间,请使用类似于phantomJS
的webkit或类似于browsermobproxy
的东西。它将在HAR/JSON文件中返回网络调用。解析这些文件,你可能会得到你的时间
希望这能有所帮助。Selenium不是一个性能测试框架。我知道它确实为性能测试提供了实用工具。我想知道当页面加载时,完成AJAX调用需要多少时间。请让我知道,如果有任何方法可以帮助我获得总时间。你知道Speedtracer-?