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年成为一个更好的. ...
随机推荐
- Luogu P5285 [十二省联考2019]骗分过样例
Preface ZJOI一轮被麻将劝退的老年选手看到这题就两眼放光,省选也有乱搞题? 然后狂肝了3~4天终于打完了,期间还补了一堆姿势 由于我压缩技术比较菜,所以用的都是非打表算法,所以一共写了5K- ...
- spring framework体系结构及内部各模块jar之间的maven依赖关系
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下 ...
- Ansible安装及简单使用备注
1.安装epel源: rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 2.安装: yum ...
- Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Linux运维老司机:CentOS6.9配置安装并配置Rsync
一.rsync简介 rsync全称remote sync,是一种更高效.可以本地或远程同步的命令,之所以高效是因为rsync会对需要同步的源和目的进度行对比,只同步有改变的部分,所以比scp命令更高效 ...
- Go语言strings包
目录 strings包实现了用于操作字符的简单函数. func EqualFold 判断两个utf-8编码字符串(将unicode大写.小写.标题三种格式字符视为相同)是否相同. func Equal ...
- chrome谷歌浏览器开发者工具-网络带宽控制
有时候我们想在本地测试一下图片预加载loading的加载情况,如下图: 可无奈一般网络带宽都比较好,基本上看不到效果,图片一下子就加载出来了, 可能这个时候有些小伙伴想到的办法是用定时器延迟加载 其实 ...
- 如何机智判断页面是刷新还是关闭,背景:vue项目,需求:关闭页面,下次直接跳到登陆页
最近项目有这么个需求:要在关闭当前系统的窗口的时候,退出登录, 因为如果不退出登录可能存在安全风险,其实我想说,电脑没事别借给别人活着离开工位记得一定要锁屏,其实我们设置了cookie失效时间的,过了 ...
- 【重学计算机】计组D3章:运算方法与运算器
1. 定点数运算及溢出 定点数加减法:减法化加法,用补码直接相加,忽略进位 溢出:运算结果超出了某种数据类型的表示范围 溢出检测方法:统一思想概括为正正得负或负负得正则溢出,正负或负正不可能溢出 方法 ...
- NewBuiltBottomSheetDialog【新建底部对话框】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 演示在底部选项卡上方弹出底部对话框效果. 效果图 代码分析 NewBuiltBottomSheetDialog继承BottomShe ...