首页 > 其他分享 >Selenium - 简介

Selenium - 简介

时间:2022-12-26 16:38:04浏览次数:48  
标签:Web 浏览器 驱动程序 简介 Selenium 测试 RC

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 - 简介_Selenium

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 - 简介_Web_02

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控制在网络的各个节点上执行测试脚本。




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 - 简介_Selenium

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 - 简介_Web_02

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控制在网络的各个节点上执行测试脚本。

标签:Web,浏览器,驱动程序,简介,Selenium,测试,RC
From: https://blog.51cto.com/u_15920572/5969309

相关文章

  • Selenium25-TestCase(测试用例)
    TestCase(测试用例)#导入unittest包importunittest#测试类(名称自定义)只要继承unittest模块中TestCase类即可classMyTestCase(unittest.TestCase):#书写测......
  • ts11_类的简介
    类可以理解为创建对象的模板对象是由两部分组成的:属性和方法所以类也是有属性和方法组成的: 1.属性 直接定义的属性是实例属性,需要通过对象的实例去访问 constp......
  • Robotframework 之常用断言关键字简介
    From: https://www.cnblogs.com/yanjiahong/p/15006244.html 任何自动化测试框架或实例中断言是必不可少的,Robotframework同样如此,那下面就介绍下其常用断言关键字。1......
  • Selenium23-UnitTest
    UnittestUnitTest是python自带的一个单元测试框架,用它来做单元测试对于测试来说,unittest框架的作用是自动化脚本(用例代码)执行框架,使用unittest框架来管理运行多个......
  • Java版小米商城项目简介
    小米商城课程详情1.课程介绍本套课程主要是基于Servlet、HTML、JS、Ajax、JSP、MySQL、JDBC、Tomcat、微信支付等web技术,仿照小米商城来实现一个电子商城项目。注意:本课程配......
  • Selenium - Selenium IDE的安装与使用
    before SeleniumIDE的web录制功能一直深受测试人员的喜爱,能将我们的操作动作录制下来并且能保存成相应的代码。较为方便。目前来说啊,可以有三种情况选择:谷歌商店搜索​​s......
  • django中间件了解的三个方法、基于Django的插拔式设计、cookie与session简介、基于Dja
    目录Django中间件三个了解的方法1.process_view2.process_exception3.process_template_response基于Django中间实现功能的插拔式设计模拟编写一个消息通知功能(微信、qq、......
  • .net core配置使用selenium
    首先要安装好chrome浏览器再找到对应浏览器的chromedriver驱动下载地址:http://npm.taobao.org/mirrors/chromedriver/先安装Selenium.WebDriver;可以直接用Nuget视图搜......
  • Prometheus监控之检查工具Promtool简介
    一、简介Prometheus提供了一个非常有用的支持命令行工具promtool。这个小型的Golang二进制文件可用于快速执行包括查询指标、debug服务、对数据库进行检查等等故障排除操作......
  • 框架第十一课---django中间件三个了解的方法,基于django中间件实现功能的插拔式设计,coo
    昨日内容回顾forms组件渲染标签form_obj=MyForm()方式1:form_obj.as_p\form_obj.as_ul\form_obj.as_table方式2:form_obj.username.labelform_obj.username方......