• Web自动化测试—什么是Selenium?



    Selenium - 简介


      selenium是什么?
      回到顶部

      Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一。它最初由杰森·哈金斯(Jason Huggins)于2004年开发,作为Thought Works的内部工具。Selenium支持跨不同浏览器,平台和编程语言的自动化。

      Selenium可以轻松部署在Windows,Linux,Solaris和Macintosh等平台上。此外,它支持IOS(IOS,Windows Mobile和Android)等移动应用程序的OS(操作系统)。

      Selenium通过使用特定于每种语言的驱动程序支持各种编程语言。Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驱动程序最受Python和C#欢迎。 Selenium测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代Web浏览器中运行。 Selenium支持的浏览器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。

      应该具备的知识
      回到顶部

      需要一些JavaScript知识才能学习本教程。 关于一些后端平台的知识不是必需的,但它可以帮助您了解各种Selenium概念。

      Selenium功能特性
      回到顶部

      Selenium有以下功能特性:

      • Selenium是一个开源和可移植的Web测试框架。
      • Selenium IDE为创作测试提供了回放和录制功能,而无需学习测试脚本语言。
      • 它可以被视为领先的基于云的测试平台,可帮助测试人员记录他们的操作并将其导出为可重复使用的脚本,并具有易于理解且易于使用的界面。
      • Selenium支持各种操作系统,浏览器和编程语言。如下列表:
        • 编程语言: C# ,Java,Python,PHP,Ruby,Perl和JavaScript
        • 操作系统:Android,iOS,Windows,Linux,Mac,Solaris。
        • 浏览器:谷歌浏览器,Mozilla Firefox,Internet Explorer,Edge,Opera,Safari等。
      • 它还支持并行测试执行,从而减少了时间并提高了测试效率。
      • Selenium可以与Ant和Maven等框架集成,用于源代码编译。
      • Selenium还可以与TestNG等测试框架集成,以进行应用程序测试和生成报告。
      • 与其他自动化测试工具相比,Selenium需要的资源更少。
      • WebDriver API已经尝试集于Selenium中,这是对Selenium进行的最重要的修改之一。
      • Selenium Web驱动程序不需要服务器安装,测试脚本直接与浏览器交互。
      • Selenium命令根据不同的类进行分类,使其更易于理解和实现。
      • Selenium Remote Control(RC)与WebDriver API一起被称为Selenium 2.0。 此版本旨在支持充满活力的网页和Ajax。

      Selenium的局限性
      回到顶部

      Selenium的局限性主要如下:

      • Selenium不支持桌面应用程序的自动化测试。
      • Selenium需要高技能才能更有效地自动化测试。
      • 由于Selenium是开源软件,因此必须依靠社区论坛来解决技术问题。
      • 无法使用Selenium对Web服务(如SOAP或REST)执行自动化测试。
      • 使用者应该至少知道或熟悉一种受支持的编程语言,以便在Selenium WebDriver中创建测试脚本。
      • 它没有像UTF/QTP这样的内置对象存储库来维护集中位置的对象/元素。但是,可以使用Page Object Model(PO,页面对象模型)克服此限制。
      • Selenium没有任何内置的报告功能; 必须依赖JUnit和TestNG等插件来获取测试报告。
      • 无法对图像执行测试。需要将Selenium与Sikuli集成以进行基于图像的测试。
      • 与UFT,RFT,SilkTest测试等供应商工具相比,在Selenium中创建测试环境需要更多时间。
      • 新功能没有人可能少人使用,它们可能会也可能不会正常工作。
      • Selenium不为测试管理提供任何测试工具集成。

      扩展:

      什么是页面对象模型?页面对象模型(PO)是一种设计模式,用来管理维护一组web元素的对象库。在PO下,应用程序的每一个页面都有一个对应的page class,每一个page class维护着该web页的元素集和操作这些元素的方法,它的最终目的还是将页面对象(方法和元素)与测试代码分离,提高测试代码的可维护性、可扩展性及可复用性。

      UFT(Unified Functional Testing)是一种自动化测试工具,以VBScirpt为内嵌语言。UFT支持功能测试和回归测试自动化,可用于软件应用程序和环境的测试。

      RFT(IBM Rational Functional Tester)是一款先进的、自动化的功能和回归测试工具,它适用于测试人员和GUI开发人员。

      SilkTest:SilkTest 可以自动捕捉,检测和重复用户交互的操作从而驱动测试的进行。

      Selenium与QTP比较
      回到顶部

      Selenium和QTP是市场上最常用的自动化测试工具。 因此,我们比较了Selenium与QTP的一些特征。

      特征 Selenium HP QTP
      许可 开源工具 有版权
      客户支持 Selenium社区论坛 专门的HP支持
      测试支持 仅支持基于Web的应用程序的自动化。 支持基于Web和桌面的应用程序的测试。
      测试脚本执行期间的资源消耗 资源消耗低 资源消耗高
      支持的编程语言 Java, C#, Ruby, Python, Perl, PHP and JavaScript VB Script
      支持的环境 Android, iOS, Windows, Linux, Mac, Solaris. 仅适用于Windows
      支持的浏览器 谷歌浏览器,Mozilla Firefox,Internet Explorer,Edge,Opera,Safari等 特定版本的Google Chrome,Mozilla Firefox和Internet Explorer。
      对象存储库/恢复方案 内置对象存储库和恢复方案。
      浏览器控件 可在浏览器中访问收藏夹栏,后退和前进按钮等控件。
      测试报告生成 它依赖于外部工具来生成测试报告。 在工具中生成内置测试报告。
      参数设置 依赖任何一种受支持的编程语言进行参数化。 内置工具可用于参数化。

      Selenium工具套件
      回到顶部

      Selenium不仅仅是一个工具,而是一套软件,每个软件都有不同的方法来支持自动化测试。 它由四个主要组成部分组成,包括:

      • Selenium集成开发环境(IDE)
      • Selenium RC远程控制器(现已弃用)
      • webdriver
      • Selenium Grid

      Selenium集成开发环境(IDE)
      回到顶部

      Selenium IDE实现为Firefox扩展,在测试脚本上提供记录和回放功能。它允许测试人员以HTML,Java,Ruby,RSpec,Python, C# ,JUnit和TestNG等多种语言导出录制的脚本。 可以在Selenium RC或Webdriver中使用这些导出的脚本。

      Selenium IDE的范围有限,生成的测试脚本不是非常健壮和可移植。

      Selenium远程控制器
      回到顶部

      Selenium RC(由selenium正式弃用)允许测试人员使用任何支持的编程语言编写自动化Web应用程序UI测试。 它还涉及一个HTTP代理服务器,它使浏览器能够相信正在测试的Web应用程序来自代理服务器提供的域。

      Selenium RC有两个组件:

      • Selenium RC Server(充当Web请求的HTTP代理)
      • Selenium RC Client(包含编程语言代码的库)

      下图给出了Selenium RC的架构表示。

      Selenium RC在连续集成系统下测试复杂的基于AJAX的Web用户界面非常有效。

      Selenium WebDriver
      回到顶部

      Selenium WebDriver(Selenium 2)是Selenium RC的继承者,也是Selenium Suite最重要的组件。 SeleniumWebDriver提供了一个编程接口来创建和执行测试用例。 编写测试脚本是为了识别网页上的Web元素,然后对这些元素执行所需的操作。

      与Selenium RC相比,Selenium WebDriver执行速度更快,因为它可以直接调用Web浏览器。 另一方面,RC需要RC服务器与Web浏览器进行交互。

      因为,WebDriver直接调用不同浏览器的方法,因此每个浏览器都有单独的驱动程序。 一些最广泛使用的Web驱动程序包括:

      • Mozilla Firefox驱动程序(Gecko驱动程序)
      • 谷歌Chrome驱动程序
      • Internet Explorer驱动程序
      • Opera驱动程序
      • Safari驱动程序
      • HTML单元驱动程序(一个特殊的无头驱动程序)

      注意:Selenium版本2将Selenium RC和Selenium WebDriver的最佳功能合并到Selenium WebDriver中,最新发布的Selenium 3具有新增功能和功能

      Selenium Grid
      回到顶部

      Selenium Grid也是Selenium Suite的一个重要组件,它允许在不同的机器上并行运行不同浏览器的测试。 简单来说,可以在运行不同浏览器和操作系统的不同机器上同时运行测试。

      Selenium Grid遵循Hub-Node架构来实现测试脚本的并行执行。Hub被视为网络的主设备,另一个将是节点。 Hub控制在网络的各个节点上执行测试脚本。

    有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。 想到与得到中间还有两个字——做到。
  • 相关阅读:
    【HDOJ】2774 Shuffle
    【POJ】2170 Lattice Animals
    【POJ】1084 Square Destroyer
    【POJ】3523 The Morning after Halloween
    【POJ】3134 Power Calculus
    【Latex】如何在Latex中插入伪代码 —— clrscode3e
    【HDOJ】4801 Pocket Cube 的几种解法和优化
    【HDOJ】4080 Stammering Aliens
    【HDOJ】1800 Flying to the Mars
    SQL语法
  • 原文地址:https://www.cnblogs.com/huoxc/p/12867142.html
Copyright © 2020-2023  润新知