selenium学习笔记——selenium RC工作原理及部署

selenium RC的实现原理

        selenium RC的实现原理如下图所示:

                              selenium学习笔记——selenium RC工作原理及部署_第1张图片https://mp.csdn.net/postedit

selenium RC主要由两部分组成:selenium Server+Client Libraries。其中Selenium  Server负责控制浏览器的行为。而Client Libraries则是给测试人员编写测试案例时用来控制selenium Server的库。

selenium1的自动化执行步骤如下:

  1. 测试人员基于Selenium支持的编程语言编写好测试脚本程序。
  2. 测试人员执行测试程序。
  3. 测试脚本程序发送访问网站的HTTP请求给Remote Control Server(RC)。
  4. RC 收到请求后,访问被测试网站并获取网页数据内容,并在网页中插入Selenium Core的JavaScript代码库,然后返回给测试人员执行测试的浏览器。
  5. 测试脚本在浏览器内部再调用selenium Core来执行测试代码逻辑,记录测试结果,完成测试。

    要理解以上步骤的执行,首先要理解以下概念:

1、同源策略

       同源策略是浏览器的JavaScript安全机制。其目的是确保一个站点的内容不会被另一个站点的脚本所访问。浏览器访问了某个域名的网站后,会打开此浏览器的网页,获取此网站的网页内容。网页内容中包含了要在网页本身里面执行的JavaScript语句或外部引用的JavaScript文件,浏览器会执行属于此域名下的JavaScript语句和文件。如果外部引用的JavaScript文件URL和点钱网页的域名不一致,那么浏览器会拒绝执行此JavaScript中的代码。例如:在浏览器一个选项卡中打开网站A,在另一个选项卡中打开网站B。网站B页面是不能操作网站A页面的内容。

        同源:相同的协议、端口、域名

        Selenium 1工具的核心部分是基于JavaScript代码库来实现的,这个库默认地和被测网站分离,它的URL和被测网站的域名是不一致的,那么selenium 1的JavaScript库是肯定会被禁止直行的,这样就无法实现对网站的自动化测试了。

2、代理注入

       为了绕过浏览器的安全机制,selenium 1使用了代理方法来解决这个问题。selenium Server 像客户端配置的HTTP代理一样工作,它位于浏览器和待测系统之间。接着其伪造待测系统的URL代理作为第三者,在双方间传递信息,它表现的像一个“web服务器”,想浏览器传递待测系统。作为代理selenium Server,它拥有篡改待测系统真实URL的能力。Selenium Server以代理的形式存在,通过修改WebSite的源信息,从而达到欺骗浏览器的目的,就这样,Selenium RC就轻松绕过了同源策略。

                    图 1. Remote Control 模式运行流程

selenium1代理模式的实现机制如下:

  1. 执行测试脚本,脚本向Selenium Server发起请求,要求和Selenium Server建立链接。
  2. Selenium Server的Launcher启动浏览器,向浏览器中插入Selenium Core的JavaScript代码库,并把浏览器的代理设置为Selenium Server的Http Proxy,确保后续Core的脚本域被访问的网站的脚本同源。
  3. 测试脚本向seleniumServer发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core发送JS命令通知Seleniim Core执行操作浏览器的请求。
  4. Selenium Core收到指令后,执行测试脚本里指定的网页操作命令。
  5. 浏览器收到新的请求信息,于是发送Http请求给Selenium给Selenium Core里的Http Proxy,请求新的Web页面。(因为第二步中,selenium Server在启动浏览器的时候,已经把浏览器的代理地址设定为Selenium Server的Http Proxy)
  6. Selenium Server接收到请求后,自行重组http请求,向应用服务器发送请求并获取返回的web页面。
  7. Selenium Server的Http Proxy把接收到的Web页面返回给浏览器。

      通过以上步骤,selenium1成功1绕过同源策略,实现基于代码库在被测试网页进行各种自动化测试操作。


selenium RC的环境配置

    虽然webDriver出现后,不建议再使用selenium RC的方法来进行自动化测试。但是不排除以前一些旧项目的脚本是使用selenium RC进行编写,后续需要继续维护。因此还是介绍一下selenium RC的环境配置。

     具体的配置步骤,网上已经有很多很详细的介绍,具体请参考:

    http://www.cnblogs.com/fnng/archive/2011/10/19/2217506.html

你可能感兴趣的:(自动化测试,selenium,软件测试,selenium学习笔记)