使用 Selenium 实现基于 Web 的自动化测试

发表于:2017-07-24来源:未知作者:jib点击数: 标签:selenium
了解 Selenium 自动化测试框架的基本概念。学会搭建应用 Selenium 自动化测试框架的环境。搭建一个自集成的测试容器以持续测试 Selenium 测试用例。本文着重介绍传统 Selenium 1 的

Selenium 及其实现原理

Selenium 的主要功能包括:

1)测试与浏览器的兼容性测试应用程序能否兼容工作在不同浏览器和操作系统之上。

2)测试系统功能:录制用例自动生成测试脚本,用于回归功能测试或者系统用例说明。

简而言之,Selenium 就是一款可以录制用户操作,帮助 Web 测试人员简化重复劳动的工具。

目前为止 Selenium 有两种版本:

Selenium 1(Selenium RC,Remote Control):传统 Selenium 框架,支持多种编程语言脚本生成。但需要启动一个代理 Server 来处理用户与测试 Server 之间的通讯。

Selenium 2(Selenium Webdriver):全新自动化接口,突破了 Selenium 1 的一些限制,剔除了中间 Server,但由于写这篇文章为止自动生成脚本工具对 Selenium 2 的支持还不好,适合熟悉 Selenium API 的手写 case 测试人员使用。

阅读本文读者可以学习到以下技能:

了解 Selenium 自动化测试框架的基本概念。

学会搭建应用 Selenium 自动化测试框架的环境。

搭建一个自集成的测试容器以持续测试 Selenium 测试用例

本文着重介绍传统 Selenium 1 的原理及使用方法。接下来让我们看看 Selenium 是如何调用录制脚本并实现自动测试的。

Selenium 1 实现原理

Selenium 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行。如下图所示:

图 1. Remote Control 模式运行流程

之所以引入这个代理 Remote Control Server 是因为“同源策略”的限制,通过这个代理服务器来“欺骗”远程 Server,达到使其以为是从同一个地方 load 代码以正确返回请求数据的效果。

流程说明:

客户端建立与 selenium-RC server 的连接。

Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码

将 Selenese 代码传到客户端的 Selenium-Core 中。

Selenium-Core 翻译并解析执行用户录制的操作。

原文转自:http://www.uml.org.cn/Test/201707182.asp