2018-11-14

以下为 Selenium 官网内容。

介绍


Test Automation for Web Applications


今天,许多(也许是大多数)软件应用程序被编写为基于web的应用程序,在Internet浏览器中运行。测试这些应用程序的有效性在公司和组织之间存在很大差异。在一个高度交互和响应性软件过程的时代,许多组织都在使用某种形式的敏捷方法,测试自动化经常成为软件项目的需求。测试自动化通常是答案。测试自动化意味着使用软件工具对要测试的应用程序运行可重复的测试。对于回归测试,这提供了响应性。

测试自动化有很多优点。大多数都与测试的可重复性和测试执行的速度有关。有许多商业和开源工具可以帮助开发测试自动化。Selenium可能是最广泛使用的开源解决方案。本用户指南将帮助新用户和有经验的Selenium用户学习构建web应用程序测试自动化的有效技术。

本用户指南介绍了Selenium,介绍了它的特性,并介绍了Selenium社区积累的常用最佳实践。文中提供了许多示例。此外,还提供了关于硒的内部结构和推荐使用硒的技术信息。

测试自动化对于提高软件团队测试过程的长期效率具有特殊的优势。测试自动化支持:

  • 频繁的回归测试
  • 快速反馈给开发人员
  • 几乎无限的测试用例执行迭代
  • 支持敏捷和极端的开发方法
  • 严格的测试用例文档
  • 自定义缺陷报告
  • 通过手工测试发现遗漏的缺陷

To Automate or Not to Automate?


自动化总是有利的吗?什么时候应该决定自动化测试用例?

自动化测试用例并不总是有利的。有时候手工测试可能更合适。例如,如果应用程序的用户界面在不久的将来会发生很大的变化,那么任何自动化都可能需要重写。而且,有时候根本没有足够的时间来构建测试自动化。从短期来看,手工测试可能更有效。如果应用程序的截止日期很紧,目前没有可用的测试自动化,并且测试必须在那个时间段内完成,那么手工测试是最好的解决方案。

Introducing Selenium


Selenium是一组不同的软件工具,每个工具都具有支持测试自动化的不同方法。大多数Selenium QA工程师关注的是最满足项目需求的一两个工具,但是学习所有的工具将为您提供许多解决不同测试自动化问题的不同选项。整个工具集产生了一组丰富的测试功能,专门针对所有类型的web应用程序的测试需求。这些操作非常灵活,允许许多选项来定位UI元素,并将预期的测试结果与实际的应用程序行为进行比较。Selenium的关键特性之一是支持在多个浏览器平台上执行测试。

Selenium 项目简史


Selenium首次出现是在2004年,当时Jason Huggins正在ThoughtWorks测试一个内部应用程序。作为一个聪明的人,他意识到他的时间有更好的用途,而不是在他做的每一次修改中手动地完成同样的测试。他开发了一个Javascript库,可以驱动与页面的交互,允许他针对多个浏览器自动重新运行测试。这个库最终成为Selenium Core,它支持Selenium远程控制(RC)和Selenium IDE的所有功能。Selenium RC是开创性的,因为没有其他产品允许您从自己选择的语言控制浏览器。

虽然Selenium是一个巨大的工具,但它也有缺点。由于其基于Javascript的自动化引擎和浏览器适用于Javascript的安全限制,不同的事情变得不可能去做。更糟糕的是,随着时间的推移,web应用程序变得越来越强大,使用了新浏览器提供的各种特殊功能,使得这些限制越来越痛苦。

2006年,谷歌的一名勇敢的工程师西蒙·斯图尔特(Simon Stewart)开始了一个他称之为WebDriver的项目。谷歌长期以来都大量使用Selenium,但是测试人员必须解决产品的局限性。Simon想要一个测试工具,使用浏览器和操作系统的“本机”方法直接与浏览器通信,从而避免了沙箱Javascript环境的限制。WebDriver项目的初衷是解决Selenium的痛点。

跳转到2008。北京奥运会标志着中国作为一个全球大国的到来,美国大规模的抵押贷款违约引发了自大萧条以来最严重的国际经济衰退,《黑暗骑士》被每一个人(两次)视为“黑暗骑士”,至今仍在为希斯•莱杰(Heath Ledger)的英年早逝而心有余悸。但那一年最重要的故事是Selenium和WebDriver的融合。Selenium有大量的社区和商业支持,但是WebDriver显然是未来的工具。这两种工具的结合为所有用户提供了一组通用的特性,并将测试自动化方面最聪明的一些人带到同一个屋檐下。WebDriver的创始人Simon Stewart在2009年8月6日给WebDriver和Selenium社区的一封联合电子邮件中详细解释了为什么WebDriver和Selenium会合并。

“为什么这些项目会合并?”部分原因是WebDriver解决了selenium中的一些缺点(例如能够绕过JS沙箱)。他说:“我们有一个非常棒的API,部分是因为selenium解决了WebDriver的一些缺点(比如支持更广泛的浏览器),还有一部分是因为selenium的主要贡献者和我都认为这是为用户提供尽可能好的框架的最佳方式。”

