Windows和Mac系统实现本地部署WebPageTest工具

news/2024/12/2 23:56:20/

在项目开发或者测试的过程中,由于没有上线,我们在公网上无法访问我们的网站,但同时我们又需要查看浏览器性能,这样我们就需要在本地部署WebPageTest工具以协助进行性能测试

具体实现步骤:

Windows系统:

一:安装docker

1.访问Docker官网文档,按需下载对应版本安装

https://docs.docker.com/get-docker/

2.注册docker 账号

https://hub.docker.com/signup

3.安装后点击Docker图标,使用注册的docker id登录,并在dos中用如下命令登录

docker login

二:拉取镜像

docker pull webpagetest/serverdocker pull webpagetest/agent

这里建议提前配置好阿里云镜像进行加速

三:运行实例

docker run -d -p 4000:80 --rm webpagetest/serverdocker run -d -p 4001:80 --network="host" -e "SERVER_URL=http://localhost:4000/work/" -e "LOCATION=Test" webpagetest/agent

注意:如果拉取失败,很可能镜像仓库中已无此镜像,建议从仓库中换一个实现

至此,在浏览器输入http://localhost:4000/即可看到本地部署的WebPageTest页面


Mac系统

1.创建server目录

mkdir wpt-mac-server
cd wpt-mac-server

2.创建Dockerfile,添加内容

vim DockerfileFROM webpagetest/server
ADD locations.ini /var/www/html/settings/

3.创建locations.ini配置文件,添加内容

vim locations.ini[locations]
1=Test_loc
[Test_loc]
1=Test
label=Test Location
group=Desktop
[Test]
browser=Chrome,Firefox
label="Test Location"
connectivity=LAN

4.创建自定义server镜像

docker build -t wpt-mac-server

5.创建agent目录

mkdir wpt-mac-agent
cd wpt-mac-agent

6.创建Dockerfile,添加内容

vim DockerfileFROM webpagetest/agent
ADD script.sh /
ENTRYPOINT /script.sh

7.创建script.sh, 添加内容

vim script.sh#!/bin/bash
set -e
if [ -z "$SERVER_URL" ]; thenecho >&2 'SERVER_URL not set'exit 1
fi
if [ -z "$LOCATION" ]; thenecho >&2 'LOCATION not set'exit 1
fi
EXTRA_ARGS=""
if [ -n "$NAME" ]; thenEXTRA_ARGS="$EXTRA_ARGS --name $NAME"
fi
python /wptagent/wptagent.py --server $SERVER_URL --location $LOCATION $EXTRA_ARGS --xvfb --dockerized -vvvvv --shaper none

8.修改script.sh权限

chmod u+x script.sh

9.创建自定义agent镜像

docker build -t wpt-mac-agent

10.用新镜像运行实例 (注意先停掉之前运行的containers)

docker run -d -p 4000:80 --rm wpt-mac-server
docker run -d -p 4001:80 --network="host" -e "SERVER_URL=http://localhost:4000/work/" -e "LOCATION=Test" wpt-mac-agent

至此,mac用户自定义镜像已设置完毕


http://www.ppmy.cn/news/6700.html

相关文章

关于 Camera 开始 Tuning 时的一些注意事项

1、问题背景: 最近有调试一个体感游戏机上带 Camera 的项目,原定搭配 ov13855 这颗 sensor, 但由于各种各样的问题,导致做了很多无用功,且各种延期。 本文主要总结下此次项目遇到的问题,及产品开始 tuning 时的一些注意…

git覆盖本地代码

git stash --include-untracked git reset --hard git clean -fd git pull

Java集合框架【三Map接口、Iterator送代器、Collections工具类】

文章目录双例模式一 Map接口简介1.1 常用方法1.2 演示二 HashMap的存储结构简介三 TreeMap容器类3.1 TreeMap的比较规则3.2 元素自身实现比较规则3.3 通过比较器实现比较规则四 Iterator迭代器4.1 Iterator送代器接口介绍4.2 栗子五 Collections工具类5.1 Collections工具类简介…

Kotlin之注解

注解是Java代码调用kotlin代码,kotlin对Java兼容提供的一种解决方案 1、 @JvmName 注解的作用就是更改kotlin源文件名称、方法名称 源文件名称修改 假设有一个kotlin文件 KotlinAnnotationAnnotation.kt,文件中有一个方法 getKotlinFunShow()fun getKotlinFunShow() {print…

Dubbo 面试题及答案【四】

1. Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么? 可以通信的,启动 dubbo 时,消费者会从 zk 拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时&#xff…

<Linux线程同步>——《Linux》

目录 1. Linux线程同步 1.1条件变量 1.2同步概念与竞态条件 1.3条件变量函数 1.4 为什么pthread_ cond_ wait 需要互斥量? 1.5 条件变量使用规范 后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇&am…

linux共享内存的使用

共享内存可以由多个程序同时访问的内存,能够避免进程间通信过程中的冗余数据拷贝,是IPC中最快的一种,特别适合用来作大块数据的传输。共享内存可以映射到不同的进程空间,这些进程间的数据传递就不再涉及内核。这个过程其实是把同一块物理内存…

MARKETS AND MARKET LOGIC——The Market‘s Principles (1)

序 没有人确切地知道场内期货交易者比场外交易者有多大的优势。但我们确实知道,无论这种优势是什么,现在都大大减少了,这要归功于J.Peter Steidlmayer、Kevin Koy和CBOT这对你来说是个好消息。这对我们来说是个好消息。作为一家折扣经纪人&am…