zoukankan      html  css  js  c++  java
  • Selenium各种工具比较

    Selenium 1.0

    Selenium 1.0是第一个基于浏览器的开源自动化测试工具。它可以使用所有支持http库的编程语言,也可以运行在所有支持javascript的浏览器上。当然它 也有它的缺点。在运行selenium 1.0程序之前,我们得先启动selenium服务器端,也就是selenium RC。而selenium RC是由javascript实现的,每一个浏览器对于执行JavaScript都有很严格的安全限制,以防止用户被恶意脚本攻击,这导致在某些情况下用 selenium 1.0很麻烦。

    selenium 1.0有以下3个问题亟待解决:

    1. 没有原生的鼠标和键盘事件
    2. XSS/HTTP同源数据问题
    3. popup dialog问题

    WebDriver 

    WebDriver项目是由Simon Stewart(来自Google)创建的,是一个非常便捷的自动化测试工具。它采用HtmlUnit,可以直接在内存中运行。而且WebDriver 还可以调用操作系统的API,尤其当用户需要模拟鼠标和键盘进行真实的页面操作的时候,这项能力作用尤为明显。Webdriver也有它的缺点,使用它控 制浏览器的时候,需要依赖采用本机支持的独立客户端。WebDriver仅提供Java绑定,并不能支持Selenium 1 所能支持的那么多浏览器。

    Selenium 1.0 vs WebDriver

    1. WebDriver 可以绕过JavaScript 黑盒。
    2. Selenium 1.0要求真实的浏览器环境,而WebDriver可以直接操作HtmlUnit驱动。针对某些浏览器比如说Firefox运行比较慢的情况,我们可以采用HtmlUnit驱动在系统内存中迅速的执行。
    3. WebDriver不支持并行测试,而Selenium Grid可以。
    4. WebDriver支持的浏览器有限,而selenium 1.0几乎支持浏览器,而且针对每一种浏览器都支持很多种语言。
    5. 一些selenium 1.0没有解决的问题,比如说“原生的鼠标和键盘事件”,WebDriver可以通过调用系统的API来实现。

    Selenium 1.0 +WebDriver =Selenium 2.0

    于是,为了综合了selenium 1和WebDriver的优点, Selenium 2(也被称为 Selenium WebDriver)面世。Selenium 2具有来自WebDriver的清晰面向对象API,并能以最佳的方式与浏览器进行交互。Selenium 2不使用JavaScript沙盒,支持多种浏览器和多语言绑定。具体的有:

    • Mozilla Firefox
    • Google Chrome
    • Microsoft Internet Explorer
    • Opera
    • Apple iPhone
    • Android browsers

    Selenium 2支持的语言有Java、C#、Ruby和Python。Selenium 2 还提供基于HtmlUnit的无外设驱动,是用于测试Web应用程序的Java框架。HtmlUnit运行速度特别快,但它不是一个真正与真实浏览器相关联的驱动。

    Selenium 工具

    目前说的selenium,一般包括以下四个工具:

    Selenium Core:Selenium 核心内容,是IDE和RC的引擎。内部由JavaScript函数构成,通过调用这些函数来实现对浏览器的各种操作。

    Selenium IDE:一款Firefox 插件。具有录制、编辑以及回放脚本的功能,易于上手,对于初学者可以开发一些简单的测试脚本。

    Selenium WebDriver(Selenium 2.0):由Selenium 和WebDriver合并而成。它支持WebDriver API和底层技术以及在WebDriver API下的Selenium 1.0的技术。Selenium 2.0仍然可以运行于Selenium 1.0的Selenium RC接口以支持向后兼容。

    Selenium RC(Selenium 1.0):Selenium Remote Control。远程控制,也就是通过脚本操作浏览器。它允许测试人员使用一种程序语言根据需求扩张测试脚本的复杂度、延展度。主要包括三部分:launcher,http proxy,selenium core。

    Selenium Grid:允许同时在不同的环境上运行多个测试任务。

    Selenium工具比较

    1. 浏览器支持
      • Selenium IDE仅可以在Firefox中工作。
      • Seleneium RC支持很多浏览器,包括最常用的:Firefox,IE,Safari等
      • Selenium Core支持的浏览器最广,这点和它的实现有关。
    2. 需要远程安装
      • 这里只有Selenium Core需要,处于同源策略的原因。这也是Selenium Core的一大限制。
      • Selenium IDE和Selenium Core HTA不会被同源策略限制,因为他们对浏览器扩展了。
      • Selenium RC提供一个代理服务器来保证Selenium JS文件看似来自相同的远程服务器,从而符合同源策略;代理服务器欺骗浏览器。
    3. 支持HTTPS/SSL
      • 都支持
    4. 需要JAVA
      • 只有Selenium RC需要。由于代理服务器是一个JAVA程序,所以需要在跑测试用例前启动。
    5. 将测试结果保存到磁盘
      • 只有Selenium Core不能将任何测试结果写到磁盘上。因为他是用JS写的,不允许向磁盘写数据。解决方案是将测试结果发送到另外一台服务器保存。
    6. 多语言支持
      • Selenium IDE仅支持Selenium语言。
      • Selenium RC支持很多语言。如:C#,Java,Python,Ruby等。
      • Selenium Core也是仅支持Selenium 语言。

     备注:

    Selenium语言,使用(Command,Target,Value)三种元素组成一个行为,可以使用Selenium IDE辅助录制脚本,不懂测试的人员都可以轻松编写测试案例。

    缺点是:Selenium 语言没有条件(if),没有循环(for),使得编写复杂的测试变得困难甚至不可能。

  • 相关阅读:
    Nacos安装部署文档
    mysql安装部署文档
    Postgresql数据库安装部署文档
    Sentinel安装部署文档
    Nginx安装部署手册
    golang 7. defer
    golang 6. 指针 *
    golang 5. import
    golang 4. 函数 func
    golang 3. 常量 const iota
  • 原文地址:https://www.cnblogs.com/miniren/p/4638924.html
Copyright © 2011-2022 走看看