Selenium 4即将发布:每个QA都应该知道的
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会议的视频,会议视频:
Selenium 4即将发布:每个QA都应该知道的的更多相关文章
- 每个极客都应该知道的Linux技巧
每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...
- 隔壁小孩都要知道的Drupal配置
i春秋作家:Arizona 原文来自:隔壁小孩都要知道的Drupal配置 隔壁小孩都要知道的Drupal配置 Drupal是一个开源的PHP内容管理系统,具有相当复杂的架构.它还具有强大的安全模型.感 ...
- PDB文件:每个开发人员都必须知道的 PDB Files
PDB文件:每个开发人员都必须知道的 PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jro ...
- 每个开发者都应该知道的SOLID原则
每个开发者都应该知道的SOLID原则 单一职责原则(SRP) 它为什么违反了 SRP? 这种设计将来会带来什么问题? 开闭原则(OCP) 如何使它(AnimalSound)符合 OCP? 里氏替换原则 ...
- 每一个JavaScript开发者都应该知道的10道面试题
JavaScript十分特别.而且差点儿在每一个大型应用中起着至关关键的数据.那么,究竟是什么使JavaScript显得与众不同,意义非凡? 这里有一些问题将帮助你了解其真正的奥妙所在: 1.你能 ...
- 关于Unicode,字符集,字符编码,每个程序员都应该知道的事
关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...
- HTTPS是如何保证连接安全:每位Web开发者都应知道的
“HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题. 作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制. 它怎么保 ...
- pdb文件 PDB文件:每个开发人员都必须知道的 .NET PDB文件到底是什么?
pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的. 在程序发布为release模式时,建议将 pdb文件删除, 同时,对外发布的时候,也把 pdb删除, ...
- 每个Java开发人员都应该知道的10个基本工具
大家好,我们已经在2019年的第9个月,我相信你们所有人已经在2019年学到了什么,以及如何实现这些目标.我一直在写一系列文章,为你提供一些关于你可以学习和改进的想法,以便在2019年成为一个更好的. ...
随机推荐
- .NET 基金会完成第一次全面改选
.NET基金会是一个独立的组织,支持.NET社区和开源,旨在拓宽和加强.NET生态系统和社区.这可以通过多种方式完成,包括项目指导,指导,法律和营销帮助,技术和财务支持设置等,2014年微软组织成立. ...
- docker 备注
1.docker 安装 #安装环境为centos yum -y install docker service docker start #测试是否安装成功,可执行命令 docker run hello ...
- JAVA类的继承之多态特性
父类可以接收子类的实例,方法的覆盖,属性的隐藏,这些都使我非常疑惑,今天有点时间记录之. 话不多说,直接上代码上结果 1. public class TestDto{ public static vo ...
- 为什么要重写 hashcode 和 equals 方法?
引言 以前面试的时候被面试官问到过这样一个问题: 你有没有重写过 hashCode 方法? 心里想着我没事重写哪玩意干啥,能不写就不写.嘴上当然没敢这么说,只能略表遗憾的说抱歉,我没写过. 撇了面试官 ...
- 不使用 webpack,vuejs 异步加载模板
webpack 打包不会玩,整了这么个小玩具 一段 vue 绑定代码,关键点在 gmallComponent 1.异步加载外部 vue 文件(非 .vue) 2.按一定规则拆分 template.sc ...
- Java多线程打辅助的三个小伙子
前言 之前学多线程的时候没有学习线程的同步工具类(辅助类).ps:当时觉得暂时用不上,认为是挺高深的知识点就没去管了.. 在前几天,朋友发了一篇比较好的Semaphore文章过来,然后在浏览博客的时候 ...
- 使用EHPC实现“完美并行”的高效批处理方案
使用EHPC实现“完美并行”的高效批处理方案 在高性能计算场景中,用户一次业务计算可以划分为大量的任务,每个任务的处理逻辑相同,但是输入文件.参数设置和输出文件不同.由于每个任务处理逻辑相似,执行时彼 ...
- kubernetes系列12—二个特色的存储卷configmap和secret
本文收录在容器技术学习系列文章总目录 1.configmap 1.1 认识configmap ConfigMap用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件.ConfigMa ...
- 关于CSS引入方式的详细见解
关于CSS的发展史这里不做介绍.写博客的原因之一是想帮助那些与我一样喜欢纠结的初入前端的伙伴,希望自己写的帖子能对伙伴有些许帮助:原因之二这些帖子也算自己的一个知识的整理.现在还没有一定的顺序可循,但 ...
- 【带着canvas去流浪(6)】绘制雷达图
目录 一. 任务说明 二. 重点提示 三. 示例代码 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文 ...