代码改变世界

浏览器自动化-Selenium概述

2018-02-09 11:17  Weiweim  阅读(504)  评论(0编辑  收藏  举报

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

  • 频繁回归测试
  • 快速反馈给开发人员
  • 几乎无限次的测试用例迭代
  • 支持敏捷和极限开发方法
  • 测试用例的规范文档
  • 定制的缺陷报告
  • 通过手动测试发现缺陷

自动化还是不自动化?

有时候手动测试可能更合适。例如,如果应用程序的用户界面在不久的将来会发生相当大的变化,那么任何自动化都可能需要重写。另外,有时候根本没有足够的时间来构建测试自动化。就短期而言,手动测试可能更有效。

介绍Selenium

Selenium是一套不同的软件工具,整套工具产生了丰富的测试功能,专门针对所有类型的Web应用程序的测试需求。允许用于查找UI元素的许多选项,并将预期的测试结果与实际的应用程序行为进行比较。Selenium的主要功能之一是支持在多个浏览器平台上执行测试。

Selenium项目简史

Selenium在2004年由Jason Huggins在ThoughtWorks的一个内部应用程序测试中诞生。

他开发了一个Javascript库,可以驱动与页面的交互,允许他自动重新运行多个浏览器的测试。该库最终成为Selenium Core,它是Selenium Remote Control(RC)和Selenium IDE所有功能的基础。

2006年,一位名叫西蒙·斯图尔特(Simon Stewart)的杰出工程师开始了一个名为WebDriver的项目。Simon想要一个测试工具,通过浏览器和操作系统的“native”方法直接与浏览器对话,从而避免了沙箱化Javascript环境的限制。WebDriver项目的开始是为了解决Selenium的痛点。

200986日,WebDriver和Selenium社区的联合电子邮件中,WebDriver的创建者Simon Stewart详细解释了WebDriver和Selenium合并的最好解释。

“为什么项目合并?部分原因是WebDriver解决了硒中的一些缺陷(例如,能够绕过JS沙盒,而且我们有一个非常漂亮的API),部分原因是硒解决了WebDriver中的一些缺点(比如支持更广泛的浏览器)和一方面是因为主要的硒贡献者,我觉得这是向用户提供最好的框架的最好方式。“
 
Selenium工具套件(Selenium由多个软件工具组成):
  • Selenium 2(又名Selenium WebDriver

它支持WebDriver API和底层技术,以及WebDriver API下的Selenium 1技术,以便在移植测试时获得最大的灵活性。另外,Selenium 2仍然运行Selenium 1的Selenium RC接口以实现向后兼容。

  • Selenium1(又名SeleniumRCRemote Control

在WebDriver / Selenium合并之前,Selenium RC是Selenium 2的主要工程,现在Selenium 1已被弃用,并没有得到积极的支持(主要是维护模式)。

  • Selenium IDE

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

  • Selenium - Grid
Selenium-Grid允许Selenium RC解决方案针对大型测试套件和必须在多个环境中运行的测试套件进行扩展。Selenium Grid允许您并行运行测试,也就是说,可以在不同的远程机器上同时运行不同的测试这有两个好处。首先,如果你有一个大的测试套件,或者一个运行速度慢的测试套件,你可以通过使用Selenium Grid将你的测试套件划分为同时使用不同的机器同时运行不同的测试。而且,如果必须在多个环境中运行测试套件,可以让不同的远程机器同时支持并运行测试。在每种情况下,Selenium Grid通过使用并行处理大大缩短了运行套件所花费的时间。
 
选择Selenium工具
 
许多人开始使用Selenium IDE。如果还不熟悉编程或脚本语言,则可以使用Selenium IDE熟悉Selenium命令。使用IDE,可以快速创建简单的测试,有时在几秒钟内。但是,并不建议使用Selenium IDE进行所有测试自动化。为了有效地使用Selenium,需要使用Selenium 2或Selenium 1以及其中一种支持的编程语言来构建和运行测试。Selenium开发人员正在计划将Selenium-WebDriver API作为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测试脚本和Selenium的框架中,以定制测试自动化。