Web测试自动化的Selenium组件

Web测试自动化的Selenium组件

Selenium是迄今为止最常用的浏览器自动化工具。如果您是一个更新鲜的或有经验的测试工程师,您可以学习Selenium框架的基础知识。它是开源的,所以你可以不用花任何钱就可以使用它。现在,Selenium显然是对网站进行自动化测试的最佳选择。它逐渐流行起来,成为测试人员的基准工具,以及对Web应用程序的功能测试自动化的组织。不仅测试工程师,而且开发人员也可以用它来进行项目的单元测试。在这篇文章中,我们将专门讨论各种Selenium组件和您应该使用的浏览器插件。

在开始使用Selenium之前,了解这个技术的简短历史是很公平的。2004年,Jason Huggins在思想工作中首次创造了Selenium。他是一名工程师,他构想了浏览器自动化的概念,以减轻手工测试的重复性任务。他将这个组件的名字命名为“JavaScriptTestRunner”。然后,另一位聪明的工程师在同一个办公室工作,Paul Hammant扩展了它的功能,并将其描述为Selenium RC。后来,有许多创新者,如Patrick Lightbody、Patrick Lightbody和西蒙斯图尔特,他们对Selinium技术的发展做出了巨大贡献。最近,正是西蒙斯图尔特把Selenium变成了网络驱动,使它变得更简单、更快、更高效。

当您开始学习Selenium时,您必须知道它是一组工具,使它非常适合于Web UI自动化。它的核心是Selenium RC和Webdriver接口,您可以在其中插入不同的浏览器驱动程序,比如Internet Explorer和Chrome,以支持跨浏览器测试。但是,像Eclipse和Selenium IDE这样的外部工具可以帮助您创建/编写自动化脚本。此外,还有一些支持的浏览器插件,如FireBug和FirePath,进一步简化了UI自动化过程。

您可以从开始使用Selenium IDE开始您的旅程,它是一个FireFox插件。随后,您可以学习与web元素定位器一起工作的不同技术。定位器是访问web页面上的HTML对象的唯一标识符。您应该尝试将任何网站的工作流程自动化,例如使用Selenium IDE预订来自旅行门户的机票。它不仅能帮助你记住你所学到的概念,而且还能更快地吸收你的知识。


1.可视化Selenium Webdriver架构。

2. Selenium支持的工具是什么?

~2.1.Selenium RC是什么?

~2.2.Selenium IDE是什么?

~2.3.SeleniumWebdriver是什么?

~2.4.Selenium网格是什么?


Selenium组件和测试自动化工具。

如果您盯着下面的快照,您将会对内部和外部的Selenium组件有一个很好的理解。在这张图中,我们描述了Selenium框架的整个层次结构。

Web测试自动化的Selenium组件_第1张图片

测试自动化的Selenium组件。


现在让我们对一些关键的Selenium组件进行简要的概述。


1 -Selenium1.0(RC)。


摘要Selenium RC是长期以来的核心Selenium框架。WebDriver项目的出现交付了Selenium 2.0,它是一种新的、更强大的工具。尽管如此,它仍然是非常有用的Selenium组件之一。

虽然,Selenium RC仍然处于活动状态,但只在维护模式中。它几乎没有在Selenium 2.0中不可用或弃用的特性。它由两个子部分组成。


Selenium RC组件如下:


Selenium服务器(The Selenium Server)

- 它启动并终止浏览器、翻译和处理从测试应用程序发送的Selenium命令,它的行为类似于HTTP代理,控制并验证客户端和测试应用程序之间交换的HTTP消息。


客户端库(Client libraries)

-这个模块是编程语言和Selenium服务器之间的接口。Selenium支持许多编程语言,因此它们的客户机库。其中最常见的是Java、CSharp、Python和Ruby。


什么时候应该使用Selenium RC?

您决定在下面的场景中选择它。

~在编写一个测试用例时,使用比Selenium更有表现力的语言。

~跨浏览器和跨平台测试的需要。

