F2etest是一个面向前端、测试、产品等岗位的多浏览器兼容性测试整体解决方案。
注:F2e test = Front to End Test = 前端测试
浏览器云
在之前,多浏览器兼容性人肉测试,我们一般有三种解决方案:
- 本机安装大量的虚拟机,一个浏览器一个虚拟机,优点:真实,缺点:消耗硬盘资源,消耗CPU资源,打开慢,无法同时打开多个虚拟机
- 使用IeTester等模拟软件,优点:体积小,资源消耗小,缺点:不真实,很多特性不能代表真实浏览器
- 公用机器提供多种浏览器,优点:不需要本地安装,不消耗本机资源,缺点:资源利用率低,整体资源消耗非常恐怖
现在,有了F2etest,一台普通的4核CPU的服务器,我们就可以提供给20人以上同时使用。
在这之前我们需要20台机器,相比之下,至少10倍的硬件利用率提升。
再加上我们平时做多浏览器测试时,并不是满负荷工作。经常是测试一会,开发一会,或者是忙点别的事,因此理论并发能力至少可以再乘2,就是说一台4核服务器,理论上跑40人同时在线,非常轻松。
但是在此之前,如果我们是单人虚拟机模式的话,当你没在测试时,CPU、内存、硬盘,全部都是处在浪费状态。
相比之前的方案,我们有以下优势:
- 10倍以上硬件利用率,降低企业运营成本
- 非常棒的用户体验,极大的提高测试效率
- 真实浏览器环境,还原真实测试场景
在这个解决方案中,我们使用了以下技术:
- Guacamole: 开源的html5远程解决方案
- Windows Server: Server版Windows,最大化复用机器资源
- hostsShare: 跨浏览器,跨服务器的hosts共享
WebDriver云
WebDriver云利用Windows Server多用户的特性,将执行机的使用效率提升10倍以上。
之前1台执行机只能跑1个任务,现在同样的硬件配置,我们可以跑10个任务。
下面的截图看上去有130个执行机节点,传统情况下我们需要130台服务器。
但是我们实际上才5台!
相比较官方的Selenium Grid,我们有以下优势:
- 10倍以上硬件利用率:传统WebDriver 1台执行机仅能跑1个Job,而我们一台机器可以高并发跑N个Job,这个N取决于机器配置,理论上硬件利用率相当于传统节点的10倍以上
- 支持独立hosts绑定:每次申请节点时,可以指定不同的hosts绑定,保证同一台机器上不同节点的Job不会相互干扰
- 所有节点支持远程在线调试:利用Guacamole的在线远程功能,当自动化出现问题时,我们能非常便利的对自动化进展进行即时监控和调试
UI Recorder
UI Recorder是一款几乎零成本的整体自动化测试解决方案,一次自测等于多次测试,测一个浏览器等于测多个浏览器!
我们的目标:让自测不要重复测!让自动化变成零成本!让自动化持续保障您的业务!
以下是本产品的特点:
- 自测 = 自动化测试:对于开发人员来讲,自测是开发流程中缺一不可的过程,我们要实现的目标就是自测过程中即可同步的录制出自动化脚本,实现真正的零成本自动化
- 无干扰录制:所作操作均无需交互干扰,鼠标、键盘、alert弹框、文件上传,完全按照正常自测流程操作即可(以下操作除外:悬停事件、断言、变量)
- 本地生成脚本:录制的脚本存储在用户本机,用户可以自行在录制的基础上进行修改定制,更自由更开放
- 丰富的断言:支持以下断言类型,val、text、displayed、enabled、selected、attr、css、url、title、cookie、localStorage、sessionStorage
- 支持数据Mock:我们支持Faker变量功能,支持强大的数据Mock
- 支持公共用例: 用例之间允许相互引用,可以将某些公用的操作步骤录制为公用用例,以进一步提升录制效率
- 支持执行截图:每次执行后,允许生成截图日志,以方便出问题时排查诊断
链接: https://www.fly63.com/nav/3132