F2etest环境搭建

F2etest环境搭建

前言:项目须要作浏览器的兼容性测试,不管是经过安装大量的浏览器,或者使用IE Tester等模拟软件,都会有各自的缺陷。如:低效率、总体资源消耗高。刚好在一个测试交流群中,看到有人提出该问题,获得利用F2etest这个答案。遂开始了解F2etest,并进行F2etest的环境搭建。当你看完文章后,你应该了解什么是F2etest?如何进行F2etest-web部署?如何进行浏览器云部署?如何进行多浏览器部署?html

什么是F2etest?

F2etest 是一个面向前端、测试、产品等岗位的多浏览器兼容性测试总体解决方案,优点是:前端

  1. 10 倍以上硬件利用率,下降企业运营成本;
  2. 提供很是棒的桌面用户体验,极大的提升测试效率;
  3. 浏览器云提供真实浏览器环境,还原真实测试场景;
  4. WebDriver 云快速稳定的支撑自动化测试脚本运行。

如何进行F2etest-web部署?

搭建F2etest环境,须要准备CentOS 7虚拟机或物理机。本文以虚拟机搭建方式为例,进行描述。git

部署环境

操做系统 IP 内存 软件
本机:Windows 10 专业版 192.168.X.1 16G VMware® Workstation 15 Pro 15.0.2
虚拟机:CentOS Linux release 7.4.1708 (Core) 192.168.X.2 4G Docker 19.03.1,MySQL Ver 14.14 Distrib 5.6.43
虚拟机:Windows Server 2008 R2 Standard 192.168.X.3 2G ie8,Chrome 76.0.8809.100,Firefox 68.0.2,360浏览器 10.0.1977.0,360极速浏览器 11.0.2179.0
虚拟机:Windows Server 2008 R2 Standard 192.168.X.4 2G ie9,QQ浏览器 10.4.2,搜狗高速浏览器 8.5.10.31270
虚拟机:Windows Server 2008 R2 Standard 192.168.X.5 2G ie10

部署步骤

请先再本机上安装VMware软件,下载CentOS镜像,启动CentOS虚拟机,在CentOS机器上安装最新版的Docker,如已安装请忽略,安装教程:www.yuque.com/grasilife/d…github

# 获取 `f2etest-web` 镜像
[root@localhost ~]# docker pull registry.cn-hangzhou.aliyuncs.com/f2etest/f2etest-web

# 启动容器
# 映射本地端口,这里已 80 为例,请确保此端口未被占用
# 若是 80 被占用,请修改成其它可用端口,例如 8080 端口:-p 8080:80
[root@localhost ~]# docker run -dit --privileged -p 80:80 --name f2etest registry.cn-hangzhou.aliyuncs.com/f2etest/f2etest-web

# 进入容器
[root@localhost ~]# docker exec -it f2etest bash

# 初始化数据库表并启动 Web
[root@e40349b09133 f2etest-web]# source setup.sh
复制代码

修改配置

# 修改site.json

