selenium(一)--selenium 家族

2015-12-16 23:17:04

QTP mercury 是商业的,单词意思是水银,而selenium 是开源的,单词意思是硒,有些相对的意思。

1、selenium ide

selenium ide 是 firxfox 的一个插件,提供了录制和回放脚本的功能,并会把所记录的Selenese (Selenium Commands)转化为HTML/Java/C#/Python/Perl/Php/Ruby等语言脚本,但是 selenium 录制的脚本不是100%符合我们的需求的,还是以手写脚本为主。

2、selenium core

Core是selenium的一个核心的东西,ide 已经集成了它。selenium core 内部由一堆javascript函数构成,解释html,xml写的脚本,加载到浏览器后,通过调用这些函数来实现对浏览器的各种操作。

3、selenium RC(remote control)

http://www.cnblogs.com/fnng/archive/2012/02/01/2335215.html

http://www.testwo.com/blog/4578

Selenium RC 的组成部分为:

Selenium Server,他的作用是启动和关闭浏览器,解释和运行由测试程序发来的Selenese命令,作为HTTP代理,截取和验证浏览器和测试程序之间传递的HTTP信息。

Client libraries: 负责提供编程语言与Selenium Server 之间的接口。

支持多语言(Java、JavaScript 、Ruby 、Python、 PHP、Perl and C#),还有基本支持所有的浏览器。

Selenium RC是一个独立的中间服务器(确切地说是代理服务器), 主要包括三个部分:launcher,http proxy,selenium core。

Launcher启动浏览器

Selenium Core是在Selenium Server启动浏览器时,嵌入到浏览器中的

selenium core是被selenium server嵌入到浏览器页面中的

并把浏览器的代理设置为Selenium Server的Http Proxy。

测试案例通过Client Lib的接口向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作

Http Proxy把接收的Web页面返回给浏览器。

因为浏览器存在同源策略,所以Selenium RC中的Selenium Server需要以这种代理模式运行。

RC是一个老的版本,1.0的版本,有一个client端,server端,cliect端提供了一些API,一些方法供我们写脚本的调用一些方法,比如对浏览器进行操作,如执行的点击、输入文本框,server提供了一个代理,(写完脚本运行时)client发送http请求给这个server,server(加载cserver new all到浏览器上,调用js)会转发这个请求去操作浏览器,以后也不会再用

4、selenium grid

可以并行的在多个测试环境之下测试脚本,实现脚本的并发测试执行。 缩短大量测试脚本集合的执行时间

Grid作为自动化分布式执行的工具,通过注册可以知道有几个server,根据客户端发送的请求的不同,分发到指定的浏览器或操作系统

同时并行运行多个Selenium Remote Control。比较好的一点事,它使所有这些Selenium Remote Control显示为一个,这样您在测试中就可以不必操作具体的

http://www.51testing.com/html/85/258885-848818.html

http://blog.sina.com.cn/s/blog_55ba8b4601011x3w.html

由于其是由javascript实现的,所以只要是支持javascript的浏览器都可以很好的支持它。但是和其他工具一样,selenium也不是完美的,正所谓成也萧何败也萧何,正是由于它的这一特点,导致了他的缺点。每一个浏览器对于执行javascript都有很严格的安全限制,以防止用户被恶意脚本攻击。这也导致了selenium在某些场景下的测试工作变得很困难,比如IE下面的upload操作就不允许执行往输入框中填写文件的路径。

WebDriver 是Selenium 1 的升级版本, 也可以理解为两个不同的产品,相比Selenium 1 来说可以更好地绕过JS的限制,API也更易于使用.

Selenium 1 比WebDriver 支持更多的浏览器

WebDriver 可以实现向下兼容Selenium 1 的脚本

Webdriver项目是由Simon Stewart创建的,它是一个非常便捷的自动化测试工具。Webdriver对不同浏览器的处理方式和selenium有着明显的不同,selenium是不管什么浏览器都是javascript来处理,而webdriver是选择浏览器最容易接受的语言来处理。比如,在IE中,C++最合适,在firefox中,javascript最合适等等。通过灵活选择最合适的语言来处理多浏览器,我们可以很好的回避某些浏览器对javascript的安全限制。而且webdriver不仅仅具有这些能力,它还能够调用操作系统API,尤其是当用户需要模拟鼠标和键盘进行真是的页面操作的时候,这项能力的作用尤为明显。
把上面两款工具放到一起比较,优缺点就比较明显了。Selenium要求真实的浏览器环境,而webdriver可以直接操作HTML unit驱动,大家都知道selenium启动firefox非常慢,而webdriver可以通过HTML unit在系统内存中迅速的执行,但是这两者都不方便调试。Webdriver不支持并行测试,而selenium GRID可以搞定这个。Webdriver要求针对浏览器选择最合适的语言来编写脚本,而众所周知,程序员总是希望使用自己擅长的语言来编写脚本,公司也不可能派多个脚本人员在一个项目中仅仅是为了多浏览器支持。因此,我们需要一款工具,它能够把两者的优点集合起来,这就是我们下面介绍的selenium 2.0,即selenium 1.0+webdriver。

要控制浏览器,需要依赖采用本机支持的独立客户端。WebDriver 仅提供 Java 绑定,并不能支持 Selenium 1 所能支持的那么多浏览器。

selenium 2.0最显著的特点就是不用再启动server端了

5selenium 2.0

webdriver

selenium 1.0+webdriver=selenium 2.0

selenium grid 2.0

以后用到webdriver(java开发的)。 grid2.0也是分布式执行,但我们一般不用这个东西 用jenkins,图形界面,简单  junit提供了大量断言,生成清楚的数据结果

Maven管理jar包 帮助构建批量执行测试用例、构建

时间: 2024-11-29 01:02:23

selenium(一)--selenium 家族的相关文章

[Selenium]通过Selenium实现在当前浏览器窗口点击一个图标之后,弹出另外一个窗口,关闭这个窗口,再回到原来的窗口进行操作

public void clickReportIcon(){ String initialWindowHandle = driver.getWindowHandle(); //保存原始的浏览器窗口 page.getReportIcon().click(); //这个操作之后将会弹出另外一个浏览器窗口 Set <String> set = driver.getWindowHandles(); set.remove(initialWindowHandle); assert set.size()==

[Selenium+Java] Selenium Grid Tutorial: Command Line and JSON Example

Original URL: https://www.guru99.com/introduction-to-selenium-grid.html What is Selenium Grid? Selenium Grid is a part of the Selenium Suite that specializes in running multiple tests across different browsers, operating systems, and machines in para

[Selenium+Java] Selenium Framework: Keyword Driven &amp; Hybrid

Original from: https://www.guru99.com/creating-keyword-hybrid-frameworks-with-selenium.html What is Selenium Framework? Selenium Framework is a code structure that helps to make code maintenance easy. Without frameworks, we will place the “code” as w

java selenium (八) Selenium IDE 用法

Selenium IDE 是Firefox 浏览器的一个插件, 它会记录你对Firefox的操作,并且可以回放它的操作. 用法简单,不过我觉得这个没多大的用处 阅读目录 Selenium IDE 介绍 Selenium IDE 是Firefox 浏览器的一个插件, 它会记录你对Firefox的操作,并且可以回放它的操作 Selenium IDE 的作用 在实际自动化测试中,不会用Selenium IDE, 因为没有逻辑判断,什么的,不方便 IDE 主要用来辅助,  录制了操作步骤, 导成java

java selenium (一) selenium 介绍

Selenium 是目前用的最广泛的Web UI 自动化测试框架. 本系列文章,将深入简出来讲解selenium 的用法 文章的末尾处, 有整个系列的链接 阅读目录 selenium 的命名 selenium 的意思是 硒   (有点QTP 杀手的意思) QTP mercury 是水银     硒可以对抗水银 QTP 目前的价格是  三个单机版 十万人民币左右, 越来越少的人用QTP了 什么是selenium 一套软件工具,用来支持不同的自动化测试方法 开源软件:可以根据需要来增加重构工具的某些

java+selenium/java+selenium RC 项目搭建连接整理

手把手__SELENIUM_JAVA搭建_总结汇总篇:http://wenku.baidu.com/link?url=AbZX_o7JoH9Qaz0Q1aSWvTNLzeOwQCaqf_n0wnvbYAXgF9qoYIY6Chhb0hU6m3_sOI8dZ5iwOKThv9R2QQrmxO7yFNDBzpTBZlRFynIDC2q selenium _RC _java环境配置:http://wenku.baidu.com/view/6641fd0f844769eae009ed93.html?re

UI自动化测试之selenium(1)——selenium中的常用api

目录 1 对浏览器操作1.1 用webdriver打开一个浏览器1.2 最大化浏览器&关闭浏览器1.3 设置浏览器窗口大小1.4 打开测试页面1.5 处理浏览器弹出的新窗口2 页面元素定位3 如何对页面元素进行操作3.1 WebElement相关方法3.2 iFrame的处理3.3 输入框(text field or textarea)3.4 下拉选择框(Select)3.5 单选项(Radio Button)3.6 多选项(checkbox)3.7 按钮(button)3.8 处理Alert3

[Selenium+Java] Selenium with HTMLUnit Driver &amp; PhantomJS

Original URL: https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html HTMLUnitDriver & PhantomJS for Selenium Headless Testing Selenium Web driver is a web automation tool which enables you to run the tests against different browsers. The

Selenium之Selenium IDE

官方文档:https://www.seleniumhq.org/docs/02_selenium_ide.jsp 1.安装Selenium Ide插件 可以下载谷歌和火狐的插件,安装完成后,在浏览器地址栏右侧会出现一个按钮. 原文地址:https://www.cnblogs.com/Coufusion/p/9360600.html

【selenium】Selenium基于Python3的Web自动化测试脚本在IE上运行慢的解决方法

阐述问题: 执行自动化脚本时,发现文本输入在IE浏览器上特别慢,这样大大降低了自动化效率 解决办法:原因是原先下载的IEDriverServer.exe为64位系统的IE,换为32位的IEDriverServer.exe就可以了,下载地址为:IEDriverServer_Win32_2.52.0.zip