mac下部署webpagetest

mac下webpagetest搭建

我的server和agent都是在mac上搭建的,所以会和linux下有些不同

 

一、安装配置Apache和PHP

webpagetest需要使用PHP和Apache启动服务。mac默认安装了Apache和PHP,所以都不需要自己去安装了,下面只大概介绍一下配置

 

安装配置Apache

mac已默认安装了Apache2,不需要再自己安装了,安装路径【/etc/apache2】

查看Apache的安装版本【httpd -v】

 

启动Apache服务:sudo apachectl start

关闭Apache服务:sudo apachectl stop

重启Apache服务:sudo apachectl restart

 

访问浏览器,输入127.0.0.1,显示It works!证明启动成功

 

配置文件

httpd.conf文件:

DocumentRoot:网站根目录(默认/Library/WebServer/Documents),可以修改成自己的根目录

directoryindex:网站首页的默认文件,会按照配置的顺序去找文件,文件都在DocumentRoot配置的网站根目录下

<IfModule 模块名>xxx</IfModule>:只有当模块加载时,才执行它下面的指令

<FilesMatch 正则>xxx</FilesMatch>:匹配到对应正则的文件名时,会执行的指令

<VirtualHost ip:端口>DocumentRoot 路径</VirtualHost>:匹配到对应的ip和端口,会用指定的网站根目录

 

 

安装配置PHP

mac已经默认安装了PHP

查看php的安装版本【php -v】

 

配置PHP

编辑Apache的httpd.conf文件,将下面内容前面的#去掉,否则Apache不支持php,会将php文件的脚本直接显示出来

LoadModule php5_module libexec/apache2/libphp5.so

 

测试配置成功方法:

新建一个index.php,内容<?php phpinfo(); ?>,重启Apache,访问127.0.0.1/index.php能够看到php的信息页就算成功

 

二、下载并配置webpagetest

 

下载webpagetest

下载地址:https://github.com/WPO-Foundation/webpagetest/releases/tag/WebPageTest-2.19

下载最新的release版本,目前最新版是2.19

 

(直接在git上下载文件也可以)

webpagetest分为server和client的agent两个端。server端为下载下来的www的文件夹,agent端为下载下来的agent文件夹

 

配置Apache去访问webpagetest的站点

1.将下载的webpagetest的www内容拷贝到Apache的根目录下:/Library/WebServer/Documents/

2.修改Apache的httpd.conf文件

 

指定80端口的根目录DocumentRoot和对应的Directory,将目录名改为www的绝对路径(我把www改名为了webpagetest,所以根目录是webpagetest名字的目录)

<Directory "/Library/WebServer/Documents/webpagetest ">

        AllowOverride all
        Order allow,deny
        Allow from all
</Directory>

<VirtualHost *:80>

        DocumentRoot /Library/WebServer/Documents/webpagetest

</VirtualHost>

 

修改网站首页的默认文件directoryindex

<IfModule dir_module>

    DirectoryIndex index.php index.php3 index.html index.htm

</IfModule>

 

进入webpagetest下的settings目录,将所有的.sample文件名的.sample去掉

 

3.更改webpagetest站点的权限,支持可读可写【chmod 766 文件】

tmp、dat、results、work/jobs、work/video、logs

 

4.重启Apache,访问网址127.0.0.1,即可看到webpagetest的首页了

sudo apachectl restart

 

配置好后检查还有哪些项没有安装好:

http://localhost/install/

 

遇到的问题:

1.访问webpagetest提示403(you don’t have permission to access / on the server)

将webpagetest的www文件夹放到Apache原根目录下。默认Apache不允许访问外部的文件夹(同时确保所有用户有访问该文件夹的权限)

 

配置webpagetest的sever端

修改location.ini文件,该文件决定了webpagetest的server端支持的浏览器(包括真机),即下图server端可选的内容

[locations]  locatons下的是所有的location,default是默认值。多个location按照1、2、3进行编号

1=Test_PC

2=Test_Android

3=Test_ios

default=Test_PC

 

[Test_Android]

1=Android_Chrome

label="Android_Chrome_label"

[locations]

group=mobile

 

1.Test_Android为locations下的一个location,名字对应上即可。下面可以有多个Location,用1、2、3等数字编号。这是server端Test Location真正用到的内容。

2.agent通过wptdriver.sh启动时的—location参数值用某个数字编号后的location名,例如Test_Android下的Android_Chrome

