51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1886|回复: 0
打印 上一主题 下一主题

Selenium框架简介

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-3-12 16:35:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试。函数非
    常灵活,能够完成界面元素定位、窗口跳转、结果比较。具有如下特点:


       一、多浏览器支持

               可以对多浏览器进行测试,如IE、Firefox、Safari、Chrome、Android手机浏览器等。

       二、支持多种语言

              如Java、C#、Python、Ruby、PHP等。

      三、支持多种操作系统


             如Windows、Linux、IOS、Android等。

      四、开源免费

             官网:http://www.seleniumhg.org/



           Selenium框架由多个工具组成,包括:Selenium IDE,Selenium RC,Selenium WebDriver和Se
    leniumRC。
      一、Selenium IDE



    该工具是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它
    拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。如果没有编程经验,
    可以通过Selenium IDE来快速熟悉Selenium的命令。


    该工具实际使用不多。

    二、Selenium RC


        Selenium RC是selenium家族核心部分。Selenium RC支持多种不同的语言编写自动化测试脚本,
    通过SeleniumRC的服务器作为代理服务器去访问应用,从而达到测试的目的。

          SeleniumRC分为ClientLibraries和SeleniumServer。ClientLibraries库主要用于编写测试脚本,用
    来控制SeleniumServer的库。SeleniumServer负责控制浏览器行为。SeleniumServer包含三部分:
    Launcher,Http Proxy和Core。其中,Selenium Core是被Selenium Server嵌入到浏览器页面中的,
    其实SeleniumCore就是一堆JavaScript函数的集合,即通过这些JavaScript函数,我们才可以实现
    用程序对浏览器进行操作。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面当中,
    并把浏览器的代理设置为SeleniumServer的HttpProxy。



    Selenium引入了Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server
    通讯都通过这个代理Server 来进行。之所以引入这个代理 Remote Control Server 是因为“同源
    策略”的限制,通过这个代理服务器来“欺骗”远程Server,达到使其以为是从同一个地方 load 代
    码以正确返回请求数据的效果。如上图,RC的流程为:

    1. 测试用例通过Http请求建立与 selenium-RC server 的连接

    2. Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器
    的代理设置为Selenium Server的Http Proxy

    3. 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http
    Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码

    4.Selenium Core执行接受到的指令并操作

    5. 当浏览器收到新的请求时,发送http请求

    6. Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面

    7. Selenium Server中的Http Proxy把接受到的页面返回给浏览器

    三、Selenium WebDriver


    Selenium RC使用的是JavaScript注入技术与浏览器打交道,需要Selenium RC启动一个Server,
    将操作Web元素的API调用转化为一段段Javascript,在Selenium内核启动浏览器之后注入这段J
    avascript。开发过Web应用的人都知道,Javascript可以获取并调用页面的任何元素,自如的
    进行操作。由此才实现了Selenium的目的:自动化Web操作。这种Javascript注入技术的缺点
    是速度不理想,而且稳定性大大依赖于Selenium内核对API翻译成的Javascript质量高低。

       当Selenium2.x提出了WebDriver的概念之后,它提供了完全另外的一种方式与浏览器交互。
    那就是利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriver API,直接操
    作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,
    配置证书之类的)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交
    给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,
    对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览
    器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的
    ChromeDriver等等。(甚至包括了AndroidDriver和iOS WebDriver)

       启动SeleniumRC至今为止还保留着,应该是考虑到向前兼容。

       Selenium RC要求真实的浏览器环境,而WebFriver可以直接操作HtmlUnit驱动,Selenium启
    动Firefox非常慢,而WebFriver可以通过HtmlUnit在系统内存中迅速的执行,但是这两者都不
    方便调试。Webdriver不支持并行测试,而Selenium Grid可以搞定这个。WebFriver要求针对
    浏览器选择最合适的语言来编写脚本,而众所周知,程序员总是希望使用自己擅长的语言来
    编写脚本,公司也不可能派多个脚本人员在一个项目中仅仅是为了多浏览器支持。因此,我
    们需要一款工具,它能够把两者的优点集合起来,这就是我们下面介绍的Selenium 2.0,即
    Selenium 1.0+Webdriver 。



    Selenium2增加了WebDriver,保持RC向前兼容。WebDriver项目是由Simon Stewart创建的,
    它是一个非常便捷的自动化测试工具。WebDriver对不同浏览器的处理方式和RC有着明显的
    不同,RC是不管什么浏览器都是JavaScript来处理,而WebDriver是选择浏览器最容易接受的
    语言来处理。比如,在IE中,C++最合适,在Firefox中, JavaScript最合适等等。通过灵活
    选择最合适的语言来处理多浏览器,我们可以很好的回避某些浏览器对JavaScript的安全限制。
    而且WebDriver不仅仅具有这些能力,它还能够调用操作系统API,尤其是当用户需要模拟鼠
    标和键盘进行真是的页面操作的时候,这项能力的作用尤为明显。

      现在支持的WebDriver:AndroidDriver,ChromeDriver, FirefoxDriver,  HtmlUnitDriver, EventF
    iringWebDriver,InternetExplorerDriver,  IPhoneDriver,  IPhoneSimulatorDriver,  RemoteWe
    bDriver。




    四、Selenium Grid


    Selenium Grid分为版本1和版本2,并不是和Selenium的版本1和2相对应发布的。现在的Selen
    ium Grid基本能支持selenium2的所有功能了。两个版本原理和基本工作方式都是一样的。只
    是版本2同时支持Selenium1和Selenium2两种协议,并且在一些小的功能和易用性上进行了优化。



           传统的无Grid的模式,只能在一台机器上进行测试。



          Selenium可以在上面两种方式下进行执行,第一种是每台机器都是一致的,第二种是可以
    指定特定的浏览器或者特定的操作系统执行。

         上述四个工具是Selenium的核心工具,关系如下。



      除了这四个工具外,还有两个工具介绍一下。
      五、辅助工具FireBug


    Firebug是Firefox下的一个扩展,能够方便的查看和调试所有网站语言,如Html,Css等,并且能够
    进行JavaScript调试。



    六、辅助工具FirePath


    FirePath扩展FireBug的功能。能够修改、检查、生产XPath和CSS选择定位器的功能。提供自定
    义的XPath值,直接在网页上测试他们的正确性。FireBug一样返回你选择的元素的Xpath。XPat
    h是用于在网页上唯一的识别元素的技术,它就像HTML元素的地址,比如check boxes、text或
    div等。在Selenium里,有人认为XPath是最值得信赖的定位器之一。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-17 21:45 , Processed in 0.064574 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表