2011-03-29

    Selenium RC解析 - [Testing tools]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://webpeipei.blogbus.com/logs/112576210.html

    Selenium RC解析

    首先我们来看看Selenium的简单的工作架构图,如图我们可以得出以下流程。

    1. Selenium client drivertest case指令转换为Selenese 命令发送到Remote server
    2. Remote server将这些Selenese指令发送到Selenium core
    3. Selenium core运行Selenese,并触发一些JS函数来操作浏览器
      我们再来看看这些requestselenium内部传送的具体流程
    • Selenium client driver, 就是java ruby python啊什么设计的测试用例了,通过Selenium IDE可以方便的录制,然后自己可以做脚本做相应过的扩展。
    • Selenium server实际上包含以下模块,这些模块的具体作用在这一流程中都会有体现。
    1. Launcher
    2. Proxy Server
    3. Selenium Core

    1. Client driver 发送http request selenium server,建立与selenium server的链接。
    2. Selenium sever launcher模块会做两件事情
      a. 启动或者重用已经打开的浏览器,
      b. 加载Selenium corejavascript到浏览器
    3.  Client driverSelenese命令通过proxy server发送给 selenium core
    4. Selenium core编译Selenese 并触发相应JS函数来对浏览器执行操作
    5. Selenium core模块会执行相应的操作 发送requestproxy server(第一次一般是打开AUTURL
    6. 浏览器向AUT server发送request 并获取对应的web页面内容
    7. Selenium server把从 AUT server上获取的内容返回到页面

    为什么,为什么Selenium重要走Proxy server转一圈喃?这就涉及到Selenium-Core对浏览器的操作机制了,Selenium core是一堆JS函数,这对JS函数来对AUT程序的页面来操作,这就遇到一个问题The same origin policyhttp://en.wikipedia.org/wiki/Same_origin_policy

     

    同源策略The same origin policy

    同源策略可以追溯到Netscape Navigate 2.0是由Netscape提出来的一个很重要的安全策略,目前市面上的浏览器都严格使用这个安全策略。假设你用浏览器打开2个页面AB,页面A只能执行从A服务器上过来的JS B只能执行B服务器上过来的JS,这就是同源策略;通过这样就保证了一个网站的页面内容不会被另外的恶意脚本修改。

    如果没有同源策略,假设下你在浏览器tab1三打开了晚上银行的页面,tab2打开了一个恶意网站,那么恶意网站通过JS的注入就可以轻松的获取你的银行帐号和密码,这不是一个很可怕的事情吗?它是必不可缺的。

     

    参考文档: Selenium RC official document


    收藏到:Del.icio.us




    引用地址: