阅读原文

Simon Stewart(Selenium的创始成员)在班加罗尔的Selenium大会议上正式确认了Selenium4.0的发布日期和一些主要更新。我们先来提前了解一下Selenium 4.0将会带来哪些变化。

Selenium 4.0发布会日期

熟悉Selenium 3.0发布背后故事的人知道,早2013年Selenium团队就放出消息将在圣诞节发布Selenium 3.0,可是,直到2016年Selenium3.0才正式发布会,它比最初发布时承诺的时间晚了三年。

Selenium4.0同样承诺要在圣诞节发布,但这显然不可能是2018年的圣诞节了。截至今天(2019年2月),我们仍然没有看到Selenium4.0发布的消息。

没有任何创始成员对具体发布日期的进行官方更新,但我们在官方Github上看到,贡献者只完成了需要完成任务的一半,因此我们可以假设发布可能要到2019年圣诞节才会到来。

在这里看到Selenium 4.0 项目的进展:
https://github.com/SeleniumHQ/selenium/projects/2

为什么Selenium 4.0很重要?

如果你认为自动化测试工程师是世界上唯一关心Selenium更新的人,那你就错了。

Selenium已经成为实现自动化测试的行业标准,成为Web应用程序进行自动化测试的首选,用于辅助完成大量手工测试。

但是经常被忽略的是,那些严重依赖Selenium的企业,他们不仅是拥有自动化QA工程师的团队,他们所使用的无代码自动化工具也是基于Selenium开发的。例如RobotFramework,它可以让不懂代码的同学也可以使用Selenium进行Web自动化测试。

基于Selenium的无代码自动化工具已经成为每个企业真正的救命稻草,它们意识到自动化的重要性,但没有能够实施自动化的内部QA专家。这些工具不仅可以使任何对Web浏览器有基本了解的人员进行部署,而且可以在不了解Selenium框架的情况下运行回归测试,进行质量监控和负载测试。

Selenium 4.0 带来了哪些大的改变?

根据Simon Stewart在Selenium大会上的演示,现在,让我们来看看SeleniumHQ承诺在即将发布的版本中添加或更新了哪些功能。

W3C WebDriver 标准化

首先,Selenium 4 WebDriver将完全符合W3C标准。WebDriverAPI已经发展成为Selenium以外的相关产品,并已经应用于多种自动化工具中。例如,像Appium和iOSDriver这样的移动测试工具严重依赖它。W3C标准还将鼓励WebDriver API的不同软件实现之间的兼容性。

在Selenium 3.x 版本中,通过协议传输JSON格式的指令到不同的分支节点,然后,再通过浏览器驱动,驱动不同的浏览器执行,这种方法在指令传输的过程中需要API的编码和解码。

通过在Selenium 4.0中看到的更新,指令将直接进行通信,而无需通过W3C协议对API请求进行任何编码和解码。虽然JAVA绑定将向后兼容,但重点仍将放在W3C协议上。将不再使用JSON格式的指令。

W3CWebDriver规范有多个贡献者,整个过程可以在GitHub上看到。
https://github.com/w3c/webdriver

Selenium IDE

大家都知道,Selenium IDE是一个录制和回放浏览器插件,它支持Chrome浏览器。现在将提供以下更丰富和更高级的功能:

新的插件系统:

任何浏览器厂商都可以轻松的实现Selenium IDE插件的支持。你将能够拥有自己的定位器策略和Selenium IDE插件。

新的CLI运行器。

它将完全基于NodeJS,而不是旧的基于HTML的运行程序,并将具有以下功能:
1、WebDriver回放。新的SeleniumIDE运行器将完全基于WebDriver。
2、并行执行。新的CLI运行程序还将支持并行测试用例的执行,并将提供有用的信息,如执行时间,以及多测试用例通过和失败。

Selenium Grid 的改进

使用过Selenium Grid的同学都知道设置和配置它挺麻烦的。 Selenium Grid支持在不同的机器上执行测试用例,可以用于验证不同的操作系统、浏览器下用例的执行情况。

SeleniumGrid有两个主要部分:Hub和Node。

Hub充当服务器,是控制网络中所有测试机器的中心点。在Selenium Grid中,只有一个Hub根据环境匹配将测试执行分配给不同的Node。

简而言之,Node是测试用例实际运行的测试机器。

在Selenium 4.0中,SeleniumGrid体验有望变得流畅和简单,因为不再需要单独设置和启动Hub和Node。一旦启动Selenium服务器,SeleniumGrid将充当Hub和Node。

Selenium4.0将提供更稳定的Selenium Grid,以消除所有线程安全漏洞,并更好地支持Docker。

在大会上还特意强调了Selenium 4.0的将会提供一个更加用户友好的Selenium Grid UI,其中包含Session运行、容量等的所有相关信息的展示。

更好的可观察性

“Passiveobservability is the ability to do descriptive tracing.”
– Simon Stewart

可观察性,日志记录和调试现在不再局限于DevOps。作为即将发布版本的一部分,将改进对钩子的请求跟踪和日志记录,以便为自动化工程师提供调试。

更新的文档

文档在任何项目的成功中起着关键作用。自从Selenium 2.0发布以来,Selenium文档尚未更新。Selenium官网上的内容并没做到很好的同步,在过去的几年里,任何试图学习Selenium的同学都不得不使用旧的教程。

