Selenium 历史
故事始于 2004 年
故事始于 2004 年在芝加哥 ThoughtWorks,Jason Huggins 为测试内部时间和费用应用程序(Python,Plone)构建了核心模式,名为 "JavaScriptTestRunner"。自动测试任何应用程序是 ThoughtWorks 风格的核心,考虑到这家咨询公司的敏捷倾向。他得到了 Paul Gross 和 Jie Tina Wang 的帮助。对他们来说,这是一项日常工作。
Jason 开始向同事演示该测试工具。许多人对它即时和直观的视觉反馈感到兴奋,以及它作为其他 Web 应用程序可重用测试框架的增长潜力感到兴奋。
不久之后,在 2004 年,ThoughtWorker Paul Hammant 看到了演示,并开始讨论 Selenium 的开源,以及定义 Selenium 的“驱动”模式,即您可以从您选择的语言通过网络使用 Selenium,这将绕过“同源策略”。其他(当时)的同事,Aslak Hellesoy 和 Mike Melia,尝试了“服务器”部分的不同想法,包括页面重写以绕过同源策略。Paul 用 Java 编写了最初的服务器部分,Aslak 和 Obie Fernandez 将客户端驱动程序移植到 Ruby,为更多语言的驱动程序奠定了基础。
世界各地不同办公室的 ThoughtWorkers 将 Selenium 用于商业项目,并从这些项目中获得的经验教训贡献回 Selenium。Mike Williams、Darrell Deboer 和 Darren Cotterill 都帮助提高了它的功能和稳健性。
与此同时,在 ThoughtWorks 之外...
在 Bea,Dan Fabulich 和 Nelson Sproul 得出结论,驱动程序/服务器到浏览器的架构不是最有用或最灵活的,因此分叉了驱动程序代码,并将其制作成一个独立的服务器,该服务器利用并捆绑了 MortBay 的 Jetty 作为 Web 代理。当代码合并回来时,它被称为“Selenium Remote Control”,旧的驱动代码行和功能被淘汰了。
Pat Lightbody 同时参与进来,他的一个商业想法需要他辞去日常工作 (Jive Software)。这个想法是“托管 QA”,它最终被转移到 Gomez 的服务线中。Pat 与 Dan 和 Nelson 合作,使 Selenium RC 稳定以进行大规模部署。Pat 为托管 QA 私下编写了一个网格,该网格可以截取各种状态下浏览器的屏幕截图,并同时照顾多个客户。Jason 早在一年之前就有了相同的托管 QA 想法,但并没有辞去日常工作去做。
2007 年,Dan 加入了快速增长的 Redfin,该公司也兼职赞助他在 Selenium 上的时间,并鼓励他进行演讲。
Selenium IDE:日本制造
日本的 Shinya Kasatani 对 Selenium 产生了兴趣,并意识到他可以将核心代码包装成 Firefox 浏览器中的 IDE 模块,并且能够在同一个插件中记录测试并回放它们。事实证明,这个工具在更多方面令人大开眼界,因为它不受同源策略的约束。
Mike Williams 在 2006 年夏天再次参与其中,他带领来自中国 ThoughtWorks 的一个团队,主要是王鹏超、黄亮和熊杰,但在其他人的帮助下。他们致力于改进 Selenium Core,目标是使其更接近 1.0 版本
谷歌也参与其中!
Jason Huggins 于 2007 年离开 Thoughtworks,加入了谷歌内部(当时是秘密的)Selenium 支持团队。
Jennifer Bevan(和其他未具名的谷歌员工)为 Selenium RC 编写了自己的网格功能,并在内部部署它以测试多个公共 Web 应用程序。谷歌在纽约举办了一次 GTAC 会议,并首次谈论了他们对 Selenium 的使用。Jennifer 很快就成为了 Selenium 项目的提交者。
芝加哥的 Haw-bin Chai 提供了 XPath 功能的补丁,并开发了一个名为“UI Element”的扩展,使定位器的语法更加简单。他在 2007 年被邀请加入 Selenium 开发团队。
ThoughtWorks 的 Simon Stewart 一直在开发一个名为 WebDriver 的不同的 Web 测试工具。它不依赖于 JavaScript 来完成繁重的工作,而是为每个浏览器都有一个从头开始编写的客户端。它还具有比 Selenium-RC 更“高级”的 API,并显示出很大的前景。Simon 在 GTAC 上展示了该工具,并开始研究与 Selenium-RC 的兼容性,这得出了两个项目应该合并的明显结论。Simon 于 2007 年至 2012 年在谷歌工作,现在在 Facebook 工作,他花了一些时间来实现这一点。