什么是 selenium?
selenium 自动化测试浏览器,它主要是用于 Web 应用程序的自动化测试,但肯定不只局限于此,同时支持所有基于 web 的管理任务自动化。
selenium 的特点:
开源,免费;
多浏览器支持:FireFox、Chrome、IE、Opera;
多平台支持:linux 、windows、MAC;
多语言支持:java、python、ruby、php、C#、JavaScript;
对 web 页面有良好的支持;
简单(API 简单)、灵活(用开发语言驱动);
支持分布式测试用例执行。
selenium 经历了两个版本,selenium 1.0 和 selenium 2.0 ,selenium 也不是简单一个工具,而是由几个工具组成,每个工具都有其特点和应用场景
selenium IDE 是嵌入到 Firefox 浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能。
那么什么情况下用到它呢?
快速的创建 bug 重现脚本,在测试人员的测试过程中,发现了 bug 之后可以通过 IDE 将重现的步骤录制下来,以帮助开发人员更容易的重现 bug。
IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,关于这个功能后而用到时再详细介绍。
Selenium Grid 是一种自动化的测试辅助工具,Grid 通过利用现有的计算机基础设施,能加快 Web-app的功能测试。利用 Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。其特点为:
并行执行;
通过一个主机统一控制用例在不同环境、不同浏览器下运行;
灵活添加变动测试机。
selenium RC 是 selenium 家族的核心工具,selenium RC 支持多种不同的语言编写自动化测试脚本,通过 selenium RC 的服务器作为代理服务器去访问应用从而达到测试的目的。
selenium RC 使用分 Client Libraries 和 selenium Server,Client Libraries 库主要主要用于编写测试脚本,用来控制 selenium Server 的库。Selenium Server 负责控制浏览器行为,总的来说,Selenium Server 主要包括 3 个部分:Launcher、Http Proxy、Core。其中 Selenium Core 是被 Selenium Server 嵌入到浏览器页面中的。其实 Selenium Core
就是一堆 JS 函数的集合,就是通过这些 JS 函数,我们才可以实现用程序对浏览器进行操作。Launcher 用于启动浏览器,把 selnium Core 加载到浏览器页面当中,并把浏览器的代理设置为 Selenium Server 的Http Proxy。
搞清了 selenium 1.0 的家族关系,selenium 2.0 是把 WebDriver 加入到了这个家族中;简单用公式表示为:
selenium 2.0=selenium 1.0 + WebDriver
需要强调的是,在 selenium 2.0 中主推的是 WebDriver ,WebDriver 是 selenium RC 的替代品,因为 selenium 为了向下兼容性,所以 selenium RC 并没有彻底抛弃,如果你使用 selenium 开发一个新自动化测试项目,强列推荐使用 WebDriver 。那么 selenium RC 与 webdriver 主要有什么区别呢?
selenium RC 在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行selenese 命令(selenese 是 selenium 命令集合)。
WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver 针对各个浏览器而开发,取代了嵌入到被测 Web 应用中的 JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver 还利用操作系统级的调用模拟用户输入。
selenium 与 WebDriver 原先属于两个不同的项目,WebDriver 的创建者 Simon Stewart 早在 2009 年八月的一份邮件中解释了项目合并的原因。
由于 selenium 基于 web 的自动化测试技术,我们的要操作的对象是页面,所以有必要对前端的技术和工具做一个简单的介绍。
HTML(Hyper Text Markup Language)中文为超文本标记语言,HTML 是网页的基础,它并不是
一种编程语言,而是一种标记语言(一套标记标签),但我们可以在 HTML 标签中嵌入各种前端脚本语言,如VBScript、JavaScript 等。下面是一个简单的 HTML 页面。
<html> 与 </html> 之间的文本描述网页
<title> 与</title> 之间的内容显示在浏览器的标题栏
<body> 与 </body> 之间的文本是可见的页面内容
<h1> 与 </h1> 之间的文本被显示为正文,h1 为页面中的一号字体现在我们通过浏览器打开任意
一个页面,在页面上右键菜单选择“查看网页源代码”,在复杂的前端代码中你依然可以找到 HTML 的身影。
JavaScript 是一种由 Netscape 公司的 LiveScript 发展而来的前端脚本语言(脚本语言是
一个种轻量级的语言),是一种解释性语言(代码执行不需要预编译);被设计用来向 HTML 页面添加交互行为,通常被直接嵌入到 HTML 页面。
文章来源:百度文库