Selenium’s Tool Suite


Selenium由多个软件工具组成。每个角色都有特定的角色。

Selenium 2 (又叫做 Selenium WebDriver)


Selenium 2是这个项目的未来方向,也是Selenium工具包的最新添加内容。这个全新的自动化工具提供了各种令人敬畏的特性,包括一个更内聚和面向对象的API,以及对旧实现的局限性的回答。

正如您可以在Selenium项目的简要历史中看到的,Selenium和WebDriver开发人员都认为这两种工具都有优点,合并这两个项目将使自动化工具更加健壮。

Selenium 2.0是这种努力的产物。它支持WebDriver API和底层技术,以及WebDriver API下面的Selenium 1技术,以便在移植测试时获得最大的灵活性。此外,Selenium 2仍然运行Selenium 1的Selenium RC接口,以便向后兼容。

Selenium 1 (又叫做 Selenium RC or Remote Control)


正如您可以在Selenium项目的简要历史中看到的,Selenium RC在很长一段时间内都是主要的Selenium项目,在WebDriver/Selenium合并之前,它带来了Selenium 2,这是一种最新的、功能更强大的工具。

现在不支持Selenium 1,并且不积极支持它(主要在维护模式中)。

Selenium IDE


Selenium IDE(集成开发环境)是构建测试脚本的原型工具。它是一个Firefox和Chrome插件,提供了一个易于使用的界面来开发自动化测试。Selenium IDE有一个记录特性,它记录用户执行的动作,然后将其导出为可重用的脚本,这些脚本可以在以后执行的编程语言中使用。

note:

尽管Selenium IDE有一个“保存”特性,允许用户以基于表的格式保存测试,以供以后导入和执行,但它既不是为运行测试通过而设计的,也不是为构建所需的所有自动化测试而设计的。具体来说,Selenium IDE不为测试脚本提供迭代或条件语句。在撰写本文时,还没有计划添加这样的内容。原因部分是技术上的,部分是基于Selenium开发人员鼓励测试自动化中的最佳实践,而测试自动化总是需要一些编程。Selenium IDE只是作为一种快速原型工具。Selenium开发人员推荐将Selenium 2或Selenium 1与许多受支持的编程语言之一一起使用,以实现严肃、健壮的测试自动化。

Selenium-Grid


Selenium- grid允许Selenium RC解决方案适用于大型测试套件和必须在多个环境中运行的测试套件。Selenium Grid允许并行运行测试,也就是说,不同的测试可以在不同的远程机器上同时运行。这有两个优点。首先,如果您有一个大型测试套件,或者运行缓慢的测试套件,您可以通过使用Selenium Grid来划分测试套件,同时使用这些不同的机器运行不同的测试,从而大大提高其性能。另外,如果您必须在多个环境中运行测试套件,那么您可以让不同的远程机器同时支持和运行测试。在每种情况下,Selenium Grid都通过使用并行处理极大地提高了运行您的套件所需的时间。

Choosing Your Selenium Tool


许多人开始使用Selenium IDE。如果您还没有使用编程或脚本语言的经验,可以使用Selenium IDE来熟悉Selenium命令。使用IDE可以快速创建简单的测试,有时只需几秒钟。

但是,我们不建议您使用Selenium IDE来实现所有的自动化测试。要有效地使用Selenium,您需要使用Selenium 2或Selenium 1结合支持的编程语言来构建并运行测试。你选择哪一个取决于你自己。

在编写Selenium时,开发人员正计划将Selenium- webdriver API作为Selenium的未来方向。Selenium 1用于向后兼容。尽管如此,两者都有各自的优点和缺点,在本文件的相应章节中进行了讨论。

我们建议那些对Selenium完全陌生的人阅读这些部分。但是,对于那些第一次采用Selenium并从头构建新的测试套件的人来说,您可能希望使用Selenium 2,因为这是将来将继续支持的Selenium的一部分。

支持的浏览器和平台


在Selenium 2.0中,支持的浏览器取决于您是使用Selenium- webdriver还是Selenium- rc。

Selenium-WebDriver

Selenium-WebDriver支持下列浏览器以及这些浏览器兼容的操作系统。

  • Google Chrome
  • Internet Explorer 7, 8, 9, 10, and 11 on appropriate combinations of Vista, Windows 7, Windows 8, and Windows 8.1. As of April 15 2014, IE 6 is no longer supported. The driver supports running 32-bit and 64-bit versions of the browser where applicable
  • Firefox: latest ESR, previous ESR, current release, one previous release
  • Safari
  • Opera
  • HtmlUnit
  • phantomjs
  • Android (with Selendroid or appium)
  • iOS (with ios-driver or appium)
Selenium 1.0 and Selenium-RC.

这是Selenium 1.0的旧的支持平台。它仍然应该适用于Selenium- rc的Selenium 2.0版本。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,039评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,426评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,417评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,868评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,892评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,692评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,416评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,326评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,782评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,957评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,102评论 1 350
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,790评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,442评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,996评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,113评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,332评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,044评论 2 355

推荐阅读更多精彩内容