Selenium+python小工具

流程

  1. selenium驱动浏览器打开页面
  2. driver.execute_script方法拿到页面各项耗时数据,计算出想要的数据(页面响应时间,重定向时间,DNS解析时间,页面渲染时间,白屏等待时间)
  3. 数据输出到文件中,用以统计耗时数据

统计结果如下:

全部代码如下

from selenium import webdriver
import time'''
Web页面响应时间探测工具
打开一个页面,并统计页面各项耗时【页面响应时间,重定向时间,DNS解析时间,页面渲染时间,白屏等待时间】
可以用于统计某些页面的耗时
目前统计的是fireFox的数据
后续可以把耗时输出到文件里,用以统计耗时数据
'''
def gettime(page,url):page.append(url)# 请求到响应时间=responseStart 服务器开始响应的时间requestStart 发起请求的时间page.append(driver.execute_script("return performance.timing.responseStart") - driver.execute_script("return performance.timing.requestStart"))# 重定向时间=redirectStart 重定向开始时间-redirectEnd 重定向结束时间page.append(driver.execute_script("return performance.timing.redirectStart") - driver.execute_script("return performance.timing.redirectEnd"))# DNS解析时间=domainLookupStart 查询DNS的开始时间-domainLookupEnd 查询DNS的结束时间page.append(driver.execute_script("return performance.timing.domainLookupEnd") - driver.execute_script("return performance.timing.domainLookupStart"))# 页面渲染时间=domComplete 从图中看是dom渲染完成时间-domLoading 从图中看是开始渲染dom的时间page.append(driver.execute_script("return performance.timing.domComplete") - driver.execute_script("return performance.timing.domLoading"))# 白屏时间=responseStart 服务器开始响应的时间-navigationStart 加载起始时间page.append(driver.execute_script("return performance.timing.responseStart") - driver.execute_script("return performance.timing.navigationStart"))return pageif __name__ == '__main__':url = "https://www.baidu.com"page = []# 初始化一个浏览器driver = webdriver.Firefox()'''以下是各种详细时间点的获取方式# navigationStart 加载起始时间page.append(driver.execute_script("return performance.timing.navigationStart"))# redirectStart 重定向开始时间(如果发生了HTTP重定向,每次重定向都和当前文档同域的话,就返回开始重定向的fetchStart的值。其他情况,则返回0)page.append(driver.execute_script("return performance.timing.redirectStart"))# redirectEnd 重定向结束时间(如果发生了HTTP重定向,每次重定向都和当前文档同域的话,就返回最后一次重定向接受完数据的时间。其他情况则返回0)page.append(driver.execute_script("return performance.timing.redirectEnd"))# fetchStart 浏览器发起资源请求时,如果有缓存,则返回读取缓存的开始时间page.append(driver.execute_script("return performance.timing.fetchStart"))# domainLookupStart 查询DNS的开始时间。如果请求没有发起DNS请求,如keep-alive,缓存等,则返回fetchStartpage.append(driver.execute_script("return performance.timing.domainLookupStart"))# domainLookupEnd 查询DNS的结束时间。如果没有发起DNS请求,同上page.append(driver.execute_script("return performance.timing.domainLookupEnd"))# connectStart 开始建立TCP请求的时间。如果请求是keep-alive,缓存等,则返回domainLookupEnd(secureConnectionStart) 如果在进行TLS或SSL,则返回握手时间page.append(driver.execute_script("return performance.timing.connectStart"))# connectEnd 完成TCP链接的时间。如果是keep-alive,缓存等,同connectStartpage.append(driver.execute_script("return performance.timing.connenctEnd"))# responseStart 服务器开始响应的时间page.append(driver.execute_script("return performance.timing.responseStart"))# requestStart 发起请求的时间page.append(driver.execute_script("return performance.timing.requestStart"))# domLoading 从图中看是开始渲染dom的时间,具体未知page.append(driver.execute_script("return performance.timing.domLoading"))# domComplete 从图中看是dom渲染完成时间,具体未知page.append(driver.execute_script("return performance.timing.domComplete"))# loadEventStart 触发load的时间,如没有则返回0page.append(driver.execute_script("return performance.timing.loadEventStart"))# loadEventEnd load事件执行完的时间,如没有则返回0page.append(driver.execute_script("return performance.timing.loadEventEnd "))'''# 窗口最大化driver.maximize_window()time.sleep(1)# 打开页面driver.get(url)time.sleep(1)filepath = "time.csv"timeStatistical = open(filepath, "a+")i = 2while i > 0:try:driver.refresh()page = gettime(page, url)pageStr = list(map(lambda x: str(x), page))print(pageStr)str = ",".join(pageStr)+"\r\n"timeStatistical.write(str)except Exception as e:print(e)i=i-1timeStatistical.close()driver.close()

参考文献

https://blog.csdn.net/weixin_43484977/article/details/103339233

web页面响应时间统计工具相关推荐

  1. 前端的小玩意(9.2)——做一个仿360工具箱的web页面(全部工具里面的模板)

    上一篇链接: http://blog.csdn.net/qq20004604/article/details/52216203 DEMO: http://jianwangsan.cn/toolbox ...

  2. 前端的小玩意(9.3)——做一个仿360工具箱的web页面(我的工具里的模板和样式)

    前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小 ...

  3. 警惕!不要让页面响应时间成为应用性能指标上的杠精

    谈到移动端应用性能测试,我们首先会想到的性能测试指标有:启动时间.响应时间.CPU.内存.电量等.我们可以将以上指标按照资源消耗和响应时间分为两大类. 资源消耗类:CPU.内存.电量: 响应时间类:启 ...

  4. 前端的小玩意(9.5)——做一个仿360工具箱的web页面(完结篇,可以跑起来的工具箱)

    前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小 ...

  5. 了解WEB页面工具语言XML

    一.XML产生的背景 XML同HTML一样,都来自Standard Generalized Markup Language, 即标准通用标记语言,简称SGML.早在Web未发明之前,SGML就早已存在 ...

  6. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  7. 加粉推广全能助手 推广辅助工具 好多粉微信号加粉复制统计工具加强版,加粉推广神器,持续完善升级,新增统计点击转化,页面插件功能,完美支持ocpc接口

    最新一次版本是3.7版了,相比最开始的版本,新增了行为转化统计,落地页插件功能. 可能大家还不明白我们的这个系统有什么用了? 好吧,那就简单的介绍下,我们的系统可以给目前的加粉推广的提供最完善的数据统 ...

  8. MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试(二)涉及工具

    本博文注重的是实例讲解,对于工具的使用说明制作简单介绍,如果需要详细了解工具的,请找对应的官网进行查阅 工具清单: PC server一台--用于跑跑graphwalker PC 执行机一台--自动化 ...

  9. 原型设计如何直接生成html,使用原型设计工具 Axure RP创建一个web页面框架

    前言 什么是原型呢? 原型设计是交互设计师与PD.PM.网站开发工程师沟通的最好工具.而该块的设计在原则上必须是交互设计师的产物,交互设计以用户为中心的理念会贯穿整个产品.利用交互设计师专业的眼光与经 ...

  10. Kuuga——转化任何 Web 页面为桌面应用的跨平台工具

    下载地址: Download (MacOS) Download (Windows) 什么是 Kuuga Kuuga 是一个基于 Electron + VueJS 构建的跨平台桌面应用,能够转化任何 W ...

最新文章

  1. html 怎么播放avi视频,iPhone4S视频格式播放巧用苹果转换器
  2. struts 普通的action
  3. 医院的“数据中心”,究竟应该怎么建?
  4. iphone 软键盘
  5. PKI/CA (1)为什么要有PKI/CA体系?
  6. 在生产环境中,阿里云如何构建高性能云原生容器网络?(含 PPT 下载)
  7. Bit-Z 项目评审中心开启首次投票币竞选
  8. Linux 开发板4G转WiFi热点 手机连接热点上网(一 思路)
  9. Android 常用的性能分析工具详解:GPU呈现模式, TraceView, Systrace, HirearchyViewer(转)...
  10. 洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek
  11. 东方航空:拟与携程等出资设立三亚国际航空
  12. MS SQL Server和Oracle对数据库事务处理的差异性
  13. 天聪公司研发成功第三代声纹识别算法
  14. 算法:时间、空间复杂度
  15. python爬虫--requests模块
  16. 产品发布会快闪创意动画PPT模板
  17. bam文件读取_科学网—Pacbio Sequel两种bam文件解析 - 卢锐的博文
  18. alluxio java_学习 Alluxio(四):Java API
  19. Jetpack Compose——Scaffold(脚手架)、SnackBar(通知,类似Toast)的简单使用
  20. cocos-lua学习笔记(九)动作

热门文章

  1. java 控制台程序_控制台应用程序开发(C# 与 Java)
  2. 简单实用的下载百度文库文档的方法
  3. 计算机主板不认硬盘怎么回事,主板sata接口不认硬盘怎么办
  4. 让老主板更新驱动程序不再拒绝新网卡(转)
  5. 按键精灵手机助手学习过程中的教程集锦收藏
  6. 按键精灵手机助手之实战篇(一)需求理论分析
  7. win10在哪里找到计算机,win10计算器在哪里?win10怎么调出计算器?
  8. 用安卓软件MT管理器破解元气骑士内购,小白照着也可以成功!
  9. win10家庭版升级到企业版
  10. 四川音乐学院计算机音乐创作,川音电子音乐系教师作品、论文入选2019国际计算机年会(ICMC)...