3.label为server端Test Location中显示的内容,作为显示用

4.group为分组,多个location会找按照分组显示

 

[Test_PC] 

1=IE   

2=Chrome

3=Firefox

label=PC Locations

group=PC

 

[Test_ios]

1=ios_Chrome

label="ios_Chrome_label"

group=mobile

 

[IE]

browser=IE 8

label="PC- IE 8_label"

;relayServer="http://127.0.0.1/"

1.browser为浏览器,具体哪个关键词对应哪个浏览器server端有说明

2.label为server端的Browser显示的名字

 

[Chrome]

browser=chrome

label="PC-chrome_label"

;relayServer="http://127.0.0.1/"

 

[Firefox]

browser=firefox

label="PC-firefox_label"

;relayServer="http://127.0.0.1/"

 

[Android_Chrome]

browser=android

label="android-chrome_label"

;type=nodejs,mobile

connectivity="WIFI"

;relayServer="http://127.0.0.1/"

1.Android真机的需要注意一点,browser实际用的是chrome浏览器,但是这里要写android

2.真机需要用connectivity指定手机使用的网络

 

[ios_Chrome]

browser=ios

;label="ios-chrome_label"

type=nodejs.type,MOBILE

connectivity="WIFI"

;relayServer="http://127.0.0.1/"

1.ios真机的需要注意一点,browser实际用的是chrome浏览器,但是这里要写ios

2.真机需要用connectivity指定手机使用的网络

 

在server端具体展示效果如下图所示:

 

配置的一些点如下:

配置的locations默认都是隐藏的,只有有agent连接过来的时候才会显示出来。server端加参数hidden=1查看所有的locations

http://127.0.0.1/?hidden=1

 

包含下面的配置文件的才可以在server的界面上显示出来

relayServer="http://www.webpagetest.org/"

 

配置webpagetest的agent端

agent就是webpagetest下载下来目录中的agent的目录

1.修改后缀为.sample的文件名,将.sample去掉

2.需要OSX Yosemite(10.10),XCode

 

然后通过./wpttest.sh脚本启动agent,该脚本在webpagetest/agent/js目录下

通过【./wptdriver.sh —help】查看该脚本的具体参数

 

三、mobile配置

 

环境准备

前提:已经按照第一、第二步配置好了webpagetest的sever

就是we从github上下载的webpagetest,agent为需要的代理目录

http://github.com/WPO-Foundation/webpagetest.git

 

PC环境准备

1.安装NodeJS【brew install node】

2.安装ImageMagick【brew install imagemagick】

3.安装ffmpeg【brew install ffmpeg】

4.安装python27的pillow【pip install pillow】

 

Android手机测试需要的条件:

需要在PC安装adb

手机需要root

手机需安装chrome浏览器

 

ios手机测试需要的条件

1.OSX10.10以上

2.安装XCode, 复制/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport放到wpt/agent/js/lib/ios/DeviceSupport

3.安装libimobiledevice【brew install libmobiledevice】

4.安装ios_webkit_debug_proxy【brew install ios-webkit-debug-proxy】

(mac需要对ios手机进行免登陆,具体操作步骤参考结尾处的问题2)

 

Android环境要求

1.Android系统要求KitKat4.4以上,手机Root

2.手机安装Chrome

3.在安全设置中禁用滑动解锁

4.开启开发者选项,允许调试

5.禁止屏幕待机和自动旋转

 

用数据线连接手机和PC,检察环境

adb devices:检查手机已连接上

adb shell su -c date:检查手机已root

adb shell netcfg|grep wlan:检查手机已联网

adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main -d http://yahoo.com:检查手机已安装chrome

 

ios环境要求

1.ios手机需要越狱

2.安装OpenSSH,创建ssh key,ssh-keygen -t rss -P ‘’,会默认在家目录下生成一个.ssh文件。

3.安装tcpdump

4.进制选择,开启web inspector(Settings->Safari->Advanced)

5.安装设备管理器

 

 

修改sever端的locations.ini

与server端配置类似,增加如下的locations

[locations]

1=Example

 

[Example]

1=Example_Nexus4

label="Example"

 

[Example_Nexus4]

browser=android

label="Nexus 4"

type=nodejs,mobile

connectivity="WiFi"

relayServer="http://www.webpagetest.org/"

 

