硒4 Alpha-期望什么?
早在2018年8月,整个测试自动化社区就受到了一个重大新闻的打击:Selenium的创始成员Simon Stewart在班加罗尔Selenium会议上正式确认了Selenium 4的发布日期和一些重大更新。 世界最受欢迎的Web测试自动化框架的4.0版本计划于2018年圣诞节之前发布。
稍有延迟,Selenium 4.0 Alpha版本发布了,可以从Selenium官方网站下载javascript。 让我们回顾一下Selenium会议上宣布的功能以及此版本中提供的一些改进和附加功能。
为什么硒4.0很重要
如果您认为测试自动化工程师是世界上唯一应该关注Selenium重大更新的人员,那么您是错的。
当然,Selenium已经成为实现自定义自动测试的行业标准,并且被认为是每个Web应用程序的首选解决方案,而该解决方案已经超出了手动测试可以解决大多数问题的方法。
但是,经常被遗忘的是,严重依赖Selenium的企业不仅是拥有自动化QA工程师的团队,而且是集成了基于Selenium的无代码自动化测试工具的企业。
基于硒的无代码测试已成为每家意识到自动化重要性但没有内部质量检查专家能够实现自动化的企业的真正救星。 此类工具不仅使对Web浏览器有基本了解的任何人都可以进行部署,而且还使运行回归测试,进行综合监视和负载测试成为可能,而无需任何Selenium框架知识。
此类无代码自动化软件的完美示例是CloudQA 。 在Selenium之上,我们开发了一种工具,该工具需要团队的零努力,与第三方应用程序的集成,比以往任何时候都更容易构建测试用例,24/7来监控您的网页性能,并且成本比租用一个初级手动测试仪。
如果您想进一步了解基于Selenium的无代码自动化工具的优势,请获取免费的演示 。
硒4的重大变化
让我们来看看Selenium 4.0 Alpha版本的主要变化-
W3C WebDriver标准化
首先,Selenium 4 WebDriver是完全W3C标准化的。 WebDriver API在Selenium之外已变得越来越重要,并已在多种自动化工具中使用。 例如,诸如Appium和iOS驱动程序之类的移动测试工具在很大程度上依赖于它。 W3C标准还将鼓励WebDriver API的不同软件实现之间的兼容性。
这是Selenium Grid与早期版本中的Driver可执行文件进行通信的方式:
Selenium 3.x中的测试通过本地端的JSON有线协议与End节点处的浏览器通信。 这种方法需要对API进行编码和解码。
通过我们期望在Selenium 4中看到的更新,该测试将直接进行通信,而无需通过W3C协议对API请求进行任何编码和解码。 尽管JAVA绑定将向后兼容,但重点将更多地放在W3C协议上。 JSON有线协议将不再使用。
W3C WebDriver规范有多个贡献者,整个过程可以在GitHub上看到。
硒4 IDE TNG
Chrome的Selenium IDE支持现已可用。 您可以从以下网址下载它:https: //selenium.dev/selenium-ide/
众所周知,Selenium IDE是一种记录和回放工具。 现在它将具有以下更丰富和高级的功能:
- 新的插件系统。 任何浏览器供应商现在都可以轻松插入新的Selenium IDE。 您将能够拥有自己的定位器策略和Selenium IDE插件。
- 新的CLI运行器。 它将完全基于NodeJS,而不是基于HTML的旧运行器,并将具有以下功能:
- WebDriver播放。
改进的硒网格
与Selenium Grid合作过的任何人都知道设置和配置有多困难。 Selenium Grid支持在具有并行执行功能的不同浏览器,操作系统和机器上执行测试用例。
Selenium Grid有两个主要元素:集线器和节点。
集线器充当服务器,是控制网络中所有测试机的中心点。 在Selenium Grid中,只有一个集线器根据功能匹配将测试执行分配给特定节点。
简而言之,Node是实际运行测试用例的测试机器。
有关Selenium Grid的更多详细信息,建议阅读有关Selenium Grid的完整官方教程 。
到目前为止,Selenium Grid的设置过程通常会导致测试人员难以将连接节点连接到集线器。
在Selenium 4中,由于不再需要分别设置和启动集线器和节点,因此网格体验变得流畅而轻松。 启动Selenium服务器后,网格将同时充当集线器和节点。
硒提供三种类型的网格-
- 独立模式
- 集线器和节点
- 完全分布式
新的硒服务器jar包含运行网格所需的所有内容。 它具有所有依赖性。 新的网格还带有Docker支持。 目前,docker集成不使用UNIX域套接字,因此请确保docker守护进程正在侦听端口2375。
有关更多详细信息,请参阅-https ://github.com/SeleniumHQ/selenium/wiki/Selenium-Grid-4
更好的可观察性
“被动可观察性是进行描述性追踪的能力。”
–西蒙·斯图尔特
现在,可观察性,日志记录和调试不再局限于DevOps。 作为即将发布的版本的一部分,将改进带有钩子的请求跟踪和日志记录,以使自动化工程师可以进行调试。
刷新文档
文档在任何项目的成功中都起着关键作用。 自Selenium 2.0发行以来,Selenium文档尚未更新。 这意味着,过去几年中尝试学习Selenium的任何人都必须使用旧的教程。
因此,自然而然地,SeleniumHQ承诺将与4.0版本一起提供给我们的最新文档已经成为测试自动化社区中最受期待的Selenium更新之一。
Selenium 4.0 Alpha版本的改进-
ChromiumDriver和DevTools:
在Selenium 3中,EdgeDriver和ChromeDriver具有从RemoteWebDriver类继承的自己的实现。 在Selenium 4中,Chromedriver和EdgeDriver继承自ChromiumDriver。 ChromiumDriver类具有预定义的方法来访问开发工具。 考虑下面的代码片段-
上面的代码创建到给定URL的会话,并执行javascript打印消息。 DevTools是一个类,具有用于获取开发人员选项的方法的类。
DevTools还可以用于性能评估并获取页面加载时间。
更好的窗口和标签管理
Selenium 4现在具有可以同时在两个不同的窗口上工作的功能。 当我们要导航到新窗口(或选项卡)并在那里打开另一个URL并执行某些操作时,此功能特别有用。
newWindow()方法根据其参数中指定的WindowType打开一个新窗口或选项卡。
相对定位器
在Selenium 4 alpha版本中,我们还可以获得相对于任何其他定位器的定位器。
- toLeftOf():位于指定元素左侧的元素。
- toRightOf():位于指定元素右侧的元素。
- above():相对于指定元素位于上方的元素。
- below():相对于指定元素位于下方的元素。
- near():元素距离指定元素最多50个像素。 像素值可以修改。
全屏快照
现在,我们可以在Firefox中使用getFullPageScreenshotAs()方法获取完整的屏幕截图。 但是,我们无需将其类型转换为“ TakesScreenshot”界面,而是需要将其类型转换为FirefoxDriver实例。
文件src =((FirefoxDriver)驱动程序).getFullPageScreenshotAs(OutputType.FILE);
可能会有一些更有趣的功能和改进,因此继续探索!
翻译自: https://www.javacodegeeks.com/2019/12/selenium-4-alpha-what-to-expect.html