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

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

前言

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

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

准备工作

  • Windows Server 2008 R2 with Service Pack 1 (x64)
  • CentOS-6.8-x86_64-bin-DVD
  • F2etest
  • mysql、jdk、nodejs密码ni62

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

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

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

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

f2etest源码下载方式:

  • 命令行 git clone https://github.com/alibaba/f2etest.git

前提是有git环境

  • 链接下载:https://github.com/alibaba/f2etest/archive/master.zip

安装虚拟机

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

其中

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

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

  1. 前端开发浏览器兼容测试工具Lunascape

    对于前端开发人员来说,浏览器是最头疼的问题了,要考虑各种类型各种版本的兼容,实际情况下写的时间可能远少于你在浏览器中测试问题... 看了不少博客和网站推荐的浏览器兼容测试工具,根据使用过的情况介绍下其 ...

  2. html浏览器兼容测试工具,13个不同浏览器兼容性测试的免费软件工具

    网页制作poluoluo文章简介:这里是网络上传播较多的13个不同操作系统中各色浏览器兼容性测试的软件工具. 前端开发人员最头疼的,莫过于形形色色的浏览器间的兼容性问题.每天绞尽脑汁地为这些本不应该存 ...

  3. 在线HTTP速度测试(响应时间测试)及浏览器兼容测试

    一.前言 网站的响应时间,是判断一个网站是否是好网站的重要的因素之一.百度首页的响应时间在全国各个省份小于10ms.这个响应时间远远好于竞争对手.根据美丽说的技术负责人分析,美丽说访问速度提升10%, ...

  4. java appium_Android应用开发之AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试)...

    本文将带你了解Android应用开发AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试),希望本文对大家学Android有所帮助. 一.为什么需要封 ...

  5. html前端小教程—各浏览器兼容视频插入方法

    今天分享下"html前端小教程-各浏览器兼容视频插入方法"这篇文章,文中根据实例编码详细介绍,或许对大家的编程之路有着一定的参考空间与使用价值,需要的朋友接下来跟着云南仟龙Mark ...

  6. sonar覆盖率怎么统计的_实战|Java 测试覆盖率 Jacoco插桩的不同形式总结和踩坑记录(上)...

    本文为霍格沃兹测试学院优秀学员关于 Jacoco 的小结和踩坑记录.测试开发进阶学习,文末加群. 一.概述 测试覆盖率是老生常谈的话题.因为我测试理论基础不是很好,这里就不提需求.覆盖率等内容,直奔主 ...

  7. mvn exec: java_实战|Java 测试覆盖率 Jacoco插桩的不同形式总结和踩坑记录(下)

    本文为霍格沃兹测试学院优秀学员关于 Jacoco 的小结和踩坑记录.测试开发进阶学习,文末加群. 六.注意事项汇总 修改 JAVA_OPTS 参数时,如果位置不对,可能造成代理无法启动. java - ...

  8. uc浏览器请求被拦截报跨域踩坑记录

    记录下开发时uc浏览器请求被拦截时遇到的问题 请求在uc浏览器出现跨域问题 app使用uniapp开发,使用plus.runtime.launchApplication来打开并跳转指定页面,并在Xco ...

  9. Laya小游戏上架Oppo平台踩坑记录(持续更新)

    Laya小游戏上架Oppo平台踩坑记录(持续更新) 个人踩坑的一些记录,大佬留情! 一些快捷键: Ctrl+P 搜索脚本文件 Ctrl+Y 恢复操作 Ctrl+Z 撤回操作 Ctrl+F 搜索字段 C ...

最新文章

  1. 刚毕业就能拿到56万年薪?对!看看Twitter机器学习大牛写给你的进阶手册吧
  2. Redux之compose
  3. 你,下周可否“报上有名”?
  4. jQuery 1.3 正式版发布
  5. ABBYY FineReader 12PDF选项卡之图像及文字设置
  6. 现在学python2还有意义吗_现在学python该学python2还是python3?
  7. linux哪国的,Linux是什么它是哪个国家开发的
  8. matlab振荡环节的频率特性,频率特性曲线
  9. 电磁场计算的服务器性能指标,有限公式电磁场数值计算理论与性能
  10. Google产品设计师:从二维界面到虚拟现实
  11. t分布 u分布 卡方分布_t分布, 卡方x分布,F分布
  12. 第二人生的源码分析(七十六)判断程序运行多个实例
  13. x-code中蓝色文件夹和绿色文件夹的区别
  14. Android Doze模式
  15. 论文阅读5 Cv-CapsNet:Complex-Valued Capsule Network
  16. 20160829-你拥有的最宝贵的财富是什么?
  17. 中小板、创业板、新三板和科创板之间的区别
  18. anytime you feel the pain,hey,dear,refrain
  19. 张忠谋:摩尔定律将死,物联网是“Next Big Thing”
  20. 怎么知道网站服务器有没有被攻击?

热门文章

  1. TortoiseGit使用详解(1)
  2. 从传统的图像压缩到基于深度学习的图像压缩
  3. Linux部署JupyterHub实现多用户使用Jupyterlab
  4. SSH配置和安装,花生壳配置内网穿透,解决服务器拒绝了密码的问题
  5. Linux以及银河麒麟系统的一些基本认识
  6. 谷歌可能全面退出中国市场 或关闭谷歌中国(附博客全文)
  7. 1039 到底买不买 (20 分)
  8. 营销DMP的漫谈指北
  9. 做一个“盯盘机器人”,实时监控股票价格并通知你!
  10. 天线阵列计算远场方向图