太鼓达人 发表于 2019-1-25 14:36:18

selenium 1和selenium 2的原理比较

一、 selenium 1的原理

selenium 1 包括以下两部分:selenium server、 Client Libraries组成


1. selenium server

selenium server负责控制浏览器的行为。主要有launcher,Http Proxy,selenium core。selenium core使用Selenium Server嵌入到浏览器页面中。实质上,selenium core是由JS函数组成,这样我们可以实现用程序对浏览器进行操作。


2. client Libraries

编写测试用例时控制selenium server的库


3. selenium RC与TestCase之间的关系


4. 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 2-selenium webDriver原理

1. 直接利用浏览器原生的API,封装成更加面向对象的selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身。如:截屏、窗口大小、启动、关闭、安装插件、配置证书等。

2. selenium 2是基于对象的测试。不同的对象拥有不同的操作方法。selenium 1则更多的基于方法的API。

3. WebDriver还支持Android和ios上的浏览器

4. 便于与junit和testNG结合

5. selenium Grid实现多平台同时测试,满足兼容性测试需求


Miss_love 发表于 2021-1-2 20:45:17

支持分享
页: [1]
查看完整版本: selenium 1和selenium 2的原理比较