今天大部分软件应用都已经是基于 web 的。对 web 应用的测试广泛应用于大多数公司和组织。像 XP 和敏捷这样新的软件过程认为在大多数组织中测试和质量保证依然是低度开发的。软件测试经常是手工处理的。有时这是很有效率的,但是很多组织并没有意识到有其他选择或者缺少执行的技能。而这些选择在很多情景下可以通过提高测试的效率很大的提升软件开发的效率。
测试自动化就是答案。测试自动化意味着当需要的时候利用工具跑重复的测试。测试自动化有很多好处。最大的好处在于重复的执行测试和执行测试的速度。有很多商业和开源的软件面向测试自动化, Selenium 可能是应用最广泛的开源解决方案。这个用户手册会帮助新手和老用户更快的学习构建 web 应用的测试自动化。
这个手册介绍 Selenium, 全面讲解各项知识,并且提供来源于社区的最佳实践 . 很多例子和技术信息包含在内。我们希望这本手册帮助新用户 ” 打开一个新的世界 ”. 让用户拥有很多选择。
我们希望这个手册和 Selenium 一起给予读者软件测试效率上的提升。
Selenium 简介
Selenium 是一套工具支持web 应用测试自动化的快速开发。Selenium 本身提供很多测试工具,远远不止web 应用使用。这些选项非常复杂,包括定位UI 的元素和比较测试结果和实际的行为。
Selenium 的一个核心功能是支持执行测试在多个浏览器中。
Selenium 是由三个主要的工具组成. 在测试过程中每一个都有确切的角色
Selenium-IDE 是一个集成开发环境用来创建test cases. 他表现为一个 Firefox 插件并且提供容易使用的界面用户创建和运行测试用例或测试集合。Selenium-IDE 有一个测试功能,可以记录用户的行为并且可以保存为重复运行的脚本. 并且有一个右键菜单集成在firefox 中,它可以让用户选取一个断言或者针对选中部分的验证。 Selenium-IDE 也提供了对测试用例的编辑功能用于更方便的控制.
虽然Selenium-IDE 是一个Firefox 插件,它生成的插件可以通过Selenium-RC 和命令行执行在其他浏览器里面.
Selenium-RC 准许开发用编程语言开发复杂测试逻辑. 例如,应用测试返回了一个结果集,如果需要针对每一项执行测试,用编程语言可以遍历结果集调用脚本执行测试
Selenium-RC 提供了一个 API (Application Programming Interface) and 库针对以下语言: HTML, Java, C#, Perl, PHP, Python, and Ruby. 通过语言执行测试使得自动化更好的和项目的环境结合起来.
Selenium-Grid 准许Selenium-RC 针对大的测试做到均衡负载或者必须在多个环境执行测试用例. Selenium-Grid 拥有多个Selenium-RC 实例在多种浏览器和浏览器环境下, 这些实例都会注册在一个中心里面. 当测试用例被发送给中心后,中心会发送到相应的rc 实例,这里测试是并行执行的,所以理论上测试时间就是最长的单个测试的时间。
Supported Browsers ¶
Browser |
Selenium-IDE |
Selenium-RC |
Operating Systems |
Firefox 3 |
1.0 Beta-1 & 1.0 Beta-2: Record and playback tests |
Start browser, run tests |
Windows, Linux, Mac |
Firefox 2 |
1.0 Beta-1: Record and playback tests |
Start browser, run tests |
Windows, Linux, Mac |
IE 8 |
|
Under development |
Windows |
IE 7 |
Test execution only via Selenium-RC* |
Start browser, run tests |
Windows |
Safari 3 |
Test execution only via Selenium-RC |
Start browser, run tests |
Mac |
Safari 2 |
Test execution only via Selenium-RC |
Start browser, run tests |
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(Windows) |
Start browser, run tests |
Windows |
Others |
Test execution only via Selenium-RC |
Partial support possible** |
As applicable |
* firefox 上生成的测试可以通过Selenium-RC 脚本运行在其他机器上.
** Selenium-RC server 可以启动任何浏览器,不过依赖于浏览器的安全设置, 一些安全设置会影响到验证功能.
Selenium 非常灵活. 有很多种方法可以添加功能到Selenium 框架中应对特殊的测试需求. 这可能是Selenium 最大的特. Selenium-RC 支持多种测试语言可以让测试开发开发任何逻辑.
Selenium-IDE 支持“用户扩展”用于支持进一步的定制用户自己的需要. 并且可以定义怎么生成Selenium-RC 代码. 这可以让代码更适合自己的开发架构,最后selenium 是开源的,它的代码都是可以随便修改的。