[跟着官方文档学Selenium][学习笔记][一][Selenium介绍]

网友投稿 620 2022-05-29

前言

Selenium是支持Web浏览器自动化的一系列工具和库的综合项目,是当今软件测试中必须掌握的技能之一。

Selenium的历史

The story starts in 2004

在2004年芝加哥的ThoughtWorks公司,Jason Huggins构建了一个核心模式名为"JavaScriptTestRunner",用来测试internal Time和Expense application(Python, Plone)。考虑到该咨询公司的敏捷倾向,任何应用程序的自动测试都是ThoughtWork风格的核心。他从Paul Gross和Jie Tina Wang得到了帮助,对他们来说,这是一份日常工作。

Jason开始向不同的同事演示测试工具。许多人对其即时直观的视觉反馈以及作为其他web应用程序的可重用测试框架的发展潜力感到兴奋。

2004年,Paul Hammant看到这个演示后开始讨论Selenium的开源,以及定义一种"驱动"模式,在这种模式下,你可以通过自己选择的语言使用Selenium,这将绕过同源政策。其他(当时)同事Aslak Hellesoy和Mike Melia对"服务器"部分尝试了不同想法,包括重写页面及绕过同源策略。Paul用Java写了原始服务器,Aslak和Obie Fernandez将客户端驱动程序移植到Ruby,为更多语言的驱动程序提供了基础。

ThoughtWorker在世界各地不同办公室的人为商业项目学习Selenium,并从这些项目中吸取经验教训中为Selenium做出了贡献。Mike Williams,Darrell Deboer和Darren Cotterill都帮助提高了Selenium的能力和健壮性。

Meanwhile, outside of ThoughtWorks

[跟着官方文档学Selenium][学习笔记][一][Selenium介绍]

在Bea,Dan Fabulich和Nelson Sproul得出的结论是,驱动程序/服务器到浏览器的体系结构不是最有用或最灵活的,因此将驱动程序编码器分叉,并将其制作成一个独立的服务器,利用并捆绑MortBay的Jetty作为web代理。当代码被合并回来时,它被称为“Selenium Remote Control”,旧的驱动代码线和功能被废弃。

Pat Lightbody同时参与了一项商业计划,这要求他辞去日常的工作(Jive)。这个想法就是"Hosted QA",最终被转移到Gomez的服务线线。Pat和Dan与Nelson合作,使SeleniumRC能够在大规模部署中保持稳定。Pat曾私底下为Hosted QA编写了一个grid,拍摄了各州浏览器的截图,并同时照顾多个用户。Jason一年前也有同样想法,但他没有辞去日常工作去做。

在2007年,Dan搬到了快速发展的Redfin,并成为Selenium的赞助商。

Selenium IDE: Made in Japan

在日本的Shinya Kasatani对Selenium产生了兴趣,并意识到他可以将核心代码封装到Firefox的IDE模块中,并能够在同一个插件中记录测试和回放测试。这工具在多方面都令人大开眼界,因为它不受同源政策的约束。

2006年的夏天,Mikes Williams再次参与到项目中,他领导了一个ThoughWorks的中国团队,主要是Wang Peng Chao,Huang Liang和Xiong Jie,但也得到了其他人的帮助。他们致力于改进Selenium Core,目标是使其更接近1.0版本。

Google Too!

Jason Huggins在2007年离开了ThoughtWorks并加入了(当时是秘密的)谷歌的Selenium支持团队。

Jennifer Bevan(和其他未具名的谷歌用户)为Selenium RC编写了自己的Grid功能,并在内部部署该功能,用于测试多个公共web应用程序。谷歌在纽约主办了一个GTAC会议,并首次讨论了他们对Selenium的使用。詹妮弗很快成为Selenium项目的提交人。

芝加哥的Haw-bin Chai为XPath功能提供了补丁,并开发了一个名为"UI元素"的拓展,使Locators的语法更加简单。2007年,他受邀加入Selenium开发团队。

ThoughtWorks的Simon Stewart一直在开发另一种名为WebDriver的网络测试工具。它不需要依赖JavaScript来完成繁重的工作,而是为每个浏览器提供了一个从头开始编写的客户端。它还有一个比"Selenium-RC"更改级别的API并展示了很多前景。Simon在GTAC上展示了该工具,并开始研究与Selenium RC的兼容性,这得出一个明显的结论-这两个项目即将合并。Simon从2007年到2012年在谷歌工作,现在在Facebook工作。

Selenium的生态

Selenium支持的浏览器驱动

Mozilla GeckoDriver

Microsoft EdgeDriver

Google ChromeDriver

Opera ChromiumDriver

Apple SafariDriver\

语言绑定

框架

编程语言通过Selenium驱动程序支持。这些库是用各种语言编写的,命令是来自于Selenium的原生API的方法/函数。

Selenium经常被用于自动化测试Web应用,但它并不包括测试框架。下面列出了一些可以使用Selenium测试的测试框架。

Selenium三大件

Selenium WebDriver

如果你想创建强大的,基于浏览器的回归自动化套件和测试,在许多不同环境中拓展和分发脚本,那么你就需要Selenium WebDriver。

Selenium IDE

如果要创建快速错误再现脚本,请创建脚本以帮助进行自动化辅助的探索性测试,那么您需要使用Selenium IDE

Selenium Grid

如果您想通过在多台计算机上分发和运行测试来扩展,并从一个中心点管理多个环境,从而可以轻松地针对各种浏览器/ OS组合运行测试,那么您需要使用Selenium Grid。

Selenium web前端

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python官方文档学习心得(第二篇)
下一篇:[跟着官方文档学pytest][六][fixture][学习笔记]
相关文章