上面例子中的location为Example,Browse为Android真机的chrome,agent真机启动时—location用Example_Nexus4

具体参数配置参考上面的server端配置

 

启动agent

 

进入webpagetest/agent/js

1.通过下面命令启动Android真机的chrome:

/wptdriver.sh -m debug --browser android:1d543708 --serverUrl http://127.0.0.1 --location Android_Chrome --chromePackage com.android.chrome --processvideo no

1.第一个红色部分为Android手机的devices id,通过adb devices可以获得

2.第二个红色部分为webpagetest的server端的ip地址

3.第三个红色部分为location的名字,具体按照webpagetest的server端配置那里讲的找

 

2.通过下面的命令启动ios真机的chrome:

./wptdriver.sh -m debug --browser ios:4690c9557d198520e86af8fac5b7903b43964a04 --serverUrl http://127.0.0.1 --location Local-iOS --processvideo no

第一个红色部分为ios的UDID,其他两个是server地址和location的名字

 

遇到的问题

问题1.启动Android的mobile的agent时报错:

wpt_client.js:497 Client.onUncaughtException_ : Unhandled exception in the client: Error: Unexpected 'su' output: [-] Execute command failed

 

在命令行下单独执行执行命令adb -s 1d543708 shell su -c 'echo x’也报错[-] Execute command failed,说明mac下不支持这种语法

 

解决方法:

mac上不支持【adb -s 1d543708 shell su -c 'echo x'】,需要用语法【adb -s 1d543708 shell su -c '"echo x"'】

 

修改agent/js/src/adb.js文件,将141行的【this.shell(['su', '-c', 'echo x']).then(function(stdout) {】改为【this.shell(['su', '-c', '"echo x"']).then(function(stdout) {】

 

问题2.启动iOS的mobile的agent时一直提示登录

解决方法:将mac的ssh公钥放到ios手机上,实现免登陆

免登陆步骤如下:

1.mac生成ssh,文件目录在~/.ssh下

2.将mac的【~/.ssh/id_rsa.pub】公钥内容放到iOS手机内的~/.ssh/authorized_keys里

可以通过【echo 公钥内容 >> ~/.ssh/authorized_keys】进行追加,如果要多个电脑实现免登陆直接在authorized_keys下追加即可

*通过【ssh root@10.252.167.74(iOS手机ip)】访问ios手机

 

 

三、测试结果查询

 

结果和日志都存放在webpagetest站点下

 

 

result的存储位置:./webpagetest/results/

在results下的存储路径:年份后两位/月份/日/

 

log的存储位置:./webpagetest/logs

log格式:日期.log(例20161012.log)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署 WebPagetest,你需要按照以下步骤进行操作: 1. 安装依赖:WebPagetest 需要依赖于一些软件和工具。首先,确保你的服务器上安装了 Apache 或 Nginx 作为 Web 服务器。同时,你还需要安装 PHP、MySQL 和 GD 库。 2. 下载 WebPagetest:从 WebPagetest 官方网站(https://www.webpagetest.org/getkey.php)下载最新的 WebPagetest 版本。 3. 配置 Web 服务器:根据你选择的 Web 服务器(Apache 或 Nginx),进行相应的配置。配置的具体步骤会因服务器而异,你可以参考官方文档或在线教程来完成配置。 4. 创建数据库:在 MySQL 中创建一个新的数据库,并将 WebPagetest 提供的 `install` 文件夹中的 `db` 文件导入到该数据库中。这将创建所需的表和存储过程。 5. 配置测试服务器:打开 `settings` 文件夹中的 `settings.ini` 文件,并根据你的需求进行配置。主要的配置项包括数据库连接信息、测试代理配置、测试结果存储位置等。 6. 启动测试代理:在 `agent` 文件夹中找到适用于你操作系统的代理程序,并按照说明进行安装和配置。启动代理后,它将与 Web 服务器通信,并执行测试请求。 7. 运行测试:通过浏览器访问你的 WebPagetest 实例,并进行测试。在测试页面上输入要测试的 URL,并选择所需的测试配置。然后,点击“Start Test”按钮来启动测试。 8. 查看测试结果:测试完成后,你可以在页面上查看测试结果。结果包括页面加载时间、资源加载时间、性能分析等信息。 以上是 WebPagetest 的基本部署步骤。根据你的需求,你可能还需要进行一些额外的配置和定制。希望对你有所帮助!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值