Selenium 2 (WebDriver) 介绍
Web应用的自动化测试
如今许多,可能所有的应用软件都是基于web的应用。这些应用的测试有效性在公司与组织 间相差甚大。在这个高度互动和相应的时代,许多组织都使用某种形式的敏捷软件开发流程。频繁的测试成为软件项目的一个需求,必然要求进行自动化测试。自动 化测试意味着使用一个软件工具重复的针对某个应用进行测试。
自动化测试有许多好处。许多都跟测试的重复性与测试执行的速度相关。有一些商业和开源的工具可以帮助自动化测试的开发。Selenium可能是应用的最广的开源解决方案。这个用户指南帮助新的和有经验的Selenium用户学习创建web应用的自动化测试的有效技术。
本指南介绍Selenium的特性和Selenium社区累积的经验。提供很多例子以及Selenium的内部结构的技术细节和推荐的使用方法。
自动化测试对于提高软件团队的测试流程有特殊的好处。测试自动化支持:
频繁的回顾测试
快速的反馈
Test Case几乎无限次的执行
支持Agile和Extreme开发模式
Test Case的有纪律的文档
定制的缺陷报告
寻找被手工测试忽略的缺陷
要不要自动化
自动化永远都有优势么?什么时候应该选择自动化?
No. 有时候手工测试更适合。例如,如果应用的用户界面在不远的将来会改变,那么自动化需要重写。或者,没有足够的时间来创建自动化测试。短期来说,手工测试更 有效率。如果一个应用有很紧的期限,暂时没有自动化测试,而且测试必须在一个时间段里完成,那么手工测试是最好的选择。
介绍Selenium
Selenium是一套不同的软件工具,使用不同的方法来支持自动化测试。许多 Selenium QA Engineers专注于一个或两个满足他们项目需求的工具,然而学习所有的工具给他们解决不同的测试问题提供许多不同的选项。整套工具提供了非常丰富的 功能,可以满足各种种类的Web应用的测试需求。这些操作非常灵活,允许有多种定位UI元素和比较期望结果的方法。Selenium的一个关键特性是对于 一个Case在多个操作系统平台上运行。
Selenium项目的简单历史
Selenium在2004年由Jason Huggins在测试ThoughtWorks的一个内部应用时诞生。作为一个聪明人,他意识到对于每一个代码更改手工执行相同的测试很浪费时间。他开发了一套Javascript库来驱动页面之间的互动,使他能够在不同的浏览器里自动的运行测试。这个Library慢慢地成为Selenium的核心,Selenium Remote Control(RC)和Selenium IDE的基础。Selenium RC是突破性的,因为没有其他产品允许你用一个你选择的语言来控制浏览器。
虽然硒是一个巨大的工具,它并非没有缺点。因为它基于Javascript的自动化引擎和浏览器对于Javascript的安全限制使有些事情没法做。更糟糕的是web应用变得越来越强大,新浏览器提供的各种特别的特性,使得这个限制越来越痛苦。
在2006年Google一个叫Simon Stewart的工程师开始了一个叫做WebDriver的项目。谷歌一直是一个Selenium的用户,但测试人员不得不解决产品的限制。Simon想要一个可以使用浏览器的native方法和浏览器与操作系统直接对话的测试工具。这样可以避免javascript的沙箱环境的限制。这个WebDriver项目的开始,目的是解决Selenium的痛处。
到了2008年,北京奥运会标志着中国作为一个世界大国的到来,大量在美国抵押贷款违约触发从大萧条以来的最严重的衰退。但这一年最重要的事情是Selenium和WebDriver的合并。Selenium有大量的社区和商业支持,但WebDriver显然是工具的未来。这两个工具的结合,为所有的用户提供一套共同的特性集,为自动化测试在同一屋檐下带来了一些最聪明的头脑。西蒙•斯图尔特—WebDriver的创建者,在2009年8月6日发给WebDriver和Selenium社区的联合邮件也许最好地解释了为什么WebDriver和Selenium合并。
“为什么两个项目合并?部分原因是因为WebDriver解决了Selenium的某些缺点(比如可以绕过JS sandbox以及我们有一些很好的API),部分原因是Selenium解决了某些WebDriver的缺点(比如支持更多的浏览器)部分原因是主要的Selenium贡献者和我觉得这是能够给用户提供最好的框架的方法。
Selenium的工具集
Selenium由几个软件工具组成,每个都有特殊的角色。
Selenium 2 ( Selenium Webdriver)
Selenium2是这个项目未来的方向以及Selenium工具包的最新成员。这个崭新的自动化工具提供了各种各样很酷的特性,包括一个更具凝聚力和面向对象的API以及一个对旧有实现的限制性的回答。
Selenium和WebDriver的开发者都同意两个工具都有优势,合并两个项目可以制造一个更健壮的测试工具。
Selenium 2.0就是这种努力的产品。它支持WebDriver API和底层技术以及在WebDriver API下的Selenium1的技术,使您的测试移植中可以实现最大的灵活性。另外,Selenium2仍然可以运行于Selenium1的Selenium RC接口以支持向后兼容。
Selenium 1 (Selenium RC or Remote Control)
Selenium RC曾经在很长时间里是主要的Selenium项目,在WebDriver/Selenium合并之前曾是最新和最强大的工具。
Selenium 1仍然积极支持(主要是在维护模式),并提供了可能在Selenium2中暂时不能支持的一些特性,包括多种语言(Java,Javascript,PHP,Python,Ruby,Perl和C#)以及几乎所有浏览器的支持。
Selenium IDE
Selenium IDE(Integrated Development Environment)是一个原型工具,用于构建测试脚本。这是一个Firefox的插件,提供了易于使用的接口来支持自动化测试的开发。Selenium IDE具有录制功能,可以录制用户执行的动作,把他们导出成可以重用的脚本,用多种编程语言中的一种,可以用于以后执行。
注意:
虽然Selenium IDE有一个保存的特性来允许用户用一个表格的形式来保存测试以支持以后的导入和执行,但是它并不是被设计来运行你的测试通过或者构建所有你需要的自动化测试。具体来说,Selenium IDE并不提供迭代或条件语句为测试脚本。目前也没有计划添加这些。原因部分由于技术,部分基于Selenium开发者鼓励在测试自动化中的最佳时间是需要一定的编程。Selenium IDE只是用于快速的原型工具的目的。Selenium开发者推荐严重的,健壮的测试自动化用支持许多编程语言的Selenium1或Selenium2
Selenium-Grid
Selenium-Grid允许为大型test suite或者必须在多个环境中运行的test suite扩展Selenium RC的解决方案。Selenium Grid允许您并行运行您的测试,就是不同的测试可以同时在不同的远程机器中运行。这有两个好处:第一,如果您有大型test suite,或者运行的很慢的test suite,你可以通过使用Selenium Grid来划分您的Test suite,使不同的测试在同一时间运行在不同的机器上,从而大大的提高性能。并且,如果你必须在多个环境中运行test suite,你可以在同一时间用不同的远程机器来支持和运行您的测试。Selenium Grid通过并行处理,极大的缩短了执行test suite的时间。
选择您的测试工具
许多人从使用Selenium IDE开始。如果你还对于编程或者脚本语言不是很有经验,你可以使用Selenium IDE来熟悉Selenium命令。使用IDE您可以很快的创建简单的测试,有时候只需要几秒钟。
然而,我们不推荐您使用IDE做您所有的自动化测试。为了更有效地使用Selenium,您需要结合我们所支持的编程语言中的一种来使用Selenium2或者Selenium1编译和运行您的测试。
对于第一次使用Selenium的人,我们推荐使用Selenium2因为这是我们在将来会继续支持的部分。
浏览器和平台的支持
Selenium-WebDriver
• Google Chrome 12.0.712.0+
• Internet Explorer 6, 7, 8, 9 - 32 and 64-bit where applicable
• Firefox 3.0, 3.5, 3.6, 4.0, 5.0, 6, 7
• Opera 11.5+
• HtmlUnit 2.9
• Android – 2.3+ for phones and tablets (devices & emulators)
• iOS 3+ for phones (devices & emulators) and 3.2+ for tablets (devices & emulators)
Selenium 1.0 and Selenium-RC.??
This is the old, support platfom for Selenium 1.0. It should still apply to the Selenium 2.0 release of Selenium-RC.
Browser Selenium IDE Selenium 1 (RC) Operating Systems
Firefox 3.x Record and playback tests Start browser, run tests Windows, Linux, Mac
Firefox 3 Record and playback tests Start browser, run tests Windows, Linux, Mac
Firefox 2 Record and playback tests Start browser, run tests Windows, Linux, Mac
IE 8 Test execution only via Selenium RC* Start browser, run tests Windows
IE 7 Test execution only via Selenium RC* Start browser, run tests Windows
IE 6 Test execution only via Selenium RC* Start browser, run tests Windows
Safari 4 Test execution only via Selenium RC Start browser, run tests Windows, Mac
Safari 3 Test execution only via Selenium RC Start browser, run tests Windows, Mac
Safari 2 Test execution only via Selenium RC Start browser, run tests Windows, Mac
Opera 10 Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac
Opera 9 Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac
Opera 8 Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac
Google Chrome Test execution only via Selenium RC Start browser, run tests Windows, Linux, Mac
Others Test execution only via Selenium RC Partial support possible** As applicable
* Tests developed on Firefox via Selenium IDE can be executed on any other supported browser via a simple Selenium RC command line.
** Selenium RC server can start any executable, but depending on browser security settings there may be technical limitations that would limit certain features.
灵活性和可扩展性
您会发现Selenium是非常灵活的。您有许多方法可以为您的Selenium的测试脚本或者Selenium框架添加功能来定制您的自动化测试。这也许是Selenium相较于其他自动化工具的最大优势。这些定制在文档的不同地方描述。另外,Selenium是开源的,源代码总是可以下载并修改。
分享到:
相关推荐
Selenium WebDriver 是一款广泛使用的自动化测试工具,专为Web应用程序设计。它允许程序员模拟真实用户在浏览器中的操作,如点击、输入、导航等,从而进行功能性和兼容性测试。了解其工作原理对于优化自动化测试脚本...
4. **WebDriver API**:介绍VB6中使用的主要WebDriver接口,如`Driver`对象、`WebElement`对象等,以及它们的方法和属性,如`Get`方法用于导航,`FindElementById`或`FindElementByXPath`用于查找页面元素,`Click`...
本文档详细介绍了selenium_webdriver在Python中的应用,从环境搭建到实际操作,内容覆盖了Selenium的基础知识、元素定位、等待时间的处理、浏览器操作、键盘和鼠标事件处理、多层框架/窗口定位、上传文件操作、...
WebDriver 命令参考手册是 WebDriver 的一个重要组件,提供了 WebDriver 的命令参考手册。该手册详细介绍了 WebDriver 的各种命令和协议,旨在帮助开发者更好地理解和使用 WebDriver。 驱动程序 Wire 协议 ...
这个中文版文档详细介绍了如何在不同的浏览器上使用 WebDriver,并提供了各种操作页面元素的方法。以下是对这些知识点的深入阐述: ### 第1章:基础设置 1. **下载 Selenium 2.0 的 lib 包**:这是开始使用 ...
本文档主要介绍了使用 Selenium+WebDriver 进行自动化测试的学习方法,从基础到精通的学习方法。下面我们将对标题、描述、标签和部分内容进行详细的解释。 标题:selenium+webdriver学习文档 这是一个学习文档,...
VB6版WebDriver实验,压缩包中有技术文档《WebDriver原理及实验》《WebDriver命令编程手册(英文版、中文机翻版)》,代码演示的功能有:操作浏览器自动打开百度、搜索mp3,获得网页源码,获得网页标题,网页截图,...
WebDriver是一个开源的API,它允许程序员控制浏览器并模拟用户交互,常用于Web应用的自动化测试。 首先,要开始学习WebDriver,你需要完成以下步骤: 1. **安装Firefox**:WebDriver支持多种浏览器,这里以Firefox...
总的来说,本书不仅介绍了Selenium WebDriver的基本概念,还涵盖了安装配置、框架搭建以及实际编写测试脚本等内容,对于想要在IT领域从事自动化测试工作的人来说,是一本非常实用的指南。通过学习和实践,你可以掌握...
根据文档提供的信息,本示例主要介绍了如何使用Selenium WebDriver2.0进行自动化测试的完整流程。首先,我们需要完成以下准备工作: 1. **下载Selenium Java客户端库**:访问官方网站 ...
Python WebDriver 是一款功能强大且广泛应用于自动化测试的工具。本文档将对 Python WebDriver 自动化测试实战进行详细的介绍和分析。 测试模型 在自动化测试中,测试模型是指测试过程中所使用的方法和步骤。线性...
本书是我翻译自,保留了和web测试有关的一些章节,去除了...书有所用的代码我是用java来实现的,对于了解了我第一本书初学者指南>的一定代码基础的同学试读这本书会有比较好的入门提高。 书中的例子请放到d:\demo目录下
本篇将详细介绍"webdriver_firefox_chrome"这一主题,包括WebDriver的基本概念、用途、Chrome WebDriver(ChromeDriver)与Firefox WebDriver(GeckoDriver)的特性以及它们在Selenium框架中的应用。 WebDriver是一...
《Selenium WebDriver(Python)第三版》这本书深入浅出地介绍了如何利用Python语言来操作和运用WebDriver。 一、Selenium WebDriver简介 Selenium WebDriver是一个开放源代码的API,允许开发人员编写脚本来控制不同...
本文档将详细介绍 Selenium2 WebDriver 的安装、配置、基本操作和使用技巧。 安装 Selenium WebDriver 1. 安装 Firefox:确保 Firefox 安装在默认环境下,不然会报错。 2. 安装 JDK:确保安装了 JDK,我使用的是 ...
【Selenium WebDriver(Python)第一版】文档是一个针对Python编程语言使用Selenium WebDriver进行Web自动化测试的教程。这篇文档特别适合已经具备Python基础知识,并希望通过Python和Selenium进行自动化测试的初学者...