Appium使用js脚本获取H5页面性能

公司要求检查APP内嵌的H5前端性能,搜了下做个总结。

使用appium进入指定页面,然后切换webview
如果无法切换,则需要研发提供debug包。
然后执行js脚本。

        resource_details = driver.execute_script('return window.performance.getEntries();')
        page_details = driver.execute_script('return window.performance.timing;')

返回页面静态资源的性能list和页面的性能list。
目前参考别人的,关注如下几点

# 【重要】页面加载完成的时间
    # 【原因】这几乎代表了用户等待页面可用的时间
    loadPage = page_details['loadEventEnd'] - page_details['navigationStart']
    page_result['页面加载完成的时间'] = loadPage

    # 【重要】解析DOM树结构的时间
    # 【原因】反省下你的DOM树嵌套是不是太多了!
    domReady = page_details['domComplete'] - page_details['responseEnd']
    page_result['解析DOM树结构的时间'] = domReady

    # 【重要】重定向的时间
    # 【原因】拒绝重定向!
    redirect = page_details['redirectEnd'] - page_details['redirectStart']
    page_result['重定向的时间'] = redirect

    # 【重要】DNS查询时间
    # 【原因】DNS预加载做了么?页面内是不是使用了太多不同的域名导致域名查询的时间太长?
    lookupDomain = page_details['domainLookupEnd'] - page_details['domainLookupStart']
    page_result['DNS查询时间'] = lookupDomain

    # 【重要】读取页面第一个字节的时间
    # 【原因】这可以理解为用户拿到你的资源占用的时间,加异地机房了么,加CDN处理了么?加带宽了么?加CPU运算速度了么?
    ttfb = page_details['responseStart'] - page_details['navigationStart']
    page_result['读取页面第一个字节的时间'] = ttfb

    # 【重要】内容加载完成的时间
    # 【原因】页面内容经过gzip压缩了么,静态资源css / js等压缩了么?
    request = page_details['responseEnd'] - page_details['requestStart']
    page_result['内容加载完成的时间'] = request

    # 【重要】执行onload回调函数的时间
    # 【原因】是否太多不必要的操作都放到onload回调函数里执行了,考虑过延迟加载、按需加载的策略么?
    loadEvent = page_details['loadEventEnd'] - page_details['loadEventStart']
    page_result['执行onload回调函数的时间'] = loadEvent

    # DNS缓存时间
    appcache = page_details['domainLookupStart'] - page_details['fetchStart']
    page_result['DNS缓存时间'] = appcache

    # 卸载页面的时间
    unloadEvent = page_details['unloadEventEnd'] - page_details['unloadEventStart']
    page_result['卸载页面的时间'] = unloadEvent

    # TCP建立连接完成握手的时间
    connect = page_details['connectEnd'] - page_details['connectStart']
    page_result['TCP建立连接完成握手的时间'] = connect
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值