前端自动化测试之多浏览器兼容测试平台F2etest全面踩坑记录

 

PPT更详尽:F2etest兼容性平台&UIrecorder脚本录制回放

本文参考:http://shaofan.org/f2etest/https://www.jianshu.com/p/b668623f22d0,并对其中很多坑点进行填平,部署WebDriver云攻略未在此文中描述,继续学习可下载PPT或参考上面两篇文章。     

      

前言

前面介绍过前端自动化测试之UI Recorder,其中webdriver server是单机的方式,如果是自己测试,或者单个浏览器测试没什么问题,如果是部门需要多浏览器多人测试的话,就无法满足需求了。

今天介绍一款阿里巴巴出品的多浏览器测试整体解决方案,详细介绍查看官方介绍F2etest

准备工作

其中WindowsServer2008用来部署webdriver server,可以是集群,这里只部署一台机器,集群部署方式和一台部署都是一样的方法,下面会说明

CentOS主要用来部署guacamole服务,用来通过f2etest-web网页端进行远程桌面登陆windows server进行管理和查看

上面两个操作系统是电驴链接和磁力链接,直接复制到迅雷即可下载

mysql、jdk等工具我放到百度网盘了需要的可以下载直接使用

f2etest源码下载方式:

前提是有git环境

安装虚拟机

这里我已经安装好了两台虚拟机,初始化好后就可以进行下一步了,这里网络建议使用桥接模式,免得出现各种各样的问题。

其中

Centos IP:192.168.10.105

Windows IP:192.168.10.106

安装f2etest-guacamole

把f2etest源代码中的f2etest-guacamole文件夹下的文件上传到centos中,以及jdk、tomcat一并上传,我这里是统一传到了root目录下,文件结构见下图 

安装java环境:

mkdir /usr/java 

cd /usr/java 

cp /root/jdk-7u79-linux-x64.tar.gz ./ 

tar -zxvf jdk-7u79-linux-x64.tar.gz 

vi /etc/profile 

追加以下内容

Bash

JAVA_HOME=/usr/java/jdk1.7.0_79 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH

source /etc/profile 

最后输入java -version查看是否安装成功

安装tomcat7:

cd /usr/local/ 

cp /root/apache-tomcat-7.0.70.tar.gz ./ 

tar -xzvf apache-tomcat-7.0.70.tar.gz 

mv apache-tomcat-7.0.70 tomcat7 

cd /etc/init.d 

vi tomcat7 

追加以下内容(开机启动tomcat)

Bash

#!/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 

chkconfig --add tomcat7 

chkconfig --level 234 tomcat7 on 

chkconfig --list tomcat7 

service tomcat7 start

service iptables stop #停止 

chkconfig iptables off #禁用 

 

最后用上面两条命令禁用防火墙,并通过8080端口访问tomcat是否成功

安装guacamole-server

cd /root 

yum install cairo-devel libpng-devel uuid-devel freerdp* libvncserver-devel openssl-devel gcc

注:yum到gcc全部是一样命令,有些浏览器换行了,会引起误会--!

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 

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 

安装guacamole-client

(注意:拷到tomcat下的war包名为:guacamole.war )

cp /root/guacamole-0.9.3.war /usr/local/tomcat7/webapps/guacamole.war 

mkdir /etc/guacamole 

mkdir /root/.guacamole 

 

 

vi /etc/guacamole/guacamole.properties 

Bash

# 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 

内容如下(Xml):

<configs>
     <config name="f2etest-ie8" protocol="rdp"> 
        <param name="hostname" value="192.168.10.106" />
        <param name="port" value="3389" /> 
        <param name="enable-drive" value="true" /> 
        <param name="drive-path" value="/home/guacdshare" />
     </config> 
</configs>

service tomcat7 restart 

然后通过上面命令重启tomcat,并访问刚才部署的war程序,看看是否部署成功:

安装f2etest-web

f2etest-web就是提供给我们操作浏览器云,查看webdriver云节点,以及远程登陆云节点的web界面

要运行f2etest-web首先要先安装nodejs和mysql数据库

把f2etest源码中的f2etest-web和mysql安装文件拷贝到centos /root中,文件结构如下 

安装mysql

如果已安装mysql可忽略此步骤

cd /root 

yum install numactl perl 

rpm -qa | grep mysql 

yum remove mysql-libs 

rpm -ivh mysql-community-common-5.7.15-1.el6.x8664.rpm 

rpm -ivh mysql-community-libs-5.7.15-1.el6.x8664.rpm 

