介绍 (selenium 中文 硒)
Web应用程序的自动化测试
今天许多,也许是大多数应用软件编写基于网络的应用,可以在互联网浏览器上运行。 测试这些应用程序的有效性,公司和组织之间的广泛变化。 在一个高度互动性和响应的软件过程,其中许多组织都在使用某种形式的敏捷方法的时代,自动化测试经常成为一个软件项目的需求。 测试自动化往往是答案。 自动化测试是指使用软件工具对被测试的应用程序运行的重复性测试。 回归测试提供响应。自动化测试有许多优点。 最相关的测试和速度测试可以执行的重复性。 也有商业和开源工具可用于协助测试自动化的发展。 selenium可能是最广泛使用的开源解决方案。 本用户指南将协助新的和经验丰富的硒用户学习有效的技术在楼宇自动化测试Web应用程序。本用户指南介绍了硒,教的特点,并介绍常用的最佳实践积累硒社区。 提供了许多例子。 此外,提供技术信息的内部结构和硒硒的建议用途。自动化测试有特定的优势,提高长期效率的一个软件开发团队的测试过程。 测试自动化的支持:- 频繁的回归测试
- 快速反馈给开发商
- 测试用例执行的几乎无限的迭代
- 支持敏捷和极端的开发方法
- 测试用例的纪律文件
- 定制的缺陷报告
- 手动测试错过发现缺陷
自动化或不自动吗
自动化总是有利的吗? 应该在什么时候决定自动化测试用例?它并不总是有利的自动化测试用例。 有次手动测试时,可能会更合适。 例如,如果应用程序的用户界面将在不久的将来大大改变,那么任何自动化可能需要重写反正。 此外,有时我们确实没有足够的时间来建立自动化测试。 在短期内,手动测试可能更有效。 如果应用程序有一个非常紧迫的最后期限,目前有没有可用的测试自动化,它必须在规定时间内完成测试,然后手动测试是最好的解决办法。引进selenium
硒是一组不同的软件工具,每一个不同的方式来支持自动化测试。 大多数硒QA工程师专注于一个或两个工具,最符合他们的项目的需求,但学习的所有工具会给你许多不同的选项,接近不同的测试自动化问题。 在一套专门针对所有类型的Web应用程序的测试需要的测试功能丰富的工具,结果整个套件。 这些操作都非常灵活,定位UI元素和预期的测试结果比较,对实际应用程序的行为,让许多选项。 硒的主要功能之一是支持多个浏览器平台上执行的测试。简史selenium项目
硒在2004年第一次来到生命,当贾森哈金斯测试在ThoughtWorks内部的应用程序。 作为一个聪明的家伙,他意识到有更好的用途,他的时间比手动加紧通过相同的测试,他提出的每一个变化。 他开发了一个JavaScript库,可以推动与页面的交互,让他自动重新对多个浏览器测试。 该库最终成为核心硒,硒的远程控制(RC)和硒IDE的所有功能的基础。 Selenium RC的是开创性,因为没有其他产品允许你控制浏览器从您选择的语言。而硒是一个巨大的工具,它是没有缺点。 由于其基于JavaScript的自动化引擎和安全限制适用于JavaScript的浏览器,不同的事情变得不可能做到。 为了使事情“最差”的webapps随着时间的推移变得越来越强大,使用新的浏览器提供各种特殊功能,使这个限制,越来越多的痛苦。勇敢的工程师在谷歌任命西蒙·斯图尔特在2006年开始一个项目,他呼吁WebDriver工作。 谷歌长期以来一直是硒的重度使用者,但测试人员不得不解决了产品的限制。 西蒙想要一个测试工具,说话直接到浏览器使用的浏览器和操作系统的'本土'的方法,从而避免沙盒的JavaScript环境的限制。 WebDriver项目开始,目的是解决硒的痛点。跳转到2008年。 在北京奥运会标志中国的抵达作为一个全球大国,在美国庞大的按揭默认触发的最严重的大萧条以来的国际经济衰退,“黑暗骑士”是观看每一个人类(两次)仍的希斯莱杰不合时宜的损失缫丝,。 但在这一年中最重要的故事是硒和WebDriver合并。 硒具有巨大的社会和商业支持,但WebDriver显然是未来的工具。加入这两个工具,为所有用户提供了一套通用的功能,并带来了一个屋檐下的自动化测试中的一些最聪明的头脑。 也许WebDriver,硒为何合并的最好的解释详细WebDriver的创造者,由西蒙·斯图尔特,2009年8月6日,在联合的电子邮件WebDriver和硒社会。“为什么合并的项目? 部分原因是因为webdriver解决一些缺点(可以绕过沙箱的JS,例如。硒和我们已经有了一个华丽的API),部分是因为硒在webdriver解决一些不足之处(如支持范围更广的浏览器)部分原因是主要硒贡献者,我觉得这是最好的方式,为用户提供尽可能最好的框架。“
selenium的工具套件
硒是由多个软件工具。 每个人都有一个特定的角色。Selenium(亦称Webdriver)
硒二是项目的未来发展方向和最新的除硒工具箱。 这个全新的自动化工具提供各种真棒功能,包括一个更具凝聚力和面向对象的API,以及老实施限制的答案。正如你可以看到在硒项目的简史 ,硒和WebDriver开发商认为,这两种工具的优势和合并两个项目将使一个更强大的自动化工具。2.0硒是这种努力的产物。 它支持WebDriver API和底层技术,随着硒下方WebDriver API最大的灵活性,在移植测试技术。 此外,硒2仍然运行1硒的硒向后兼容的遥控接口。selenium(亦称selenium RC或远程控制)
正如你可以看到硒项目的简史 ,Selenium RC的硒很长一段时间的主要项目,前WebDriver /硒合并带来的硒2,最新的和更强大的工具。硒1仍积极支持(大多维护模式),并提供一些功能,可能无法在硒2一段时间,包括支持多国语言的Java,JavaScript,红宝石,PHP,Python中的Perl和C#中和支持几乎所有的浏览器有。Selenium IDE的
硒的IDE(集成开发环境)是一个用于构建测试脚本的原型工具。 它是一个Firefox插件,并提供一个易于使用的界面,用于开发自动化测试。 硒IDE具有录音功能,记录用户的动作,因为他们执行,然后出口他们在以后可以执行许多编程语言之一的可重复使用的脚本。注意Selenium IDE的,即使有一个“保存”功能,使用户能够保持测试,在以后的进口和执行基于表的格式, 它不是设计来运行你的测试通过,也不是旨在建立自动化测试,你会需要 。 具体来说,硒IDE不提供迭代或条件语句,测试脚本。 在编写的时候,有没有计划增加这样的事情。 原因是部分技术和部分硒鼓励开发商在测试自动化的最佳实践总是需要一定的编程量。Selenium IDE是仅仅打算作为一个快速原型开发工具 。 硒的开发建议严重的,强大的自动化测试,无论是硒或硒1被用于许多支持的编程语言之一。
selenium网络
硒电网允许Selenium RC的解决方案,以规模大的测试套件和测试必须在多种环境中运行的套房。 硒电网允许你并行运行测试,也就是说,不同的测试,可以运行在同一时间不同的远程机器上。 这有两个好处。 首先,如果你有一个大的测试套件,或缓慢运行的测试套件,可以提高其性能大幅使用Selenium网格划分的测试套件来使用这些不同的机器在同一时间运行不同的测试。 此外,如果您必须运行在多种环境中的测试套件,你可以有不同的远程机器上的支持和他们在同一时间运行测试。 硒电网在每一种情况下,大大提高了运行您的套房,利用并行处理所花费的时间。选择您的selenium工具
许多人开始使用Selenium IDE。 如果你是不是已经经历了一个编程或脚本语言,您可以使用Selenium IDE熟悉Selenium命令。 使用IDE,您可以创建简单的测试,有时在几秒钟内迅速。然而,我们不建议你做你所有的自动化测试使用Selenium IDE。 为了有效地使用Selenium,您将需要建立和运行测试,使用2硒或硒1配合与支持的编程语言之一。 你选择哪一个取决于你。在书面硒开发规划为未来的发展方向硒的硒WebDriver API。 硒1提供向后兼容性。 尽管如此,都有长处和弱点在本文件中的相应章节中讨论。我们建议那些是完全新的硒读通过这些路段。 然而,对于那些首次采用硒,因此从头建立一个新的测试套件,你可能会不想去,因为这是硒的一部分,在未来,将继续支持与硒2。支持的浏览器和平台
硒2.0,支持的浏览器取决于您是否使用硒WebDriver或Selenium-RC的。selenium WebDriver
硒WebDriver支持以下浏览器,随着这些浏览器兼容的操作系统。- 谷歌Chrome 12.0.712.0 +
- Internet Explorer 6中,7,8,9 - 32和64位(如适用)
- 火狐3.0,3.5,3.6,4.0,5.0,6,7
- 歌剧11.5 +
- HtmlUnit 2.9
- 机器人 - 2.3 +手机和平板电脑(设备和模拟器)
- 用于手机的iOS 3 +(设备模拟器)和3.2片+(设备和模拟器)
1.0 selenium和selenium RC。
这是旧的,硒1.0支持platfom。 它应该仍然适用硒Selenium-RC的2.0版本。浏览器 | seleniumIDE | selenium(钢筋混凝土) | 操作系统 |
火狐3.x版 | 记录和回放测试 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
火狐3 | 记录和回放测试 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
Firefox 2中 | 记录和回放测试 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
IE浏览器8 | 只能通过Selenium RC的测试执行* | 启动浏览器,运行测试 | 窗口 |
IE 7的 | 只能通过Selenium RC的测试执行* | 启动浏览器,运行测试 | 窗口 |
IE 6中 | 只能通过Selenium RC的测试执行* | 启动浏览器,运行测试 | 窗口 |
Safari 4中 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Mac |
野生动物园3 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Mac |
Safari浏览器2 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Mac |
Opera 10的 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
Opera 9中 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
Opera 8的 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
谷歌浏览器 | 只能通过Selenium RC的测试执行 | 启动浏览器,运行测试 | 在Windows,Linux,Mac和 |
他人 | 只能通过Selenium RC的测试执行 | 部分支持** | (如适用) |
灵活性和可扩展性
你会发现,硒是高度灵活的。 有许多方法可以添加功能Selenium测试脚本和硒定制您的自动化测试框架。 与其他自动化工具相比,这可能是硒的最大强度。 这些自定义的描述整个文档在不同的地方。 此外,由于硒是开放源码,源码可以随时被下载和修改。