浏览器自动化-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的痛点。
2009年8月6日,WebDriver和Selenium社区的联合电子邮件中,WebDriver的创建者Simon Stewart详细解释了WebDriver和Selenium合并的最好解释。
“为什么项目合并?部分原因是WebDriver解决了硒中的一些缺陷(例如,能够绕过JS沙盒,而且我们有一个非常漂亮的API),部分原因是硒解决了WebDriver中的一些缺点(比如支持更广泛的浏览器)和一方面是因为主要的硒贡献者,我觉得这是向用户提供最好的框架的最好方式。“
- Selenium 2(又名Selenium WebDriver)
它支持WebDriver API和底层技术,以及WebDriver API下的Selenium 1技术,以便在移植测试时获得最大的灵活性。另外,Selenium 2仍然运行Selenium 1的Selenium RC接口以实现向后兼容。
- Selenium1(又名SeleniumRC或 Remote Control)
在WebDriver / Selenium合并之前,Selenium RC是Selenium 2的主要工程,现在Selenium 1已被弃用,并没有得到积极的支持(主要是维护模式)。
- Selenium IDE
Selenium IDE(集成开发环境)是构建测试脚本的原型工具。它是一个Firefox插件,为开发自动化测试提供了一个易于使用的界面。Selenium IDE具有录制功能,可以在用户执行操作时记录用户操作,然后将其作为可重用脚本以某一编程语言导出。
- Selenium - Grid
- 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的框架中,以定制测试自动化。