gpt4 book ai didi

java - 在 selenium 中测试页面加载时间的正确方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:14:26 25 4
gpt4 key购买 nike

我正在尝试以编程方式测试网站列表的加载时间。目的是粗略模拟用户将感知的页面加载时间。

我的第一种方法是在循环中调用以下内容:

    startTime = System.currentTimeMillis();
driver.get("http://" + url);
diff = System.currentTimeMillis() - startTime;
System.out.println("Load time was " + diff);

问题是有时我在页面真正加载之前就得到了时间结果(即我得到了 50 毫秒的时间)所以我猜控制权被交给了 driver.get() 之前的下一条指令> 已完成。

我应该怎么做才能改进这个测试?

编辑:

正如 user1258245 所建议的,我可以等待元素加载,但问题是我不知道哪些页面会事先加载。

最佳答案

有两种方法可以为您提供有意义的数据。

  1. 将 Browsermob 代理与 Selenium 结合使用。这是 python 中的示例,但在 Java 中几乎相同

    from browsermobproxy import Server
    server = Server("path/to/browsermob-proxy")
    server.start()
    proxy = server.create_proxy()

    from selenium import webdriver
    profile = webdriver.FirefoxProfile()
    profile.set_proxy(proxy.selenium_proxy())
    driver = webdriver.Firefox(firefox_profile=profile)

    proxy.new_har("google")
    driver.get("http://www.google.co.uk")
    proxy.har # returns a HAR JSON blob

    proxy.stop()
    driver.quit()

proxy.har 返回的 HAR 文件只是一个 JSON blob,将为您提供所需的信息。我 blogged今年早些时候的事

  1. 另一种方法是使用现代浏览器中可用的导航计时规范。您需要做的就是执行一些 javaScript,您将获得页面加载等的详细信息。

    ((JavascriptExecutor)driver).executeScript("var performance = window.performance || {};" + 
    "var timings = performance.timing || {};"+
    "return timings;");

    /* The hashmap returned will contain something like the following.
    * The values are in milliseconds since 1/1/1970
    *
    * connectEnd: 1280867925716
    * connectStart: 1280867925687
    * domainLookupEnd: 1280867925687
    * domainLookupStart: 1280867925687
    * fetchStart: 1280867925685
    * legacyNavigationStart: 1280867926028
    * loadEventEnd: 1280867926262
    * loadEventStart: 1280867926155
    * navigationStart: 1280867925685
    * redirectEnd: 0
    * redirectStart: 0
    * requestEnd: 1280867925716
    * requestStart: 1280867925716
    * responseEnd: 1280867925940
    * responseStart: 1280867925919
    * unloadEventEnd: 1280867925940
    */

关于java - 在 selenium 中测试页面加载时间的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11360854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com