[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/site.json
# 第11行 修改 guacamoleApi 字段,IP 地址改成 CentOS 机器 IP 地址,端口号改成运行容器时映射的本地端口号,80 端口可忽略。建议使用 80 端口。
"guacamoleApi": "http://192.168.X.2:80/guacamole/client.xhtml"
 # 修改server.json
[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/server.json
# 第4行 修改ip地址为Windows Server 的 IP 地址
"ip": "192.168.X.3",
 # 重启 web
[root@e40349b09133 f2etest-web]# pm2 restart f2etest-web
 # 修改noauth-config.xml
[root@e40349b09133 f2etest-web]# vi /etc/guacamole/noauth-config.xml
# 第3行 value的值为Windows Server 的 IP 地址
 <param name="hostname" value="192.168.X.3" />
 
 # 重启 tomcat8
service tomcat8 restart

复制代码

如何进行浏览器云部署?

在 Windows Server上搭建 IE8 浏览器与 hostShare 应用供 F2etest-web 使用。web

部署步骤:

请先再本机上安装VMware软件,下载Windows Server 2008 R2 Standard镜像,启动Windows Server 2008 R2 Standard虚拟机.chrome

取消登录密码复杂性 - F2etest 的登录

运行中输入 gpedit.msc 打开本地策略编辑器docker

1-0

修改 帐户策略 - 密码策略shell

1-1.jpg

禁用 IE ESC - 防止在浏览器操做时,按了 ESC 致使 IE 浏览器退出

进入服务器管理器数据库

66

配置 IE ESCjson

65

安装远程桌面服务

服务器管理 - 角色 - 添加角色

3.jpg

角色服务,勾选远程桌面会话主机,远程桌面受权和远程桌面 Web 访问。

4.jpg

应用程序兼容性,下一步。

5.jpg

身份验证方法,选择不须要使用网络级别身份验证,下一步。

6.jpg

受权模式,选择每用户,下一步。

7.jpg

用户组,按照以下面所示,添加 Authenticated User,下一步。

8.jpg

9.jpg

10.jpg

11.jpg

客户端体验,默认,下一步。

12.jpg

RD 受权配置,默认,下一步。

13.jpg

角色服务,按照下图勾选,勾选应用程序开发和管理工具,下一步。

14.jpg

15.jpg

确认安装,安装完成后重启机器。

16.jpg

17.jpg

18.jpg

配置远程桌面服务

激活远程桌面服务,管理工具 - 远程桌面服务 - 远程桌面受权管理器。

64

右键,激活服务器。

20.jpg

激活向导,下一步。

21.jpg

公司,姓,名,可填任意值。

22.jpg

不填,下一步。

23.jpg

确保“当即启动许可证安装向导”勾选,下一步。

24.jpg

下一步。

25.jpg

示例,无论,下一步。

26.jpg

协议号码填入“6565792”,下一步。

27.jpg

选择每用户,下一步。

28.jpg

完成。

29.jpg

注:官方文档里的120天受权激活破解未进行。

部署 IIS 服务 - 提供新建用户服务脚本

先将f2etest-master.zip 下载完成,并传到Windows虚拟机中,下载地址

IIS 服务器主要是用来给 F2etest-web 调用建立 Windows 用户功能。

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

30.jpg

编辑 setuser 文件,修改 apiKey

31.jpg

进入 IIS 管理器。

63

选择身份验证。

62

右键匿名身份验证,编辑。

34.jpg

选择设置。

35.jpg

填入 administrator 的帐户与密码。

36.jpg

访问 http://127.0.0.1/setuser.asp?username=test&password=hello123&key=f2etest,若是看到页面输出 ok,表明 IIS服务设置成功。

image.png

配置应用程序 - IE8 浏览器与 hostShare 应用

复制f2etest-client\f2etest-browsers\curl 中的全部文件到 c:\windows 下面。

38.jpg

f2etest-client\f2etest-browsers 下的 app 目录复制到 C 盘根目录,并重命名强制代理.batie8.bat禁用代理.bathostsshare.bat

39.jpg

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

62

61

把源码中的 hostsShare-client 下的 build 文件夹修改成 hostsShare 并拷贝到 C 盘根目录。

41.jpg

管理工具 - 远程桌面服务 - RemoteApp 管理器

60

按照下图顺序添加

59

点击 ie8.bat,选择属性,选择容许任何命令行参数。

58

如何进行多浏览器部署?

若你须要测试不一样版本的IE 浏览器,那么须要进行部署一样数量的Windows服务器(由于在一台 Windows 服务器上只能安装一个 IE系浏览器)。若测试其它浏览器,则只需修改 app.json 文件和进行配置 RemoteApp 应用程序。

新增服务器

每新增一台 Windows 服务器,除了完成 Windows 上的浏览器云配置外,还须要在 f2etest-web 上完成其对应的配置,这样才能实现点击站点上的图标来打开对应服务器上的浏览器。例如:咱们已配置了一台 IE8 的服务器,如今新增一台 IE9 的服务器。

Windows配置

远程链接到目标 Windows 服务器,按照如何进行浏览器云部署,完成基本环境的配置。能够不用部署 hostsShare 应用程序。

IE 系列浏览器

# 容器内,修改server.json
[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/server.json
# 修改ip地址为Windows Server 的 IP 地址
[
    {
        "id": "f2etest-ie8",
        "ip": "192.168.X.3",
        "remoteApp": true
    },                                                                      
    {                                                                       
        "id": "f2etest-ie9",                                                
        "ip": "192.168.X.4",                                              
        "remoteApp": true                                                   
    },                                                                      
    {                                                                       
        "id": "f2etest-ie10",                                               
        "ip": "192.168.X.5",                                              
        "remoteApp": true
    }
]

# 修改app.json
[root@e40349b09133 f2etest-web]# vi /home/f2etest-web/conf/app.json

[
  {
    "id": "hostsshare",
    "name": "hosts",
    "server": "f2etest-ie8",
    "program": "c:\\app\\hostsshare.bat"
  },
  {
    "id": "ie8",
    "name": "IE 8",
    "server": "f2etest-ie8",
    "program": "c:\\app\\ie8.bat"
  },
  {
    "id": "ie9",
    "name": "IE 9",
    "shortname": "UC",
    "server": "f2etest-ie9",
    "program": "c:\\app\\ie9.bat"
  },
  {
    "id": "ie10",
    "name": "IE 10",
    "server": "f2etest-ie10",
    "program": "c:\\app\\ie10.bat"
  },
  {
    "id": "chrome",
    "name": "Chrome",
    "server": "f2etest-ie8",
    "program": "c:\\app\\chrome.bat"
  },
  {
    "id": "firefox",
    "name": "Firefox",
    "server": "f2etest-ie8",
    "program": "c:\\app\\firefox.bat"
  },
  {
    "id": "360se",
    "name": "360浏览器",
    "shortname": "360",
    "server": "f2etest-ie8",
    "program": "c:\\app\\360se.bat"
  },
  {
    "id": "qqbrowser",
    "name": "QQ浏览器",
    "shortname": "QQ",
    "server": "f2etest-ie9",
    "program": "c:\\app\\qqbrowser.bat"
  },
  {
    "id": "sogou",
    "name": "搜狗浏览器",
    "shortname": "搜狗",
    "server": "f2etest-ie9",
    "program": "c:\\app\\sogou.bat"
  },
  {
    "id": "360chrome",
    "name": "360极速浏览器",
    "shortname": "360极速",
    "server": "f2etest-ie8",
    "program": "c:\\app\\360chrome.bat"
  }
]

# 修改noauth-config.xml
[root@e40349b09133 f2etest-web]# vi /etc/guacamole/noauth-config.xml
# value的值均修改成Windows Server 的 IP 地址
 <configs>
    <config name="f2etest-ie8" protocol="rdp">
        <param name="hostname" value="192.168.X.3" />
        <param name="port" value="3389" />
        <param name="enable-drive" value="true" />
        <param name="drive-path" value="/home/guacdshare" />
    </config>
    <config name="f2etest-ie9" protocol="rdp">
        <param name="hostname" value="192.168.X.4" />
        <param name="port" value="3389" />
        <param name="enable-drive" value="true" />
        <param name="drive-path" value="/home/guacdshare" />
    </config>
    <config name="f2etest-ie10" protocol="rdp">
        <param name="hostname" value="192.168.X.5" />
        <param name="port" value="3389" />
        <param name="enable-drive" value="true" />
        <param name="drive-path" value="/home/guacdshare" />
    </config>
</configs>

# 重启 web
[root@e40349b09133 f2etest-web]# pm2 restart f2etest-web

# 重启 tomcat8
service tomcat8 restart
复制代码

同步用户信息

注意:f2etestDomain 为 f2etest-web 站点的访问地址。

调用 f2etest-web 的同步全部用户接口,本机浏览器访问 http://{f2etestDomain}/syncAllRemoteUsers

其它浏览器

其余浏览器主要包括:Chrome 浏览器,Firefox 浏览器,Opera 浏览器,QQ 浏览器,UC 浏览器,遨游浏览器,搜狗浏览器,2345 浏览器,猎豹浏览器,360 安全浏览器,360 极速浏览器。

因为这些浏览器的安装步骤基本一致,故下文进行统一介绍其安装部署流程。

  • 下载对应的安装包,进行安装,安装时选择自定义安装,不要将程序安装到 Administrator 帐户的路径下,能够安装到 Program Files 或者 C 盘根目录,有资源的状况下能够安装到其余盘符(如:D 盘)。

  • 配置 RemoteApp 应用程序。部分批处理程序能够在 GitHub 源码 f2etest/f2etest-client/f2etest-browsers/app/特殊应用 中拷贝。

目前已知特殊浏览器处理方式:

  • 360se、360chrome 需安装到其余盘符,而且因为会出现断连的状况,需在对应的批处理文件中加入下面这行:
mshta vbscript:msgbox("360安全浏览器,离开请点击肯定。",0,"舒适提示")(window.close)
复制代码
  • 猎豹浏览器须要装到其余盘符。

小结

虽然搭建过程当中遇到许多问题,可是在双龙的帮助下最终搭建成功。实现了多浏览器兼容测试的目的,十分感谢他。此外如下官方文档也写的很好,为做者点赞。

[1] F2etest-web 部署

[2] 浏览器云部署

[3] 多浏览器部署

相关文章
相关标签/搜索