!Browsertime
从你的浏览器中,在终端里访问Web性能时间线!
Browsertime允许你:
重要提示! master分支现在是即将发布的2.0.0 alpha版本,1.x是最新稳定版本。
使用我们的Docker镜像(包含Chrome、Firefox、XVFB和录制视频所需依赖):
bash$ docker run --shm-size=1g --rm -v "$(pwd)":/browsertime sitespeedio/browsertime --video --speedIndex [***]
或使用node:
bash$ bin/browsertime.js [***]
在Chrome中加载[***]
查看示例文档。
Browsertime在桌面端支持Firefox和Chrome,在Android上支持Chrome。
我们计划支持Opera(Android版),当iOS Safari支持WebDriver时也将添加支持。
Browsertime使用Selenium NodeJS驱动浏览器。它启动浏览器、加载URL、执行可配置的Javascript收集指标、生成HAR文件。
Firefox的HAR文件通过HAR Export Trigger获取,Chrome则使用Chrome-HAR解析时间线日志生成HAR文件。
你还可以在访问URL之前(--preScript)和之后(--postScript)运行自定义Selenium脚本,例如登录/登出或其他操作。
使用我们的Docker容器可轻松录制视频并计算速度指数,因为它包含运行VisualMetrics所需的所有依赖。
默认视频包含计时器并显示指标发生时间,可通过--video.addTimer false关闭。
你可以在本地使用Docker构建和测试更改:
bash$ docker build -t sitespeedio/browsertime . $ docker run --shm-size=1g --rm -v "$(pwd)":/browsertime sitespeedio/browsertime -n 1 --video --speedIndex [***]
你可以通过Docker网络桥接限制网络连接速度,以便更容易捕获性能回归。默认使用TSProxy,但目前与Selenium存在兼容性问题(详见#229)。
在安装了tc的服务器上,可通过以下脚本创建不同网络环境的Docker网络桥接:
bash#!/bin/bash echo '启动Docker网络' docker network create --driver bridge --subnet=192.168.33.0/24 --gateway=192.168.33.10 --opt "com.docker.network.bridge.name"="docker1" 3g tc qdisc add dev docker1 root handle 1: htb default 12 tc class add dev docker1 parent 1:1 classid 1:12 htb rate 1.6mbit ceil 1.6mbit tc qdisc add dev docker1 parent 1:12 netem delay 300ms docker network create --driver bridge --subnet=192.168.34.0/24 --gateway=192.168.34.10 --opt "com.docker.network.bridge.name"="docker2" cable tc qdisc add dev docker2 root handle 1: htb default 12 tc class add dev docker2 parent 1:1 classid 1:12 htb rate 5mbit ceil 5mbit tc qdisc add dev docker2 parent 1:12 netem delay 28ms docker network create --driver bridge --subnet=192.168.35.0/24 --gateway=192.168.35.10 --opt "com.docker.network.bridge.name"="docker3" 3gfast tc qdisc add dev docker3 root handle 1: htb default 12 tc class add dev docker3 parent 1:1 classid 1:12 htb rate 1.6mbit ceil 1.6mbit tc qdisc add dev docker3 parent 1:12 netem delay 150ms docker network create --driver bridge --subnet=192.168.36.0/24 --gateway=192.168.36.10 --opt "com.docker.network.bridge.name"="docker4" 3gem tc qdisc add dev docker4 root handle 1: htb default 12 tc class add dev docker4 parent 1:1 classid 1:12 htb rate 0.4mbit ceil 0.4mbit tc qdisc add dev docker4 parent 1:12 netem delay 400ms
运行容器时添加--network指定网络,同时需告知Browsertime网络连接由外部配置。例如使用cable网络:
bash$ docker run --shm-size=1g --network=cable --rm sitespeedio/browsertime -c cable --connectivity.engine external --speedIndex --video [***]
使用3g网络:
bash$ docker run --shm-size=1g --network=3g --rm sitespeedio/browsertime -c 3g --connectivity.engine external --speedIndex --video [***]
删除网络:
bash#!/bin/bash echo '停止Docker网络' docker network rm 3g docker network rm 3gfast docker network rm 3gem docker network rm cable
Browsertime支持Android上的Chrome:可收集速度指数、HAR和视频!这仍是新功能,如有问题请反馈。
开始前需安装adb并准备设备。
如需限制网络,可使用Micro device lab或TSProxy。
bash$ browsertime --chrome.android.package com.android.chrome [***] --video --speedIndex
在Linux(已测试Ubuntu 16)上,可使用Docker容器驱动Android设备,需注意:
--privileged-v /dev/bus/usb:/dev/bus/usb-e START_ADB_SERVER=true启动adb服务器--xvfb false(自动启动)Docker容器默认支持视频和速度指数分析。
bash$ docker run --privileged -v /dev/bus/usb:/dev/bus/usb -e START_ADB_SERVER=true --shm-size=1g --rm -v "$(pwd)":/browsertime-results sitespeedio/browsertime -n 1 --chrome.android.package com.android.chrome --xvfb false --speedIndex --video [***]
运行$ bin/browsertime.js --help查看配置选项。
最简单的方法是安装jq工具提取指标并发送到Graphite。
例如,提取中位数速度指数并发送:
bashecho "browsertime.your.key.SpeedIndex.median" $(cat /tmp/browsertime/browsertime.json | jq .statistics.visualMetrics.SpeedIndex.median) "`date +%s`" | nc -q0 my.graphite.com 2003
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429