接口自动化测试-selenium1和2的原理比较
更新时间:2021-10-08 01:41:08 作者:admin 浏览:548
接口自动化测试-selenium1和2的原理比较
一、selenium1的原理
selenium1包括以下两部分:seleniumserver、ClientLibraries组成
1.seleniumserver
seleniumserver负责控制浏览器的行为。主要有launcher,HttpProxy,seleniumcore。seleniumcore使用SeleniumServer嵌入到浏览器页面中。实质上,seleniumcore是由JS函数组成,这样我们可以实现用程序对浏览器进行操作。
2.clientLibraries
编写测试用例时控制seleniumserver的库
3.seleniumRC与TestCase之间的关系
4.testCase工作过程
(1).测试案例(Testcase)通过ClientLib的接口向SeleniumServer发送Http请求,要求和SeleniumServer建立连接。
为什么要通过发送Http请求控制SeleniumServer而不采用其他方式呢?从上文可以看出,SeleniumServer是一个独立的中间服务器(确切地说是代理服务器),它可以架设在其他机器上!所以测试案例通过发送HTTP请求去控制SeleniumServer是很正常的。
(2).SeleniumServer的Launcher启动浏览器,把SeleniumCore加载入浏览器页面当中,并把浏览器的代理设置为SeleniumServer的HttpProxy。
(3).测试案例通过ClientLib的接口向SeleniumServer发送Http请求,SeleniumServer对请求进行解析,然后通过HttpProxy发送JS命令通知SeleniumCore执行操作浏览器的动作。
(4).SeleniumCore接收到指令后,执行操作。
(5).浏览器收到新的页面请求信息(因为在(4)中,SeleniumCore的操作可能引发新的页面请求),于是发送Http请求,请求新的Web页面。
由于SeleniumServer在启动浏览器时做了手脚,所以SeleniumServer会接收到所有由它启动的浏览器发送的请求。
(6).SeleniumServer接收到浏览器的发送的Http请求后,自己重组Http请求,获取对应的Web页面。
(7).SeleniumServer的HttpProxy把接收的Web页面返回给浏览器。
二、selenium2-seleniumwebDriver原理
1.直接利用浏览器原生的API,封装成更加面向对象的seleniumWebDriverAPI,直接操作浏览器页面里的元素,甚至操作浏览器本身。如:截屏、窗口大小、启动、关闭、安装插件、配置证书等。
2.selenium2是基于对象的测试。不同的对象拥有不同的操作方法。selenium1则更多的基于方法的API。
3.WebDriver还支持Android和ios上的浏览器
4.便于与junit和testNG结合
5.seleniumGrid实现多平台同时测试,满足兼容性测试需求
以上是关于selenium1和2的原理比较,由多测师亲自撰写。https://www.aichudan.com/