- Selenium 的主要功能包括:
- 功能性测试:创建回归测试验证软件功能和用户需求。
- 兼容性测试:测试软件在不同操作系统和不同浏览器中是否运行正常。
- Selenium 不适合网站后台的性能测试,结合第三方工具可以对前端性能适当的评估。
- 使用自动化测试的条件:
- 需求变动不频繁
- 项目周期足够长
- 自动化测试脚本可以重复使用
- 手工测试无法完成的测试工作
- 自动化测试的误区
- 自动化测试比人工测试更先进、更高级。自动化测试既有有点也有局限性。对于需求不明确或界面经常变动的产品就不适合自动化测试。自动化测试和手工测试应该相辅相成、互相弥补。
- 所有的手工测试都应该被 100% 的自动化。有不少负面测试只能通过手工测试的方式完成并进行验收,自动化测试不是万能的。
- 自动化测试能有发现大量的缺陷,它比手工测试更高效。实际是自动化测试只能发现 30% 以下的软件缺陷。而手工测试反而能发现更广泛且很深层次的问题。
- 即使一次性的软件项目也应该采用自动化测试。自动化测试的投入成本,至少要在好几个版本发布之后才能体现其价值。
- 自动化测试只是测试工程师的事情,与开发人员没有关系。开发软件时,需要考虑软件本身的可测试性。如果开发人员没有考虑软件的可测试性,会导致软件难以测试,甚至无法实现自动化测试。
- 商业自动化软件更靠谱。若有特殊需求,商业自动化软件往往没有自由的可定制功能。开源的自动化测试工具因为其源代码开放,可根据特殊的需求修改。
- Selenium 1
- Selenium 1 就是 Selenium RC (Selenium Remote Control) ,主要包含两个部分:一个是 Selenium RC Server,另一个是提供各种变成语言绑定的客户端驱动。
- Selenium RC 的典型使用方式
- 测试人员基于客户端驱动提供的 API 编写测试脚本
- 测试程序打开浏览器,此时 Selenium RC Server 绑定 Selenium Core 并自动将他嵌入到浏览器中。Selenium Core 是一系列的 JavaScript 函数,它使用浏览器内置的 JavaScript翻译器来翻译和执行 Selenium Command
- 客户端驱动持续执行测试用例脚本并发送特定的命令到 Selenium RC Server。这些特定的命令即 Selense Command
- Selenium RC Server 解释 Selense Command,并触发 Selenium Core 执行对应的 JavaScript 代码完成相应操作。
- 浏览器上所有的请求和响应都通过 Selenium RC 的 HTTP 代理与实际的 Web 应用服务器交互,并且 Selenium RC收到响应就将页面传递给浏览器。但会篡改源,使页面看上去好像来自与 Selenium Core 同源的服务器。
- 浏览器接收到 Web 页面后,展示页面。
- Selenium 2
- 将 WebDriver API 集成进 Selenium RC。
- Selenium 2 不绑定任何测试框架。
- WebDriver 的实现和具体的浏览器相关。
- HtmlUnit Driver:目前运行速度最快、最轻量级的 WebDriver 实现。基于 HtmlUnit,纯 Java 实现,容易跨平台使用。
- Firefox Driver:最容易配置和使用的 WebDriver 。所有的准备工作都伴随 Java 语言绑定的客户端被打包在一起,只要下载 WebDriver Java Client Driver 就能使用
- Chrome Driver:针对 Google Chrome 浏览器开发的 WebDriver,跨平台性非常优异
- Internet Explorer Driver:只能运行在 Windows 操作系统上,运行速度略慢.
- 与 Selenium 1 相比,可以通过 Webdriver 测试手机应用
欢迎扫码关注微信公众号「一朵儿的软件测试之旅」一起学习交流