当前位置: 首页 > 面试题库 >

测试硒页面加载时间的正确方法?

申屠浩歌
2023-03-14
问题内容

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

我的第一种方法是在循环内调用以下代码

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

问题是有时我会在页面真正加载之前得到时间结果(即我获得50ms次),因此我猜想控件在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()

从中返回的HAR文件proxy.har,它只是一个JSON
blob,将为您提供所需的信息。我今年早些时候在博客上写过

  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
     */ 


 类似资料:
  • 问题内容: 我正在尝试以编程方式测试网站列表的加载时间。目的是大致模拟用户将感知的页面加载时间。 我的第一种方法是在循环内调用以下代码: 问题是有时我会在页面真正加载之前得到时间结果(即,我得到50ms次),所以我猜想控件在完成之前会交给下一条指令。 我应该怎么做才能改善这项测试? 编辑: 正如user1258245建议的那样,我可以等待元素加载,但是问题是我不知道哪些页面需要预先加载。 问题答案

  • 我们正在尝试找到一个网站的Selenium WebDriver的页面加载时间。我们想要得到页面加载时间的多个屏幕/网页在网站,如登录和登录后,主屏幕等。 我们的driver.get()调用是针对登录URL的,

  • 本文向大家介绍说出三种减少页面加载的方法(加载时间指感知的时间或实际加载的时间)相关面试题,主要包含被问及说出三种减少页面加载的方法(加载时间指感知的时间或实际加载的时间)时的应答技巧和注意事项,需要的朋友参考一下 CSS Sprites; JS、CSS源码压缩、图片大小控制合适; 网页Gzip; CDN托管; data缓存 ; 图片服务器;  

  • 本文向大家介绍php简单计算页面加载时间的方法,包括了php简单计算页面加载时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单计算页面加载时间的方法。分享给大家供大家参考。具体实现方法如下: 简单的把开始时间放在页面头部,结束时间放在页面尾部,计算页面加载时间 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 我想验证此页面是否正确加载-http: //www2.hm.com/en_ca/women.html 这些是我认为最好验证页面是否正确加载的东西,如果我遗漏任何东西,请告诉我 1)验证此页面上的所有链接是否有效? 2)验证顶部菜单是否正确装入,是否需要验证菜单名称? 3)检查类是否正确加载? 4)获取/发布请求状态200和其他ajax调用? 问题答案: 根据您的问题,进行单独的测试以

  • 验证当你进入产品列表页,如服装等->在72个项目后,“查看更多”不应该自动加载更多,但需要点击底部的按钮,该按钮应该加载更多项目,如果该页面中有超过12个项目。另外,当我过滤结果时,我如何验证页面中返回的产品数量?