# sitespeed 使用方法
# 安装
- 推荐使用 docker 安装
docker run --rm -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io:15.9.0 https://www.sitespeed.io/
1
- npm 安装
npm install -g sitespeed.io
sitespeed.io https://www.sitespeed.io/
1
2
3
2
3
# 使用
- 网站如果有登录功能, 需要设置执行的 js
login.js
module.exports = async function(context, commands) {
// 登录地址
await commands.navigate("https://power.medcloud.cn/portal/user/login");
try {
// 获取表单dom的id, 输入账号
await commands.addText.byId("DENTAL", "memberCode");
await commands.addText.byId("chenyx1", "username");
await commands.addText.byId("chenyx1", "password");
// Start the measurement and give it the alias login
// The alias will be used when the metrics is sent to
// Graphite/InfluxDB
await commands.measure.start();
// 找到提交按钮并单击它并等待 页面完成检查以完成下一个加载的URL
await commands.click.byClassNameAndWait("ant-btn btnDental___ESne_");
// 停止并收集指标
return commands.measure.stop();
} catch (e) {
// We try/catch so we will catch if the the input fields can't be found
// The error is automatically logged in Browsertime an rethrown here
// We could have an alternative flow ...
// else we can just let it cascade since it caught later on and reported in
// the HTML
throw e;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
scriptjs
module.exports = async function(context, commands) {
// await commands.js.run('document.body.innerHTML = ""; document.body.style.backgroundColor = "white";');
// await commands.measure.start('https://power.medcloud.cn/portal/home');
await commands.js.run(
'document.body.innerHTML = ""; document.body.style.backgroundColor = "white";'
);
await commands.measure.start(
"https://power.medcloud.cn/portal/dpms_dental/appointment/appointment-view"
);
// return commands.measure.start('https://www.sitespeed.io')
};
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 将上面 2 个 js 放在需要执行命令的目录下
docker run --rm -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io:15.9.0 script.js --multi --preScript login.js --graphite.host=host.docker.internal
1
--graphite.host=host.docker.internal 表示使用劳动 sitespeed 的 Performance Dashboard[https://www.sitespeed.io/documentation/sitespeed.io/performance-dashboard/]功能
- Performance Dashboard 使用
执行:
curl -O https://raw.githubusercontent.com/sitespeedio/sitespeed.io/main/docker/docker-compose.yml
1
如果安装不了, 请去系统 hosts 文件下添加 199.232.28.133 raw.githubusercontent.com 就可以正常安装了
再执行:
docker-compose up -d (确保运行最新的Docker compose版本)
1
然后去 http://127.0.0.1:3000 访问就可以看到 Performance Dashboard 了
完成后,您可以通过运行 Docker compose stop&&Docker compose rm 关闭并删除所有 Docker 容器。将保留容器数据
← 性能优化