自动化测试工具——selenium的初步剖析
Posted 软件测试分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试工具——selenium的初步剖析相关的知识,希望对你有一定的参考价值。
一、selenium的基本介绍:
首先selenium发展到现在已经经历了三个大版本:
1、第一个版本:selenium 1.0
包括:selenium IDE、selenium Grid、selenium RC三部分。
Selenium IDE作为Firefox上的一个插件,提供录制功能。
Selenium Grid 可以远程的控制到并在多个服务器上同时运行测试。
Selenium Remote Control是一个客户端/服务器系统,可以在本地或在其他电脑上控制Web浏览器,使用几乎任何编程语言和测试框架。
Selenium1是thoughtworks公司的一个产品经理,为了解决重复烦躁的验收工作,写的一个自动化测试工具,其原理是用JS注入的方式来模拟人工的操作,但是由于JS的同源策略,也就是JS只能在一个域中的页面进行通讯,如果跨域,则就不能访问了,所以导致了如果页面中有iframe时,就无法操作了。
2、第二个版本Selenium 2.0
Selenium2是Selenium1+WebDriver的产物,而WebDriver是Google的产品;Google收购Selenium1之后,整合了其自己的WebDriver,推出了Selenium WebDriver ,也就是我们所说的Selenium2。
启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的remote server。
客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。
Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。
3、第三个版本selenium 3.0
在支持的原生驱动方面更为丰富,在2.0的基础上有了更多的改进,所以长话短说,对于工作原理大家自行百度吧,现在常用的是selenium2或3,两者都是调用WebDriver,所以学习selenium主要是学习WebDriver的API
二、WebDriver介绍:
WebDriver利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriverAPI,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了SeleniumWebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。
在学习selenium WebDriver时可以使用以下任何一门语言编写测试脚本:
Java、C#、Ruby、Python、javascript(推荐python,原因太多)
更多相关介绍可以到selenium官网:https://www.seleniumhq.org/download/
如上文章如有用,自己收藏或推荐给需要的同学朋友皆可,后续继续更新这方面的文章(同时也欢迎各位有写作爱好和乐于分享朋友同学来稿,测试题材皆可,也可以是自己做软件测试的心得体会方面的内容)
本篇结束。
/
龙老师后续发布文章
长按二维码/微信扫码 关注:feiruan18
自动化测试群QQ可加:79887633和469830587
有问题,欢迎留言
文章如有用,欢迎转发 、分享
让更多测试从业者受益
喜欢请告诉龙老师,并推荐给朋友、同学,相识皆有缘
以上是关于自动化测试工具——selenium的初步剖析的主要内容,如果未能解决你的问题,请参考以下文章