Selenium自动化测试完全指南:基于Python
上QQ阅读APP看书,第一时间看更新

1.2 Selenium简介

Selenium(其图标见图1-3)是一系列基于Web的自动化工具。它提供了一系列操作函数,用于支持Web自动化。这些函数非常灵活,能够通过多种方式定位界面元素、操作元素并获取元素的各项信息。

图片 9

图1-3 Selenium的图标

Selenium作为一款强大的工具,具有以下几个特性。

  • 支持全部主流浏览器(如Chrome、Firefox、Safari、Android或iOS手机浏览器等)。
  • 支持多种语言(例如Python、Java、C#、Ruby、JavaScript等)。
  • 跨平台(例如桌面平台Windows、Linux、macOS,移动平台iOS、Android等)。
  • 开源免费。

在目前Web应用为主流应用的情况下,正是由于以上这些特性,通过Selenium实施自动化工作才能起到事半功倍的效果,而这是其他任何工具无法比拟的。

很明显,Selenium是一种自动化操作工具,有多种自动化方面的用途。基于良好的测试用例设计,Selenium自然也可以用于自动化测试的执行。

Selenium发展史

Selenium最早发布于2004年,主要用来将Web前端应用程序的测试自动化,缩短手工验证需要的时间。Selenium包含Selenium IDE(录制回放工具)、Selenium RC(多语言编程接口)及Selenium Grid(在多机器上执行并行测试的平台)。

Selenium 1的核心工具为Selenium RC,测试的原理主要为将JavaScript注入待测试的Web页面来模拟用户的交互。这种方式在当时并不完美,它首先受制于各浏览器的JavaScript引擎及其执行速度,其次被JavaScript安全模型限制,而它本质上只是模拟用户操作,和用户的真正操作有一定区别。虽然当时的Selenium并不完美,但已经具备很好的发展潜力。

Selenium 2开始着手解决Selenium 1的遗留难题,引入了WebDriver,从JavaScript模拟操作,逐渐转变为由浏览器厂商基于一定规范提供原生级别的操作实现。WebDriver对于界面的操作将基于这些原生的操作实现,就相当于用户在真实操作浏览器,高度还原了真实的测试场景。Selenium 2同时保留了Selenium RC和WebDriver。一方面,大量仍在使用Selenium RC的用户需要一定的时间迁移到WebDriver;另一方面,WebDriver还未完全成熟,并非每个浏览器都提供了原生操作实现。对于尚不支持的浏览器,还需要Selenium RC。

Selenium 3发布时,WebDriver已经非常成熟,它定义的协议和标准已经逐渐发展为W3C统一标准,各主流浏览器厂商都已基于该标准制作了各个浏览器的WebDriver驱动程序,实现了完全原生的浏览器操作,运行更稳定,性能更优良。落后于时代的Selenium RC遭到淘汰,不再包含到Selenium 3当中。

时至今日,Selenium 4也蓄势待发,对Selenium 3进行了大量的改进,并支持更多新的功能。

整个Selenium的发展史可以用图1-4概括。

图片 4

图1-4 Selenium的发展史