Selenium工作原理

Selenium是一个真正的跨平台、跨浏览器,并且多语言支持的Web自动化测试工具。

Selenium Grid是Selenium中专门负责分布式执行测试代码的组件,主要起到的是一个类似Hub的作用。
首先,它会接受Agent的注册;这个Agent就是Selenium Server,即可以提供测试能力的宿主机器。
之后,Selenium Grid就可以接受来自Client端的调用;这个Client就是测试脚本,即驱动测试执行的指令。
最后,Selenium Grid根据Client端的调用指令来驱动Agent的行为;它的特点是可以同时支持多个Agent和Client,这样就可以同时有多份测试脚本在多个Agent上并行执行,从而达到分布式执行的效果。而并行执行测试的好处就是提高了测试效率。

Selenium Server是Selenium 2的重要组成部分,其主要功能是提供远程的与WebDriver进行通信的服务。Selenium 2通常情况下是不需要用到Selenium Server的,直接使用Selenium WebDriver就可以了,但以下三种情况除外:
□ 需要在远程机器的浏览器上执行测试代码时。
□ 需要使用Selenium Grid进行分布式测试执行时。
□ 需要用到HtmlUnit驱动但却没有使用Java开发脚本时。

 

 优化后:

1.如果希望Selenium 能在本地机器上执行,那么必须在本机上安装相应浏览器的WebDriver

2.其中,每一个Driver都是一个Server,它们启动后会监听一个默认的端口并等待测试脚本发送指令请求,并在接收到请求之后会根据指令进行相关的浏览器接口调用

3.在执行测试脚本时并不需要手动启动这个Driver进程,实际上它会在测试脚本正式执行测试步骤之前自动启动。所以在执行测试脚本的时候虽然没有启动Driver进程,但在后台其实已经被启动了,可以通过在执行测试脚本期间查看进程管理器来验证它。也可以手动启动这个Driver程序,并使用测试脚本与之进行通信,来执行具体的测试步骤

4.WebDriver之所以能直接驱动浏览器而不再需要代理欺骗,是因为它们使用了各种方法来实现对浏览器底层API的调用,从而使得WebDriver绕过了同源策略和JavaScript沙箱的限制。此外,WebDriver以提供服务的形式并通过JSON Wire Protocol协议来与测试脚本进行通信

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值