F2etest环境搭建(一)

本文详细介绍F2etest环境的搭建过程,包括F2etest-web部署、浏览器云部署及多浏览器部署,旨在解决多浏览器兼容性测试难题,提高测试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

F2etest环境搭建

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

什么是F2etest?

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

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

如何进行F2etest-web部署?

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

部署环境

操作系统IP内存软件
本机:Windows 10 专业版192.168.X.116GVMware® Workstation 15 Pro 15.0.2
虚拟机:CentOS Linux release 7.4.1708 (Core)192.168.X.24GDocker 19.03.1,MySQL Ver 14.14 Distrib 5.6.43
虚拟机:Windows Server 2008 R2 Standard192.168.X.32Gie8,Chrome 76.0.8809.100,Firefox 68.0.2,360浏览器 10.0.1977.0,360极速浏览器 11.0.2179.0
虚拟机:Windows Server 2008 R2 Standard192.168.X.42Gie9,QQ浏览器 10.4.2,搜狗高速浏览器 8.5.10.31270
虚拟机:Windows Server 2008 R2 Standard192.168.X.52Gie10

部署步骤

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

# 获取 `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 使用。

部署步骤:

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

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

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

修改 账户策略 - 密码策略

1-1.jpg

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

进入服务器管理器

管理

配置 IE ESC

配置

安装远程桌面服务

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

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

配置远程桌面服务

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

远程

右键,激活服务器。

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 管理器。

IIS
选择身份验证。

1566292388849

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

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 保持一致。

在这里插入图片描述
在这里插入图片描述

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

41.jpg

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

在这里插入图片描述

按照下图顺序添加
在这里插入图片描述

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

如何进行多浏览器部署?

若你需要测试不同版本的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 /etc/guacamole/noauth-config.xml

[
  {
    "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] 多浏览器部署

F2etest个面向前端、测试、产品等岗位的多浏览器兼容性测试整体解决方案。在之前,我们般有三种解决方案:本机安装大量的虚拟机,个浏览器个虚拟机,优点:真实,缺点:消耗硬盘资源,消耗CPU资源,打开慢,无法同时打开多个虚拟机使用IeTester等模拟软件,优点:体积小,资源消耗小,缺点:不真实,很多特性不能代表真实浏览器公用机器提供多种浏览器,优点:不需要本地安装,不消耗本机资源,缺点:资源利用率低,整体资源消耗非常恐怖现在,有了F2etest台普通的4核CPU的服务器,我们就可以提供给20人以上同时使用。在这之前我们需要20台机器,相比之下,至少10倍的硬件利用率提升。相比之前的方案,我们有以下优势:10倍硬件利用率,降低企业运营成本非常棒的用户体验,极大的提高测试效率真实浏览器环境,还原真实测试场景在这个解决方案中,我们使用了以下技术:Guacamole: 开源的HTML5远程解决方案Windows Server: Server版Windows,最大化复用机器资源hostsShare: 跨浏览器,跨服务器的hosts共享产品截图Chrome插件:Windows:Mac:安全风险警示(非常重要)由于本系统基于Windows Server体系搭建,因此系统的安全性完全取决于部署人的安全部署能力。如果您希望部署本系统,请确保以下几点:严禁将本系统部署在公网环境,仅可部署在内网环境中使用,作为内部测试用途请将Windows Server服务端升级到最新版本及补丁,以保证没有出现安全漏洞请将User用户之间做到完全隔离,仅提供User用户文件的访问权限,别的任何权限请勿多余授权请将f2etest-client仅设置为管理员拥有权限,防止API接口被恶意访问 标签:阿里巴巴
方案是为解决特定问题或达成特定目标而制定的系列计划或步骤。它的作用是提供种系统性的方法,以有效地应对挑战、优化流程或实现目标。以下是方案的主要作用: 问题解决: 方案的核心目标是解决问题。通过系统性的规划和执行,方案能够分析问题的根本原因,提供可行的解决方案,并引导实施过程,确保问题得到合理解决。 目标达成: 方案通常与明确的目标相关联,它提供了种达成这些目标的计划。无论是企业战略、项目管理还是个人发展,方案的制定都有助于明确目标并提供达成目标的路径。 资源优化: 方案在设计时考虑了可用资源,以最大化其效用。通过明智的资源分配,方案可以在有限的资源条件下实现最大的效益,提高效率并减少浪费。 风险管理: 方案通常会对潜在的风险进行评估,并制定相应的风险管理策略。这有助于减轻潜在问题的影响,提高方案的可行性和可持续性。 决策支持: 方案提供了决策者所需的信息和数据,以便做出明智的决策。这种数据驱动的方法有助于减少不确定性,提高决策的准确性。 团队协作: 复杂的问题通常需要多个人的协同努力。方案提供了个共同的框架,帮助团队成员理解各自的职责和任务,促进协作并确保整个团队朝着共同的目标努力。 监控与评估: 方案通常包括监控和评估的机制,以确保实施的有效性。通过定期的评估,可以及时调整方案,以适应变化的环境或新的挑战。 总体而言,方案的作用在于提供种有序、有计划的方法,以解决问题、实现目标,并在实施过程中最大化资源利用和风险管理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值