这是一个老生常谈的话题了,自从基于 Selenium 的自动化测试在科技行业问世以来,它就留下了不可磨灭的印记,并已成为基于 Web 的应用程序使用最广泛的自动化测试方法。
Selenium 是一种开源自动化测试工具,可用于基于 Web 的应用程序的多种专用目的,它为不同的 Web 浏览器、操作系统和编程语言提供支持。Selenium 是一个用 Java编写的软件测试套件 ,它为成为质量保证领域事实上的产品铺平了道路。
凭借支持多种编程语言、操作系统和网络浏览器的能力, 基于 Selenium 的自动化测试 已被 Google、HubSpot、Fitbit、Netflix 等大型技术提供商采用。整个套件为不同的测试问题和需求提供了解决方案。
selenium 是由 Jason Huggins( selenium 自动化行业的先驱**)** 取名,这个名字由来是挺有趣的。早在 2000 年, Mercury 在自动化领域就很受欢迎,并且是 Thoughtwork **的竞争对手。Jason 在发给 ThoughtWork's 团队的一封电子邮件中开了个玩笑,他在邮件中嘲弄了他们的竞争对手 “Mercury”,并指出硒(selenium)是汞(mercury)中毒的解毒剂!他的团队取了这个名字,这就是团队为他们的框架批准 Selenium 这个名字的起源。
这是名字的起源,似乎跟框架一点关系都没有。至于框架的起源,接下来展开聊聊。
Selenium 最初由 Jason Huggins 于 2004 年开发, 当时他在 ThoughtsWork 担任工程师,负责开发需要频繁测试的 Web 应用程序。他使用 JavaScript 创建了程序 ,使用后他意识到手动测试的缺点和需要抑制单调。他最初将程序命名为 JavaScriptTestRunner ,但在意识到该程序的潜力后,他将其变成了一个开源程序,并重新命名为 硒核心(selenium core)。

然而也出现了问题。由于“同源策略”禁止从启动它的不同域名使用 JavaScript,测试人员不得不承受安装 Selenium Core 和包含要测试的 Web 应用程序的 Web 服务器的压力,这样它们才能属于同一个域。 另一位 ThoughtWork 工程师Paul Hammant 通过创建 Selenium Remote control (Selenium RC) 或 Selenium 1为这个问题提供了解决方案。
Selenium Grid 由 Patrick Lightbody开发, 用于并行测试目的,解决了将测试执行时间减少到最小的需求。Selenium 自动化测试速度更快,因为可以同时进行多个测试。 日本的Shinya Kasatani在 2006 年通过在Selenium IDE 上执行项目做出了贡献 。Selenium IDE 通过记录 和 播放功能 帮助自动化浏览器 。 Simon Stewart 于 2006 年创建了 Web Driver Circa。该工具可帮助软件测试人员使用任何受支持的编程语言通过编程方法执行测试。
2008 年,整个 Selenium 自动化测试先驱团队决定将 Web 驱动程序和 Selenium RC 合并,形成一个非常有用的工具,称为 Selenium 2。
2009年,selenium3 诞生,这个版本剔除了selenium rc , 主要由 selenium webdriver和selenium Grid组成, 我们日常使用的其实就是selenium webdriver,至于selenium grid是一个分布式实现自动化测试的工具
在平时我们聊到的 selenium 的工作原理实际上就是聊的 selenium webdriver 的工作原理。在聊到这个工作原理之前,我们聊一下坐地铁吧。坐地铁整个过程需要 3 个步骤。
OK,这里我们聊到了 3 个角色,回到 selenium webdriver 的 3 个角色是什么呢?