rpm -ivh mysql-community-client-5.7.15-1.el6.x8664.rpm 

rpm -ivh mysql-community-server-5.7.15-1.el6.x8664.rpm

文件名是有下划线的,这里显示有问题,显示不出来

service mysqld start 

 

然后以下命令查看mysql随机生成的登录密码 cat /var/log/mysqld.log | more 

查找以下类似内容: [Note] A temporary password is generated for root@localhost:!R24*6IKha_p 

 

其中localhost:后面的就是登录密码

最后用刚才的密码输入以下命令登录mysql修改密码和设置远程登陆权限

Xml

mysql> 创建数据库database f2etest,并添加用户(或root); 

mysql -uroot -p 

mysql> set global validate_password_policy=0; 

mysql> set password='shaofan.org'; 

mysql> grant all privileges on *.* to 'root'@'%' identified by 'shaofan.org';

 

启动好mysql并修改好密码之后,就可以用你喜欢的mysql客户端管理工具初始化数据库了

首先创建f2etest数据库,然后导入f2etest-web文件夹中的f2etest.sql初始化表结构 

安装nodejs

mysql部署完成之后就可以安装nodejs环境来启动f2etest-web程序了 

安装方式一:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash - 

yum install -y nodejs 

node -v 

安装方式二(推荐):

下载nodejs

wget https://npm.taobao.org/mirrors/node/v8.0.0/node-v8.0.0-linux-x64.tar.xz

解压

tar -xvf node-v8.0.0-linux-x64.tar.xz

测试是否安装成功

进入解压目录下的 bin 目录,执行 ls 命令

cd node-v8.0.0-linux-x64/bin && ls

有node 和 npm

测试

./node -v

安装成功

现在 node 和 npm 还不能全局使用,做个链接

ln -s /www/node-v8.0.0-linux-x64/bin/node /usr/local/bin/node ln -s /www/node-v8.0.0-linux-x64/bin/npm /usr/local/bin/npm

可以在任何目录下执行 node 和 npm 命令

 注:查看环境变量echo $PATH

/usr/local/bin是环境变量PATH的内容,所以建立软链接后可以直接使用node命令

 

安装淘宝npm镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org

用过npm安装模块的小伙伴都知道,因为各种原因,经常下载慢,或者下载失败,所以借助淘宝的镜像加快安装,安装好之后用cnpm命令替代npm命令(我用npm,没有用cnpm,cnpm执行过程中看不出来是否有错)

 

cd /root/f2etest-web/ 

cnpm install 

vi conf/site.json 

vi conf/server.json 

vi conf/app.json 

node app.js 

这时候f2etest-web就运行起来了,访问地址为http://192.168.10.105 但是这个时候先不要访问,因为提供初始化账号的IIS还没有部署。

当项目部署好后可执行,centOS后台自动运行node.js:nohup node app.js &

 

部署webdriver server

由于windows server2008r2自带ie8,这里就默认这台服务器是提供ie8的webdriver服务。

取消登陆密码必须复杂性要求

在运行中输入gpedit.msc打开本地策略编辑器,修改如下 

禁用IE ESC

安装远程桌面服务

安装完成之后需要重启服务器,重启之后登陆需要输入用户名和密码,输入administrator和密码登陆即可

配置远程桌面服务

 

 

部署IIS服务

iis服务器主要是用来给f2etest-web调用创建windows用户功能 

拷贝f2etest源代码里的f2etest-client\f2etest-browsers\www下的setuser文件到C:\inetpub\wwwroot下 并修改apikey为前面配置的key 

 

配置远程桌面服务

 http://127.0.0.1/setuser.asp?username=test&password=hello123&key=shaofan.org 

配置RemoteApp

复制f2etest-client\f2etest-browsers\curl中的所有文件到c:\windows下面

把f2etest-client\f2etest-browsers下的app目录复制到c盘根目录,并重命名强制代理.bat为ie8.bat,禁用代理.bat为hostsshare.bat,

然后修改两个bat中的f2etestDomain为f2etest-web的访问地址即192.168.10.105其中ie8.bat中的appid请修改为ie8和前面的app.js中配置的id保持一致, 

然后再把源码中的hostsShare-client文件里的build文件修改为hostsShare并拷贝到C盘根目录

最后再添加两个bat文件到RemoteApp,并设置允许任何命令行参数 

 这时,整个浏览器云就部署好了,。我们访问192.168.10.105试试 

已经可以成功打开了,并看到了我们配置的两个app,这时候你可以点击ie8图标就会再远程桌面打开ie8

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值