selenium简介

selenium是一块web自动化测试工具,主要用来进行ui自动化测试。官网上对于自己的描述就是“它能够是浏览器自动化。”当然他的功能不仅仅局限于此。我们可以避免一些重复劳动,比如说重复的点击等等的操作。甚至是抢月饼。

selenium是能够跨平台的自动控制多中浏览器的工具集合(注意是多个工具)。他的特点有:

  • 能够运行与多种浏览器以及系统
  • 可以在多中语言环境以及测试框架下使用。

历史

selenium历经了3代的发展,从1到2到3,其中经过了很多。

最初selenium是由ThoughtWorks的一个工程师,做了一个驱动页面交互的js库,以避免反复的手工测试。后来这个库就成为了selenium的核心,他是工具selenium rc以及selenium ide的核心部分,也就是selenium1.

后来由于js自身的限制,导致出现几个问题:

  • js有很多安全限制,功能无法全部实现
  • 网站越来越强大,他们使用了浏览器的各种新特性

于是,一个google的工程师,开了一个项目叫做webdriver。目的是打造一个能够通过浏览器、操作系统的本地方法直接和浏览器进行通话的测试工具,其实本质上就是解决js的沙箱问题。

后来selenium与webdirve在2008年合并,就成了selenium2。这个版本也是比较完善的一个版本,但是有一个问题,selenium2的浏览器驱动问题。其中firefox驱动内置的,但是其他的如chrome等等都是由社区开发的,并非官方版本 ,所以会出现在某些浏览器上能够点击,换了一个就不行了。2的出现,代表了一个趋势,就是webDriver。此刻的2还是兼容1的。

顺便说一句,selenium rc与webdriver驱动浏览器的方式是不一样的。对于所有类型的浏览器Selenium-RC都是使用的同一种方法:当浏览器启动时,向其中注入javascript,从而使用这些js来驱动浏览器中的AUT(ApplicationUnderTest)。WebDriver并没有使用这种技术,它是通过调用浏览器原生的自动化API直接驱动浏览器。也就是一个是通过js控制的,一个是通过原生的浏览器的接口。

2016年,selenium3出现,他摒弃了selenium中的selenium rc,并且由官方重写了所有的浏览器驱动,也即是说和2完全不兼容了。最后就只剩下webdriver。

webdriver,本质的定义可以参考这里:

WebDriver is a browser automation API that enables people to write automated tests of their web content using Python, Java, PHP, JavaScript, or any other language with a library that understands the de facto Selenium Wire Protocol or upcoming W3C WebDriver protocol.

他是一个给人们写自动化case的浏览器api。这其中是有一个标准化的协议的。这也是3为什么要官方全部重写驱动的原因了。

selenium工具集合

selenium ide

一个firefox插件,用来录制你的动作并且可以用它生成一些自动化测试脚本。对于简单的动作等基本毫无压力,两个字好用,及时对于复杂的操作、断言等,也可以先录制,再导出在修改。

selenium rc

文档
selenium remote controller,如上面所说,是一个比较核心的工具,官网上的解释为:
Selenium Remote Control (RC) is a test tool that allows you to write automated web application UI tests in any programming language against any HTTP website using any mainstream JavaScript-enabled browser.
也就是说,他能够允许你通过不同的预演来编写自动化测试脚本。
它包含两个部分:
(1)一个服务器,也就是selenium server,它能够自动的呼起以及杀死浏览器,并且,为http请求做为一个代理服务器。
(2)你要用的对应的编程语言的库,也就是client libraries

随着selenium2的发布,selenium server被搞到selenium grid中去了,参考官网
With the release of Selenium 2.0, the Selenium Server now has built-in Grid functionality.

selenium grid

文档wiki
selenium grid有三个功能:
(1)允许你将你的测试任务放到多个机器上去执行,也就是并行执行。比如你有一个大型的测试套件,那么运行很慢的情况下,就有可能需要他。
(2)帮助你管理多个不同的环境,主要目的是解决同时运行大量基于不同的环境、浏览器的情况。
(3)可以减少你对grid的维护时间。举例而言,通过继承一些自定义的钩子来影响你的虚拟机。(没太明白)

selenium webdriver

这个上面也提到了,实际上就是selenium rc的替代品。3中就只剩下webDriver了,没有rc了。

小结

  • selenium是一个ui自动化测试工具,主要用来实现端到端的自动化测试
  • 现在的是selenium3,不向下兼容,其核心为webdriver,支持跨平台、系统、浏览器,而且要自己下载驱动
  • 它是一组工具的集合

这里需要注意几点

  • 这里的测试范围,是端到端的,也就是用来替代手工测试的;
  • 它不能用来替代兼容性测试,因为他目前的驱动只有chrome、ff、ie、edge、opera、safria等主流,以及一些headless浏览器如phantomjs
  • selenium不能够很好的支持移动端。如果有移动端需求,请使用appium
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值