Selenium私房菜系列6 -- 深入了解Selenium RC工作原理(1)【QQ】

前一篇已经比较详细讲述了如何使用Selenium RC进行Web测试,但到底Selenium RC是什么?或者它由哪几部分组成呢??

一.Selenium RC的组成:

关于这个问题,我拿了官网上的一幅图来说明这个问题。

Selenium RC主要由两部分组成:

(1).Selenium Server:

Selenium Server负责控制浏览器行为,总的来说,Selenium Server主要包括3个部分:LauncherHttp ProxySelenium Core。其中Selenium Core是被Selenium Server嵌入到浏览器页面中的。其实Selenium Core就是一堆JS函数的集合,就是通过这些JS函数,我们才可以实现用程序对浏览器进行操作。

(2).Client Libraries:

写测试案例时用来控制Selenium Server的库。

二.Selenium RC与Testcase的关系

先看下图:

(1).测试案例(Testcase)通过Client Lib的接口向Selenium Server发送Http请求,要求和Selenium Server建立连接。

为什么要通过发送Http请求控制Selenium Server而不采用其他方式呢?从上文可以看出,Selenium Server是一个独立的中间服务器(确切地说是代理服务器),它可以架设在其他机器上!所以测试案例通过发送HTTP请求去控制Selenium Server是很正常的。

(2).Selenium Server的Launcher启动浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy。

(3).测试案例通过Client Lib的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作。

(4).Selenium Core接收到指令后,执行操作。

(5).浏览器收到新的页面请求信息(因为在(4)中,Selenium Core的操作可能引发新的页面请求),于是发送Http请求,请求新的Web页面。
由于Selenium Server在启动浏览器时做了手脚,所以Selenium Server会接收到所有由它启动的浏览器发送的请求。

(6).Selenium Server接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。

(7).Selenium Server的Http Proxy把接收的Web页面返回给浏览器。

为什么Selenium RC中的Selenium Server需要以这种代理服务器的形式存在呢?下一篇继续介绍:>

时间: 2024-10-08 09:30:27

Selenium私房菜系列6 -- 深入了解Selenium RC工作原理(1)【QQ】的相关文章

Selenium私房菜系列8 -- 玩转Selenium Server【OO】

本篇主要是想更进一步介绍Selenium Server的工作原理,这次我们从Selenium Server的交互模式开始. 在<第一个Selenium RC测试案例>中,我们以命令“java -jar selenium-server.jar”启动了Selenium Server,其实在启动Selenium Server时,我们还可以加上各种参数(具体的参数请参考<Selenium RC服务器命令行参数列表>), 而开启Selenium Server交互模式的命令为“java -ja

Selenium私房菜系列7 -- 深入了解Selenium RC工作原理(2)【II】

继续前一篇的问题,为什么Selenium RC中的Selenium Server需要以这种代理服务器的形式存在?其实,这和浏览器的“同源策略”(The Same Origin Policy)有关. 一.什么是同源策略  同源策略,它是由Netscape提出的一个著名的安全策略,现在所有的可支持javascript的浏览器都会使用这个策略. 为什么需要同源策略,这里举个例子:    假设现在没有同源策略,会发生什么事情呢?大家知道,JavaScript可以做很多东西,比如:读取/修改网页中某个值.

Selenium私房菜系列4 -- Selenium IDE的使用【QQ】

前面说过,Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换,所以Selenium IDE+Firebug会成为你日后写测试案例的两大助手(IE下可以使用Selenium Core+IEDevelperToolBar). Selenium IDE下载:http://seleniumhq.org/download/ Firebug下载:https://addons.mozilla.org/firefox/addon/1843 下面将演示Selenium的使用: 1.

[转]Selenium私房菜系列1 -- Selenium简介

一.Selenium是什么? Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款: 1.Selenium Core:支持DHTML的测试案例(效果类似数据驱动测试),它是Selenium  IDE和Selenium  RC的引擎. 2.Selenium IDE:FireFox的一个插件,支持脚本录制. 3.Selenium RC:Selenium Remote Control.后续的系列文章我会主要针对Selenium RC展开介绍.

Selenium私房菜系列3 -- Selenium API参考手册【ZZ】

大家在编写测试案例想查阅Selenium API说明时,可以查阅本文,否则请跳过! (注:这里API版本比较老,新版本的Selenium的API在这里不一定能找到.) Selenium API说明文档(转载自:http://wiki.javascud.org/display/springs/SeleniumRefrence) Commands (命令) Action对当前状态进行操作失败时,停止测试 Assertion校验是否有产生正确的值 Element Locators指定HTML中的某元素

Selenium私房菜系列2 -- XPath的使用【ZZ】

在编写Selenium案例时,少不免是要用到XPath的,现在外面关于XPath使用的参考资料很多,下面我直接转一篇关于XPath使用的文档.如果对XPath不熟悉请参考下文,你不需要去百度/Google搜索关于XPath的资料,因为下面的内容已经足够你写测试时使用,如果你已熟悉XPath,本章大可忽略跳过. xpath的语法 (转载自:http://www.cnblogs.com/jianjialin/archive/2009/02/01/1382056.html XPath 是XML的查询语

Selenium私房菜系列9 -- Selenium RC服务器命令行参数列表【VV】

使用示例: java -jar selenium-server.jar [-interactive] [options] -port <nnnn>: selenium服务器使用的端口号(默认 4444) -timeout <nnnn>: 我们放弃前(超时)所等待的秒数 -interactive: 进入交互模式.参考教程获取更多信息 -multiWindow: 进入被测试网站都在单独窗口打开的模式,并且selenium支持frame -forcedBrowserMode <br

【鸟哥的Linux私房菜】 第16章 例行性工作(crontab)

在这章中主要讲述了两个命令at(batch) 和 crontab, 其中batch可以理解为at的一种特殊执行方式. at: 是个可以处理仅执行一次就结束调度的命令,需要atd服务: crontab: 它所设置的工作会一直循环执行下去:需要crond 服务: 仅执行一次的工作调度 : at 1. 打开atd服务   # /etc/init.d/atd restart  //重启atd服务    # chkconfig atd on   // 加入开机启动 2. at的运行方式   执行逻辑:事实

【原创】源码角度分析Android的消息机制系列(六)——Handler的工作原理

ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 先看Handler的定义: /** * A Handler allows you to send and process {@link Message} and Runnable * objects associated with a thread's {@link MessageQueue}. Each Handler * instance is associated with a single thread and that thre