热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1.1Selenium是什么?Selenium自动化测试介绍

前言:总感觉自己的Selenium用的很溜,很熟悉了,现在发现比较零碎,不是那么的系统,所以想要总结下Sele

前言: 总感觉自己的Selenium用的很溜,很熟悉了,现在发现比较零碎,不是那么的系统,所以想要总结下Selenium相关的知识点,作为回顾总结;然后就想写一系列的,从零开始,不知道是不是能够坚持在业余时间内总结完Selenium一系列的知识点。

目录

Selenium是什么?

谁开发了Selenium?

同源政策问题

Selenium RC的诞生

Selenium Grid的诞生

Selenium IDE的诞生

WebDriver的诞生

Selenium 2 的诞生

为什么叫Selenium呢?

Selenium IDE简介

Selenium RC简介

WebDriver简介

Selenium Grid

关于浏览器和环境支持的注意事项

Selenium与QTP(现在的UFT)的比较

Selenium优于QTP的优点

QTP优于Selenium的优点

总结:



Selenium是什么?

Selenium是一个免费的(开源)自动化测试组件,适用于跨不同浏览器和平台的Web应用程序。它非常类似于HP Quick Test Pro (QTP现在叫UFT),只是Selenium侧重于自动化基于Web的应用程序。使用Selenium工具进行的测试通常称为Selenium测试

Selenium不仅仅是一个工具,而是一套软件,每个软件都满足组织的不同测试需求。它有四个组成部分:

  • Selenium集成开发环境(IDE)
  • Selenium远程控制 (RC)
  • WebDriver
  • Selenium Grid

 

 目前,Selenium RC和WebDriver被合并到一个框架中,形成Selenium 2;Selenium 1是指Selenium RC。

谁开发了Selenium?

由于Selenium是不同工具的集合,所以它也有不同的开发人员。下面是对Selenium项目做出显著贡献的关键人物。

Jason Huggins

这就是为什么在Selenium RC之前,测试人员需要安装Selenium Core(一个Javascript程序)和一个包含被测试的Web应用程序的web服务器的本地副本,以便它们属于同一个域。


Selenium RC的诞生

Selenium IDE简介

Selenium集成开发环境(IDE)是Selenium套件中最简单的框架,也是最容易学习的框架。它是一个Firefox插件,您可以像使用其他插件一样轻松地安装它。然而,由于它的简单性,Selenium IDE只应该用作原型工具。如果您想创建更高级的测试用例,您将需要使用Selenium RC或WebDriver,现在已经没人再使用这个东西了。

优劣势如下图:
Introduction to Selenium

Selenium RC简介

Selenium RC长期以来一直是整个Selenium项目的旗舰测试框架。这是第一个允许用户使用他们喜欢的编程语言的自动化web测试工具。从2.25.0版开始,RC可以支持以下编程语言:

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

优劣势如下:

WebDriver简介

Web驱动程序在很多方面都比Selenium IDE和Selenium RC更好。它实现了一种更加现代和稳定的方法来自动化浏览器的操作。与Selenium RC不同,WebDriver不依赖Javascript实现自动化。它通过直接与浏览器通信来控制浏览器。
所支持的语言与Selenium RC中的语言相同:

  • Java
  • C#
  • PHP
  • Python
  • Perl
  • Ruby

优劣势如下图:


Selenium Grid

Selenium Grid是一个与Selenium RC一起使用的工具,可以在不同的机器和不同的浏览器上同时运行并行测试。意味着同时并行执行多个测试用例。

特性:

  • 支持在多个浏览器和环境中同时运行测试。
  • 极大的节省了时间。
  • 利用hub-and-nodes(中心和节点)的概念。Hub充当连接到它的每个节点的Selenium命令的中心源。

关于浏览器和环境支持的注意事项

由于架构上的差异,Selenium IDE、Selenium RC和WebDriver支持不同的浏览器和操作环境。

