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年成为一个更好的. ...
随机推荐
- 微软推出了Cloud Native Application Bundles和开源ONNX Runtime
微软的Microsoft Connect(); 2018年的开发者大会 对Azure和IoT Edge服务进行了大量更新; Windows Presentation Foundation,Window ...
- class基本使用
console.log(` 1.创建一个空对象 2.让this 指向刚刚创建好的空对象 3.执行构造函数内的代码 (为相关的属性和方法赋值) 4.返回创建好的对象`) // 1.创建一个空对象 // ...
- RabbitMQ消息队列(一)-RabbitMQ的优劣势及产生背景
本篇并没有直接讲到技术,例如没有先写个Helloword.我想在选择了解或者学习一门技术之前先要明白为什么要现在这个技术而不是其他的,以免到最后发现自己学错了.同时如果已经确定就是他,最好先要了解下技 ...
- VIM新手福利,配置向
今天搜索VIM配置的时候,搜到一个神器 https://github.com/amix/vimrc The Ultimate vimrc Over the last 10 years, I have ...
- Convert.ToInt32()和int.Parse()区别
Convert.ToInt32()和int.Parse()都可以数据转换个int类型,区别在于: 1. Convert.ToInt32()将object类类型转换成int类型,例如:Convert.T ...
- MySQL 笔记整理(11) --怎么给字符串字段加索引?
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 11) --怎么给字符串字段加索引? 日常工作中的登录系统,你很可能会使 ...
- 文件的基本管理和XFS文件系统备份恢复
4.1 Linux系统目录结构和相对/绝对路径 4.1.1系统目录结构 在WIN系统中,查看文件先进入相应的盘符,然后进入文件目录 在WIN中,它是多根 c:\ d:\ e:\ Linux ...
- 最新阿里Java技术面试题,看这一文就够了!
金三银四跳槽季即将到来,作为 Java 开发者你开始刷面试题了吗?别急,小编整理了阿里技术面试题,看这一文就够了! 阿里面试题目目录 技术一面(基础面试题目) 技术二面(技术深度.技术原理) 项目实战 ...
- 通用mapper认识和用法
目录 0. 认识 1. 导包 2. mybatis的config文件:mybatis-mapper-config.xml 3. spring与mybatis整合配置文件:mybatis.xml 4. ...
- Nginx系列
包括nginx的入门和进阶学习. 目录 nginx系列1:认识nginx nginx系列2:搭建nginx环境 nginx系列3:搭建一个静态资源web服务器 nginx系列4:日志管理 nginx系 ...