工具本身就不做过多介绍了,大家自行前往查看: [f2etest ]
在搭建环境的过程中我遇到了大量的困难,配置起来非常的麻烦,因此想在这里记录一下过程,让后面的同学能借鉴一二。
编辑帖子很辛苦,转载请注明出处,谢谢!
如github官方所说,你需要至少两台机器。本人搭建的环境分别为:
- Centos6.7(x64)
- windows server 2003 standard(x64)
- windows server 2008(x64)
使用的技术:
- guacamole :一种基于H5的远程桌面技术,官网:http://guac-dev.org/。如果不需要多用户登录,搭建此环境即可直接使用。
- HostsShare:跨服务器和浏览器的共享软件。
- Nodejs:就不多说了,官网:https://nodejs.org/
F2eTest浏览器兼容性测试平台的搭建
Centos环境部署
-
技术基础
guacamole :一种基于H5的远程桌面技术,官网:http://guac-dev.org/。如果不需要多用户登录,搭建此环境即可直接使用。 HostsShare:跨服务器和浏览器的共享软件。 Nodejs:就不多说了,官网:https://nodejs.org/
-
修改yum源
备份repos文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载替换
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
//注意下载的文件要和centos系统版本对应,参考 http://mirrors.aliyun.com/help/centos
执行命令
yum clean all
yum clean metadata
yum clean dbcache
yum makecache
- 安装JAVA环境
安装JAVA,配好JAVAHOME和CLASSPATH等环境变量
mkdir /usr/java
cd /usr/java
wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1440926059_deb5f2aa485976bed6105e9a5b2fbf42
tar -zxvf jdk-7u79-linux-x64.gz
修改环境变量
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
验证环境变量
source /etc/profile
java -version
-
安装tomcat
cd /usr/local/ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz tar -xzvf apache-tomcat-7.0.64.tar.gz mv apache-tomcat-7.0.64 tomcat7 cd /etc/init.d vi tomcat7
tomcat7文件的内容如下:
#!/bin/bash # description: Tomcat Start Stop Restart # processname: tomcat # chkconfig: 234 20 80 JAVA_HOME=/usr/java/jdk1.7.0_79 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH CATALINA_HOME=/usr/local/tomcat7 case $1 in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh sh $CATALINA_HOME/bin/startup.sh ;; esac exit 0
然后配置如下:
chmod 755 tomcat7
[root@i-ket318ot init.d]# chkconfig --add tomcat7
[root@i-ket318ot init.d]# chkconfig --level 234 tomcat7 on
[root@i-ket318ot init.d]# chkconfig --list tomcat7
结果:
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/java/jdk1.7.0_79
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.
- 安装guacamole-server
注:请使用f2etest项目中的war包,作者对guacamole源生代码做了修改,如果用官方的war包会报错。
yum install cairo-devel libpng-devel uuid-devel freerdp* libvncserver-devel openssl-devel
ln -s /usr/local/lib/freerdp/guacsnd.so /usr/lib64/freerdp/
ln -s /usr/local/lib/freerdp/guacdr.so /usr/lib64/freerdp/
mkdir -p /home/guacdshare
chmod 777 /home/guacdshare
wget https://codeload.github.com/alibaba/f2etest/zip/master
mv master master.zip
unzip master.zip
cd f2etest-master/f2etest-guacamole
tar -xzf guacamole-server-0.9.3.tar.gz
cd guacamole-server-0.9.3
./configure --with-init-dir=/etc/init.d
make
make install
ldconfig
chkconfig --add guacd
chkconfig guacd on
chkconfig --list guacd
service guacd start
netstat -panl | grep guacd
结果:
[root@i-ket318ot guacamole-server-0.9.3]# netstat -panl | grep guacdguacd[20038]: INFO: Exiting and passing control to PID 20039
tcp 0 0 127.0.0.1:4822 0.0.0.0:* LISTEN 20039/guacd
unix 2 [ ] DGRAM 49085 20039/guacd
-
安装guacamole-client
cp guacamole-0.9.3.war /usr/local/tomcat7/webapps/guacamole.war mkdir /etc/guacamole mkdir /root/.guacamole vi /etc/guacamole/guacamole.properties
写入的代码
# Hostname and port of guacamole proxy
guacd-hostname: localhost
guacd-port: 4822
enable-websocket: true
enable-clipboard-integration: true
auth-provider: net.sourceforge.guacamole.net.auth.noauth.NoAuthenticationProvider
noauth-config: /etc/guacamole/noauth-config.xml
# auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
# basic-user-mapping: /etc/guacamole/user-mapping.xml
输入如下命令:
ln -s /etc/guacamole/guacamole.properties /root/.guacamole
vi /etc/guacamole/noauth-config.xml
写入:
配置目标服务器,你连接几台就写几台IP,比如192.168.1.5和6分别是我的windows2003和2008的机器
<configs>
<config name="f2etest-ie7" protocol="rdp">
<param name="hostname" value="172.16.3.6" />
<param name="port" value="3389" />
<param name="enable-drive" value="true" />
<param name="drive-path" value="/home/guacdshare" />
</config>
<config name="f2etest-ie8" protocol="rdp">
<param name="hostname" value="172.16.3.3" />
<param name="port" value="3389" />
<param name="enable-drive" value="true" />
<param name="drive-path" value="/home/guacdshare" />
</config>
</configs>
service tomcat7 restart
6. 以上步骤我遇到了很多环境问题,列一部分问题及解决办法
-
本地编译安装guacamole server的时候,执行
./configure
提示找不到libtelnet
,我用yum命令安装telnet后依然不行,最终去地址链接 下载rpm包本地安装成功,我下载的是这个版本。 -
顺便提一下centos中安装mysql的步骤
-下载
yum -y install mysql-server
-开机启动
chkconfig mysqld on
-启动服务
service mysqld start
-设置root账户密码
[root@simple ~]# mysql -u root
mysql> select user,host,password from mysql.user;
+——+———–+———-+
| user | host | password |
+——+———–+———-+
| root | localhost | |
| root | simple | |
| root | 127.0.0.1 | |
| | localhost | |
| | simple | |
+——+———–+———-+
5 rows in set (0.01 sec)
mysql> set password for root@localhost=password(‘设置个密码’);
mysql> exit -
安装nodejs加入环境变量后,需要把nodejs配置到profile中,执行source /etc/profile立刻生效,如果重启以后就失效了,可以在~/.bashrc文件末尾加上:
export PATH=$PATH:/usr/local/nodejs/bin:$PATH
- 安装nodejs 4.8版本提示g++太旧,请参考如下方法解决:
- 如果安装libpng的时候,执行
make install
命令提示undefined reference to inflateReset2
的话,在config命令如此运行LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure
- 在本地编译guacamole-server的时候,执行
./configure --with-init-dir=/etc/init.d
要注意看看最后的结果,如果提示这样:
需要按照提示安装缺少的组件,可以在这里找。 - 安装过程中遇到这个错误:
..libguac/.libs/libguac.so: undefined reference to png_set_longjmp_fn
因为centos6.2在yum安装cairo的时候同时安装的依赖包里有libpng12库,默认是在usr系统目录下,而上面报错的方法最低版本要求是libpng14,,因此需要在执行configure命令的时候:./configure --with-init-dir=/etc/init.d --prefix=/usr/local/lib
7. 验证guacamole部署成功
- 访问地址:http://tomcatserver:8080/guacamole
- 你应该看到如下界面,否则部署没成功
8. 部署f2etest-web
- nodejs、npm请自行安装好
- npm用不了的请用cnpm代替(淘宝镜像)
- 安装过程请参考官网,完全没问题
-
这里给大家看一下我的配置文件(./conf下面的三个文件)
-
app.json
-
server.json
-
site.json
-
-
启动web服务器
node app.js
-
访问web服务器
http://tomcatserver:3000
-
问题1:访问的问题
访问IP:3000地址一直显示connetcing,然后nodejs控制台提示如下:
这是正常的,因为windows客户端还没配置,所以获取不到返回值。
如果显示黑屏,如https://github.com/alibaba/f2etest/issues/20 的问题所描述的,可以参考解决办法。 -
问题2:npm升级的问题
执行命令node app.js启动的时候遇到了问题,提示各种Error: Cannot find module 'finalhandler'
之类的错误,明明已经执行了npm install命令,却没有更新。执行以下命令检查:因为按照作者的步骤,我们把nodejs的模块指定到非默认路径下,比如/usr/local/nodejs这样的,那么安装就会出问题,要手动设置:
export NODE_PATH=/usr/local/nodejs/lib/node_modules
如果出现各种missing,要用npm install安装到本地,我是一个一个装的,先执行npm list看看缺哪些,只要安装节点最上面的包,就可以一并安装依赖包了。npm玩的不熟,大家按自己的办法解决吧。
Windows Server2003/2008的设置
1. 安装操作系统
此处废话不多说,飞速略过。
- 安装好操作系统,记得安装网卡驱动
- 运行curl报错,提示没有找到msvcr100.dll:请安装vc2005及高版本
- VC(32位地址)
VC2005: http://www.microsoft.com/zh-cn/download/details.aspx?id=5638 必须安装
VC2008: http://www.microsoft.com/zh-cn/download/details.aspx?id=5582
VC2010: http://www.microsoft.com/zh-cn/download/details.aspx?id=8328
- VC(64位)
VC2005: http://www.microsoft.com/zh-cn/download/details.aspx?id=18471 必须安装
VC2008: http://www.microsoft.com/zh-cn/download/details.aspx?id=2092
VC2010: http://www.microsoft.com/zh-cn/download/details.aspx?id=13523
(windows server2008需要安装VC2010才行)
- 安装.net framework 2.0 X64位
https://www.microsoft.com/zh-cn/download/details.aspx?id=1639
2. 配置环境
其实2003配置流程和2008类似(有些设置找不到是因为位置或者名称不一样),这里照搬github上的过程,后面补充我遇到的问题。
3. 集中说一下安装和配置windows server遇到的问题
问题1:安装windows后,启动IIS服务器,没有ASP.NET选项卡
windows server默认的.net framework版本是1.1的,需要升级到2.0才能有。
-
问题2:访问IIS中的asp文件,提示404找不到文件
-
第一步,配置Web服务扩展
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->Web服务扩展 -> Active Server Pages -> 允许 -> Internet数据连接器 -> 允许。
运行.NET程序也一样要启用 ASP.NETV2.0
-
第二步,启用父路径支持和启用默认内容文档
启用父路径支持:
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->网站 ->默认网站 ->右键属性 ->主目录 ->配置 ->选项 ->打勾启用父路径。
启用默认内容文档:
控制面板 -> 管理工具 ->服务和应用程序 ->Internet 信息服务(IIS)管理器 ->网站 ->默认网站 ->右键属性 ->文档 ->打勾启用默认内容文档 ->添加 ->输入:index.asp ->确定 -> 添加 ->输入:index.aspx ->确定。
第三步,更改默认网站路径
控制面板 -> 管理工具 ->Internet 信息服务(IIS)管理器 ->网站 ->默认网站 ->右键属性 ->主目录 ->本地路径(本地路径改为自己设置的网站目录) ->确定。
问题3:如下图所示
确保client安装是ok的,然后asp.net升级到2.0,
http://IP:3000/syncAllRemoteUsers同步账户没有问题。正确配置后应该显示如下:
问题4:怎么确认f2etest-client安装成功了?
访问地址:http:/127.0.0.1/setuser.asp?username=test&password=hello123&key=xxx(请用site.json文件中设置的apikey替换xxx)
返回ok即可。
问题5:Windows server2003无法修改最大连接数,默认最多2人
1、开始->控制面板->添加或删除程序->添加/删除windows组件->选择“终端服务器”进行安装。
2、开始->运行->gpedit.msc,打开策略组编辑器,在树状菜单中选择计算机配置 ->管理模板 ->windows组件-》终端服务,在右侧窗口中打开“限制连接数量”,选择“已启用”,修改“TS允许的最大连接数”,确定。
问题6:如何设置www访问权限
用Administrator账户登录后,找到inetpub文件夹下的wwwroot目录,右键属性->安全,删掉users用户组,如下图:
对于上文描述的过程,给出配图(图比较多)
-
关于【IIS的安装】:
-
关于【管理工具 / 服务器管理器 / 添加功能/Telnet 客户端】
- 关于【IE ESC禁用】
- 关于【管理工具 / 远程桌面服务 / 远程桌面授权管理器】
- 关于 【管理工具 / 远程桌面服务 / 远程桌面会话主机配置】
- 关于【RemoteAPP管理器】
- 关于【网站 / Default Web Site/身份验证】
- 关于【身份验证设置】
- 【本地开启fiddler访问3000地址出现的错误】
- 关于【初始化提示失败】
因为有时候初始化随机账户会失败,所以提示这样的,重新刷新浏览器即可