Selenium IDEWebDriver
支持浏览器Mozilla Firefox

Internet Explorer 6~11,32位 和62位;

Microsoft Edge 12.10240及以上版本(支持部分正在开发的一些功能);

Firefox 3.0+

Google Chrome 12.0+

Opera 11.5+

Android - 2.3+适用于手机和平板(设备和模拟器)

iOS 3+适用于手机(设备和模拟器),3.2+适用于平板电脑(设备和模拟器)

HtmlUnit 2.9+

操作系统Windows,
Mac OS X,
Linux  
以上浏览器可以运行的所有操作系统。

注:Selenium WebDriver是Selenium RC的继承者,Selenium RC已被SeleniumHQ正式宣布弃用。


Selenium与QTP(现在的UFT)的比较

Quick Test Professional(QTP)是一种专有的自动化测试工具,在2006年被惠普收购之前,它曾属于Mercury Interactive公司。Selenium工具套件比QTP有许多优点,具体如下所示:

Selenium优于QTP的优点


SeleniumQTP
开源,免费使用,免费商业的
高扩展性有限的附加组件
可以在不同的浏览器上运行测试只能在FirefoxIEChrome中运行测试
支持多种操作系统只能在Windows中使用
支持移动设备QTP支持移动应用程序测试自动化(iOS和Android)使用HP解决方案称为- HP移动中心
可以在最小化浏览器的情况下执行测试吗需要使测试中的应用程序在桌面上可见
可以并行执行测试只能顺序执行,但使用质量中心,这又是一个付费产品。

QTP优于Selenium的优点


QTPSelenium
可以同时测试Web和桌面应用程序只能测试Web应用程序
附带一个内置的对象存储库没有内置的对象存储库
自动化速度比Selenium更快,因为它是一个功能齐全的IDE。自动化速度较慢,因为它没有本地IDE,而且只有第三方IDE可以用于开发
数据驱动测试更容易执行,因为它有内置的全局和本地数据表数据驱动测试更麻烦,因为您必须依赖编程语言的功能来为测试数据设置值
可以访问浏览器中的控件(如收藏夹栏、地址栏、后退和前进按钮等)。无法访问被测试Web应用程序之外的元素
提供专业的客户支持没有提供官方用户支持。
具有将测试数据导出到本机外部的功能没有将运行时数据导出到本机外部的功能
建立参数化支持参数化可以通过编程实现,但是很难实现。
测试报告是自动生成的不支持生成测试/bug报告。

虽然很明显,QTP具有更高级的功能,但是Selenium在三个主要方面超过了QTP:

  • 成本(因为Selenium是完全免费的)
  • 灵活性(因为Selenium可以支持多种编程语言、浏览器和平台)
  • 并行测试(这是QTP能够做到的,但只有使用质量中心)

总结:

整个Selenium工具套件由四个组件组成:

  • Selenium IDE,一个Firefox插件,您只能在创建相对简单的测试用例和测试套件时使用它。
    • Selenium RC,也称为Selenium 1,它是第一个允许用户使用编程语言创建复杂测试的Selenium工具。
    • WebDriver是一个新的突破,它允许您的测试脚本直接与浏览器通信,从而从操作系统级别控制它。
    • Selenium Grid也是一个工具,它与Selenium RC一起用于跨不同的浏览器和操作系统执行并行测试。
    • Selenium RCWebDriver合并形成Selenium 2,现已经更新到了Selenium 3Selenium 4
  • Selenium在成本和灵活性方面比QTP更有优势。它还允许您并行地运行测试,而不像在QTP中,您只允许顺序地运行测试。


推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • Rubyonrails开发人员在这里。此问题曾被问过。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • gitlab重置password
    ruby没怎么学,自己搭建的gitlab的rootpassword又忘了。幸好看见此帖子,试验okhttp:roland.kierkels.netgitreset-your-git ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
author-avatar
HE-KILL-MY-EGO
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有