自动化测试工具——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/



如上文章如有用,自己收藏或推荐给需要的同学朋友皆可,后续继续更新这方面的文章(同时也欢迎各位有写作爱好和乐于分享朋友同学来稿,测试题材皆可,也可以是自己做软件测试的心得体会方面的内容)


本篇结束。


/



自动化测试工具——selenium的初步剖析



龙老师后续发布文章


长按二维码/微信扫码  关注:feiruan18

自动化测试群QQ可加:79887633和469830587

有问题,欢迎留言


文章如有用,欢迎转发 、分享 

让更多测试从业者受益 


喜欢请告诉龙老师,并推荐给朋友、同学,相识皆有缘





以上是关于自动化测试工具——selenium的初步剖析的主要内容,如果未能解决你的问题,请参考以下文章

黑盒测试实践 第一天

python,selenium,初步--L简

jmeter联合selenium webdriver进行自动化测试-简单1

Python使用selenium进行浏览器账户测试

数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索

selenium引入及概念