Selenium

浏览器自动化测试框架

Selenium

Selenium是一款专为Web应用程序测试而设计的工具,通过在浏览器中模拟用户操作,测试应用程序的功能和兼容性。它支持多种主流浏览器,包括IE、Firefox、Safari、Chrome、Opera、Edge等,使测试直接在浏览器中运行,仿佛真正的用户在进行操作。[0]Selenium具有三个主要功能。首先,它执行浏览器兼容性测试,确保应用程序在不同浏览器和操作系统上表现正常。其次,通过创建回归测试,验证软件功能和用户需求,进行系统功能测试。最后,Selenium支持自动录制用户动作,能够自动生成测试脚本,适用于多种编程语言,如.Net、Java、Perl等。[1][2]

Selenium是一款专为Web应用程序测试而设计的工具,通过在浏览器中模拟用户操作,测试应用程序的功能和兼容性。它支持多种主流浏览器,包括IE、Firefox、Safari、Chrome、Opera、Edge等,使测试直接在浏览器中运行,仿佛真正的用户在进行操作。[1]

Selenium具有三个主要功能。首先,它执行浏览器兼容性测试,确保应用程序在不同浏览器和操作系统上表现正常。其次,通过创建回归测试,验证软件功能和用户需求,进行系统功能测试。最后,Selenium支持自动录制用户动作,能够自动生成测试脚本,适用于多种编程语言,如.Net、Java、Perl等。[2][3]

Selenium的使用具有多方面优势。它能有效进行浏览器兼容性测试,确保应用程序跨不同环境都能正常运行。通过支持系统功能测试,帮助创建回归测试,提高软件质量。Selenium的跨语言支持使得测试团队可以根据项目需求选择适用的编程语言,增加了灵活性和可定制性。[3]

发展历史

Selenium 最初由 Jason Huggins 于 2004 年开发,作为ThoughtWorks的内部工具。Huggins 后来由 ThoughtWorks 的其他程序员和测试人员加入,之后 Paul Hammant 加入团队并指导第二种操作模式的开发,该模式后来成为“Selenium 远程控制”(RC)。

2005 年Dan Fabulich 和 Nelson Sproul(在 Pat Lightbody 的帮助下)提出接受一系列补丁,这些补丁将使 Selenium-RC 变得更加出名。在同一次会议上,Selenium 作为一个项目将继续作为一个委员会进行指导,Huggins 和 Hammant 是 ThoughtWorks 的代表。

2007年哈金斯加入谷歌。他与 Jennifer Bevan 等人一起继续开发和稳定 Selenium RC。与此同时ThoughtWorks 的 Simon Stewart 开发了一种名为 WebDriver 的高级浏览器自动化工具。

2009 年在 Google 测试自动化大会上,开发人员召开会议后,决定合并这两个项目,并将新项目称为 Selenium WebDriver,或 Selenium 2.0。

2008 年Philippe Hanrigou(当时在 ThoughtWorks)制作了“Selenium Grid”,它提供了一个中心,允许在任意数量的本地或远程系统上同时运行多个 Selenium 测试,从而最大限度地减少测试执行时间,允许Selenium-RC针对规模庞大的测试案例集或者需要在不同环境中运行的测试案例集进行扩展。Grid 作为开源软件为 Selenium RC 提供了与内部/私有 Google 云类似的功能。Pat Lightbody 已经为“HostedQA”创建了私有云,然后将其出售给 Gomez,Inc.。

Selenium 这个名字来自于 Huggins 在一封电子邮件中开的一个玩笑,嘲笑一个名叫Mercury的竞争对手,说通过服用硒[xī]补充剂可以治愈汞中毒。其他收到电子邮件的人记下了这个名字并用它运行。

selenium server启动成功
selenium server启动成功

功能与服务

框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python等多种语言编写用例脚本。

据 Selenium 主页所说,与其他测试工具相比,使用 Selenium 的最大好处是:Selenium 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、LinuxMacintosh上的 Internet Explorer、Chrome和 Firefox 中运行。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处。

主要的两大好处有:通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。Selenium 的核心,也称browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本要么是用 HTML 的表布局编写的,要么是使用一种受支持的编程语言编写的。

Selenium 2.0适用于以下浏览器:

Google Chrome、Internet Explorer 7, 8, 9, 10, 11、Firefox、Safari、Opera、Edge、HtmlUnit、phantomjs、Android、iOS

Selenium 1.0适用于以下浏览器:

rowserSelenium IDESelenium Remote ControlSelenium CoreSelenium 2/Webdriver APIFirefox 10Record and playback testsStart browser, run testsRun testsRun testsFirefox 9Record and playback testsStart browser, run testsRun testsRun testsFirefox 8Record and playback testsStart browser, run testsRun testsRun testsFirefox 7Record and playback testsStart browser, run testsRun testsRun testsFirefox 6Record and playback testsStart browser, run testsRun testsRun testsFirefox 5Record and playback testsStart browser, run testsRun testsRun testsFirefox 4Record and playback testsStart browser, run testsRun testsRun testsFirefox 3.6Record and playback testsStart browser, run testsRun testsRun testsFirefox 3Record and playback testsStart browser, run testsRun testsnot supportedIE 9not supportedStart browser, run testsRun testsRun testsIE 8not supportedStart browser, run testsRun testsRun testsIE 7not supportedStart browser, run testsRun testsRun testsSafari 3not supportedStart browser, run testsRun testsnot supportedSafari 2not supportedStart browser, run testsRun testsnot supportedOpera 9not supportedStart browser, run testsRun testsRun testsOpera 8not supportedStart browser, run testsRun testsRun testsChromenot supportedStart browser, run testsRun testsRun testsOthersnot supportedPartial support possibleRun testsnot supported

参考资料 3

  1. 参考 1
  2. 参考 2
  3. 参考 3
广告位:底部(ad-bottom)—— 请到中台「公共区块」编辑此内容