Selenium RC

资源推荐:

视频资源: 软件测试相关系列视频

社区资源: 自动化测试交流群

 

Selenium1(Selenium RC)

Selenium1组件

       Selenium Server, 负责启动和关闭浏览器,以及解释和运行从测试程序传送过来的Selenese指令,并充当HTTP Proxy角色。

       Client开发库,开发库提供了编写测试脚本的api,用于与SeleniumServer进行指令交互。

Selenium1Architecture

       为了能更好的理解Selenium RCServer是如何工作以及为什么要使用代理注入的方式完成测试指令执行,首先必须要理解的是“同源策略”(The Same Origin Policy)。

       The Same Origin Policy, 市场上所有浏览器之所以会应用这个策略,其目的是为了阻止来自其他站点的javascript访问本站的web 信息,“同源策略”意思是浏览器仅执行当前访问的域(domain)下的代码,而不会执行来自其他站点的代码,如果这种方式行的通的话,我们很多信息就很容易被跨站方式窃取,也就是常说的XSS(Cross-Site Scripting).

       所以Selenium Core(Javascript库)想正确的在目标站点中执行Selenese指令,就必须将其与被测Web应用放置在同源位置。

       由于Selenium Core由javascript实现,所以它无法避免同源策略的限制,但是Selenium RC不受此限制,将Selenium RC作为一个代理来避免同源问题。

       关于同源策略及XSS的详细信息,可以参考如下文章:SameOrigin Policy ,XSS

       Selenium1架构如下图所示:

当我们执行一个测试的时候,会按如下步骤依次执行:

1.      客户端(测试脚本)与SelenIum-RC建立一个连接。

2.      Selenium-RC启动浏览器,并加载一个被注入了Selenium-Core的javascript的页面,此时浏览器会加载一个默认的用户配置,将浏览器代理设置为localhost:4444,其目的就是让浏览器所有请求及服务器所有响应都通过这个代理服务进行转发。

3.      客户端开始发送指令到Selenium-RC Server

4.      Selenium-RC Server收到指令后进行解释并触发已注入的javascript执行指令。

5.      浏览器收到javascript指令后,相当于真实用户与UI交互,并向HTTP Proxy发送Http请求。

6.      Selenium-RC Server与web server交互,获取到webserver响应后,将其伪装成与第二步加载的页面看起来是来自同一个服务器,依次规避浏览器同源策略。

7.      浏览器收到响应内容后,进行渲染等操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晒酷网-Ray

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值