web页面响应时间统计工具
Selenium+python小工具
流程
- selenium驱动浏览器打开页面
- driver.execute_script方法拿到页面各项耗时数据,计算出想要的数据(页面响应时间,重定向时间,DNS解析时间,页面渲染时间,白屏等待时间)
- 数据输出到文件中,用以统计耗时数据
统计结果如下:
全部代码如下
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页面响应时间统计工具相关推荐
- 前端的小玩意(9.2)——做一个仿360工具箱的web页面(全部工具里面的模板)
上一篇链接: http://blog.csdn.net/qq20004604/article/details/52216203 DEMO: http://jianwangsan.cn/toolbox ...
- 前端的小玩意(9.3)——做一个仿360工具箱的web页面(我的工具里的模板和样式)
前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小 ...
- 警惕!不要让页面响应时间成为应用性能指标上的杠精
谈到移动端应用性能测试,我们首先会想到的性能测试指标有:启动时间.响应时间.CPU.内存.电量等.我们可以将以上指标按照资源消耗和响应时间分为两大类. 资源消耗类:CPU.内存.电量: 响应时间类:启 ...
- 前端的小玩意(9.5)——做一个仿360工具箱的web页面(完结篇,可以跑起来的工具箱)
前端的小玩意(9.1)--做一个仿360工具箱的web页面(Tab按钮切换) http://blog.csdn.net/qq20004604/article/details/52216203 前端的小 ...
- 了解WEB页面工具语言XML
一.XML产生的背景 XML同HTML一样,都来自Standard Generalized Markup Language, 即标准通用标记语言,简称SGML.早在Web未发明之前,SGML就早已存在 ...
- java 图形校验_java图形验证码生成工具类 web页面校验验证码
java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...
- 加粉推广全能助手 推广辅助工具 好多粉微信号加粉复制统计工具加强版,加粉推广神器,持续完善升级,新增统计点击转化,页面插件功能,完美支持ocpc接口
最新一次版本是3.7版了,相比最开始的版本,新增了行为转化统计,落地页插件功能. 可能大家还不明白我们的这个系统有什么用了? 好吧,那就简单的介绍下,我们的系统可以给目前的加粉推广的提供最完善的数据统 ...
- MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试(二)涉及工具
本博文注重的是实例讲解,对于工具的使用说明制作简单介绍,如果需要详细了解工具的,请找对应的官网进行查阅 工具清单: PC server一台--用于跑跑graphwalker PC 执行机一台--自动化 ...
- 原型设计如何直接生成html,使用原型设计工具 Axure RP创建一个web页面框架
前言 什么是原型呢? 原型设计是交互设计师与PD.PM.网站开发工程师沟通的最好工具.而该块的设计在原则上必须是交互设计师的产物,交互设计以用户为中心的理念会贯穿整个产品.利用交互设计师专业的眼光与经 ...
- Kuuga——转化任何 Web 页面为桌面应用的跨平台工具
下载地址: Download (MacOS) Download (Windows) 什么是 Kuuga Kuuga 是一个基于 Electron + VueJS 构建的跨平台桌面应用,能够转化任何 W ...
最新文章
- html 怎么播放avi视频,iPhone4S视频格式播放巧用苹果转换器
- struts 普通的action
- 医院的“数据中心”,究竟应该怎么建?
- iphone 软键盘
- PKI/CA (1)为什么要有PKI/CA体系?
- 在生产环境中,阿里云如何构建高性能云原生容器网络?(含 PPT 下载)
- Bit-Z 项目评审中心开启首次投票币竞选
- Linux 开发板4G转WiFi热点 手机连接热点上网(一 思路)
- Android 常用的性能分析工具详解:GPU呈现模式, TraceView, Systrace, HirearchyViewer(转)...
- 洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek
- 东方航空:拟与携程等出资设立三亚国际航空
- MS SQL Server和Oracle对数据库事务处理的差异性
- 天聪公司研发成功第三代声纹识别算法
- 算法:时间、空间复杂度
- python爬虫--requests模块
- 产品发布会快闪创意动画PPT模板
- bam文件读取_科学网—Pacbio Sequel两种bam文件解析 - 卢锐的博文
- alluxio java_学习 Alluxio(四):Java API
- Jetpack Compose——Scaffold(脚手架)、SnackBar(通知,类似Toast)的简单使用
- cocos-lua学习笔记(九)动作
热门文章
- java 控制台程序_控制台应用程序开发(C# 与 Java)
- 简单实用的下载百度文库文档的方法
- 计算机主板不认硬盘怎么回事,主板sata接口不认硬盘怎么办
- 让老主板更新驱动程序不再拒绝新网卡(转)
- 按键精灵手机助手学习过程中的教程集锦收藏
- 按键精灵手机助手之实战篇(一)需求理论分析
- win10在哪里找到计算机,win10计算器在哪里?win10怎么调出计算器?
- 用安卓软件MT管理器破解元气骑士内购,小白照着也可以成功!
- win10家庭版升级到企业版
- 四川音乐学院计算机音乐创作,川音电子音乐系教师作品、论文入选2019国际计算机年会(ICMC)...