~需要使用Selenium网格在分布式的违规中部署测试。

~在新浏览器中测试应用程序的JavaScript支持

~测试支持AJAX的web应用程序。


2 - Selenium IDE。


Selenium IDE是一个功能全面的开发环境(IDE),用于编写Selenium测试。它以Firefox插件的形式出现。您可以使用它来记录、编辑和用于调试目的。最初,它的创造者曾称它为Selenium记录器。他是Shinya Kasatani,他开发了这个工具,并于2006年提交了Selenium社区。它最近得到了升级,现在它支持Webdriver和更多的语言。

这个工具的妙处在于,您可以记录一个测试脚本,自定义它,或者自己编写一个新的测试。它确实有对Selenium命令的自动补全支持,所以您不需要记住它们的确切语法。就像每个软件都有限制一样,IDE也有一个。它不具备迭代和参数化测试的能力。尽管您可以通过使用Webdriver来解决这个限制。这个工具的妙处在于,您可以记录一个测试脚本,自定义它,或者自己编写一个新的测试。它确实有对Selenium命令的自动补全支持,所以您不需要记住它们的确切语法。就像每个软件都有限制一样,IDE也有一个。它不具备迭代和参数化测试的能力。尽管您可以通过使用Webdriver来解决这个限制。


在使用Selenium IDE时,您需要了解的Selenium术语很少。

~Selenese命令,如类型、打开、点击等等、断言、验证等。

~定位器,如ID、名称、XPath、CSS选择器等等。


使用Selenium IDE可以做什么?

~使用runScript命令运行定制的JavaScript。

~以各种支持的格式导出测试用例。

~编写具有有限编程技能的测试。

~将测试用例分组到测试套件中,您可以将其转换为Selenium RC或Webdriver格式。

~只使用Firefox测试web应用程序


3 -Selenium WebDriver。

Selenium WebDriver是Selenium RC的最高级形式。它可以处理多语言命令(通过Selenese或客户端API发送),并将它们直接转发给web浏览器。Webdriver有一个内置的Firefox驱动程序。对于其他浏览器,您需要插件其特定于浏览器的驱动程序来通信和运行测试。还有一个叫做HtmlUnit webdriver的浏览器免费解决方案。它是速度最快、最轻的驱动程序,也是众所周知的“无头驱动程序”。与其他驱动程序不同的是,它不启动任何用于执行测试的浏览器。

你能用Selenium Webdriver做些什么?

没有人认为它是最重要的Selenium组件之一

~从多种编程语言中选择编写测试用例。

~测试web应用程序,它提供了丰富的基于AJAX的支持。

~使用HtmlUnit无头浏览器运行测试用例。 

~使用“webdriver-Selenium”包装器轻松地迁移Selenium RC测试。


4 -Selenium网格(Selenium Grid)。

Selenium Grid是一种动态工具,它可以在多个物理/虚拟机中并发地分发和运行Selenium测试。它可以显著加快跨不同浏览器的测试进程,并通过提供快速和准确的结果来缩短测试周期。

Selenium网格可以使用相同的测试代码同时调用WebDriver(或Selenium RC)测试的多个实例。您只需让测试代码在运行测试的每个节点上都可用。

Selenium网格体系结构由一个集线器和一个节点组成。

Hub- 您可以将其想象为一个服务器组件,它将管道和触发器触发测试。Selenium网格有一个专用的集线集,在完成所有测试之后,测试启动并关闭。

Node- 节点用于运行中心用来启动测试的Selenium实例。网格可以在类似或不同的OS上运行许多节点。您需要确保每个节点都能够访问Selenium支持的浏览器。

你能用Selenium网格做什么?

~在不同的浏览器和不同的操作系统上同时执行Selenium rc/webdriver测试。

~运行一个大型的Selenium测试套件,并在最短的时间内完成它。



原网站http://www.techbeamers.com/selenium-components-web-test-automation/#SeleniumWebdriverArchitecure

你可能感兴趣的:(selenium)