因此,SeleniumHQ承诺提供的更新和最新文档,这是Selenium 4.0版本,测试自动化社区中最受期待的Selenium更新之一。

同时,您仍然可以访问所有现有的Selenium文档。
https://seleniumhq.github.io/docs/

总结:

我们列出了Selenium 4最终发布时我们可能会看到的所有重大变化。如果你有兴趣了解更多关于框架背后的故事,它的创始成员以及有关Selenium将具有的新功能的更多信息,我们建议观看2018年Selenium会议的视频,会议视频:

https://youtu.be/ypmrrJmgM9U

Selenium 4即将发布:每个QA都应该知道的的更多相关文章

  1. 每个极客都应该知道的Linux技巧

    每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...

  2. 隔壁小孩都要知道的Drupal配置

    i春秋作家:Arizona 原文来自:隔壁小孩都要知道的Drupal配置 隔壁小孩都要知道的Drupal配置 Drupal是一个开源的PHP内容管理系统,具有相当复杂的架构.它还具有强大的安全模型.感 ...

  3. PDB文件:每个开发人员都必须知道的 PDB Files

    PDB文件:每个开发人员都必须知道的   PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jro ...

  4. 每个开发者都应该知道的SOLID原则

    每个开发者都应该知道的SOLID原则 单一职责原则(SRP) 它为什么违反了 SRP? 这种设计将来会带来什么问题? 开闭原则(OCP) 如何使它(AnimalSound)符合 OCP? 里氏替换原则 ...

  5. 每一个JavaScript开发者都应该知道的10道面试题

    JavaScript十分特别.而且差点儿在每一个大型应用中起着至关关键的数据.那么,究竟是什么使JavaScript显得与众不同,意义非凡? 这里有一些问题将帮助你了解其真正的奥妙所在:   1.你能 ...

  6. 关于Unicode,字符集,字符编码,每个程序员都应该知道的事

    关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...

  7. HTTPS是如何保证连接安全:每位Web开发者都应知道的

    “HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题. 作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制. 它怎么保 ...

  8. pdb文件 PDB文件:每个开发人员都必须知道的 .NET PDB文件到底是什么?

    pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的. 在程序发布为release模式时,建议将 pdb文件删除, 同时,对外发布的时候,也把 pdb删除, ...

  9. 每个Java开发人员都应该知道的10个基本工具

    大家好,我们已经在2019年的第9个月,我相信你们所有人已经在2019年学到了什么,以及如何实现这些目标.我一直在写一系列文章,为你提供一些关于你可以学习和改进的想法,以便在2019年成为一个更好的. ...

随机推荐

  1. 使用正则替换script及其内容

    因做微信公众号文章保存,发现他的js大多数也用不着,所以就想着用正则替换掉源代码中的js片段 正则代码: <script(?:[^<]++|<(?!/script>))*+&l ...

  2. 深入理解 new 操作符

    和其他高级语言一样 JavaScript 也有 new 操作符,我们知道 new 可以用来实例化一个类,从而在内存中分配一个实例对象. 但在 JavaScript 中,万物皆对象,为什么还要通过 ne ...

  3. jquery ajax跨域请求后台的简单例子

    一.简介AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQuery 底层 AJAX 实现.简 ...

  4. 关于:未能加载文件或程序集“ICSharpCode.SharpZipLib”或它的某一个依赖项异常的解决方案

    问题: 今天项目迁移忽然又个ICSharpCode.SharpZipLib.dll 程序包丢失了,于是我在网上下载一个这样的包,结果程序运行就提示:未能加载文件或程序集“ICSharpCode.Sha ...

  5. 【Linux基础】压缩和解压

    Linux 常用的压缩与解压文件类型:.tar,.gz..tar.gz,.bz2..tar.bz2,.Z..tar.Z,.zip,.rar等. Linux 常用的压缩与解压缩命令有:tar,gzip. ...

  6. Jenkins高级用法 - Pipeline 安装

    一.总体介绍 总体介绍内容摘自 玩转Jenkins Pipeline(大宝鱼) 1.核心概念 Pipeline,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的 ...

  7. merge和rebase的区别

    前言 我从用git就一直用rebase,但是新的公司需要用merge命令,我不是很明白,所以查了一些资料,总结了下面的内容,如果有什么不妥的地方,还望指正,我一定虚心学习. merge和rebase ...

  8. 详解mybatis配置文件

    在前面两篇文章中,大致与大家分享了基于Java的ORM框架,Mybatis基本架构和Mybatis实现CRUD的基本原理与流程,在本篇文章中,继续与大家分享Mybatis配置文件. 通过研究Mybat ...

  9. 使用Atlas进行元数据管理之Atlas简介

    背景:笔者和团队的小伙伴近期在进行数据治理/元数据管理方向的探索, 在接下来的系列文章中, 会陆续与读者们进行分享在此过程中踩过的坑和收获. 元数据管理系列文章: [0] - 使用Atlas进行元数据 ...

  10. Spring Cloud Alibaba基础教程:使用Sentinel实现接口限流

    最近管点闲事浪费了不少时间,感谢网友libinwalan的留言提醒.及时纠正路线,继续跟大家一起学习Spring Cloud Alibaba. Nacos作为注册中心和配置中心的基础教程,到这里先告一 ...