selenium--大家庭介绍
安装好配置环境后,开始我的selenium之旅。简单的了解一下色,selenium大家庭的组成。
Selenium是ThoughtWorks专门为 Web 应用而开发的功能测试工具。Selenium使用JavaScript和Iframes在浏览器嵌入自动化测试引擎,可以在任何支持JavaScript的浏览器中进行工作,模拟用户在浏览器中进行的操作。Selenium的强大之处就在于可以使用集成开发环境,让用户使用自己最熟悉的开发语言进行调试操作。
Selenium的优势:
1)它是开源的
2)简单,易于安装,易于工作
3)提供Selenium IDE ,一个FireFox plugin,能自动记录用户的操作,生成测试脚本。生成的测试脚本可以基于Selenium RC放入Java,C#,Ruby的单元测试用例中自动运行。selenium ide是selenium的唯一可以在浏览器窗口上记录用户行为的组件
4)除了火狐上的事件外不会记录你电脑上的任何其他事件
5)Selenium支持多种浏览器,能够运行与多种操作系统,因此更容易帮助测试人员发现应用程序在不同浏览器上的兼容性问题。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性.
6)通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序;可以操作 Web 页面上的各种元素,诸如:点击按钮、输入文本框,以及断言 Web 页面上存在某些文本与 Web 元素等。
7)测试用例调用实际的浏览器(如IE、FireFox)来执行测试。和有些开源方案自行实现Web解释引擎相比,实际的浏览器能模拟更多用户交互和JS语法。 8) SELENIUM录制的脚本比较灵活,因为它生成的是PERL的脚本程序。作为几乎最为强大和最广泛使用语言之一,PERL这种程序给予我最大的灵活性和控制度。
Selenium IDE 支持并且只支持 Firefox 浏览器,支持的浏览器太少,而依附于 Firefox 也不便于日后开展自动化测试,但是,它的录制快捷好用!并且有代码 转换功能,可以把 Selenium 语言测试案例转为 C#,Java 等语言的测试案例,使用 Selenium IDE + FireBug 进行测试案例的编写,然后转为其他语言的测试案例后,再调用 Selenium RC运行测试案例。
Selenium RC 它支持很多浏览器,可以使用 C#,Java 等语言编写测试案例,易于维护,同时提供了很好的扩展性,将使用Selenium RC 测试工具。
selenium 和 WebDriver 合幵后创建了一个新的 Selenium 2 框架。 Selenium 是一个针对网页应用测试非常好的框架。他有着一些积极的影响。WebDriver 也不像 Selenium 1 一样需要一个代理。你可以直接和浏览器进行对话。这也非常受人们欢迎的,因为可以加快测试的执行速度,不需要一个“中间人”进行传递消息。
Selenium IDE:右Command、target、value组成的表格就是脚本,每个脚本都是一条条的action行为组成,action有CTV 三者组成,command就是api中的各种函数,target就是web中的某个目标对象,比如:输入框、按钮等,使用xpath选取对象。Value:根据实际内容填写。
在这里可以手动的增加两种页面校验:verify和assert。他们都能对显示内容,输出内等做验证,区别在于:
verify:验证失败了,会抛出期望结果不存在的错误,但是测试过程会继续执行下面的步骤,但会显示成淡红的。
assert:验证失败,测试不会继续执行下去。
Selenium 没有指明会等到需要交互的元素出现,所以你最好等到需要交互元素出现时再迕行交互,即利用wait指令。如带有下拉菜单,带有ajax的页面都要有所等待,等页面元素准备好了再进行下一步的操作。
Selenium RC:有两部分组成
Selenium Server:负责控制浏览器行为,包括三个部分:launcher、http proxy、Selenium core,其中Selenium core是Selenium server嵌入到浏览器页面中的,Selenium core是一堆JS函数的集合,从而实现对浏览器的操作。
Selenium Clientlibrary:写测试案例时用来控制server的库。
支持很多浏览器,可以使用C#,Java 等语言编写测试案例,易于维护,同时提供了很好的扩展性。
Selenium Grid 允许创建很多个 Selenium RC实例,由一个中心来发送 Selenium RC命令。拥有一个中心点 Hub, 测试可以连接到此点, 测试命令会推送到连接在此集线器上的Remote RC 实例上。 这个中心有一个 web 界面(localhost:4444/console), 告诉你连接在此集线器上的Selenium RC 实例,和返些实例是否正在使用的状态。
# 启动Selenium Server
java –jar selenium-server-standalone-2.22.0.jar -port 4444
# 启动Selenium Grid的Hub
java –jar selenium-server-standalone-2.22.0.jar -port 4000 -role hub
# 启动Selenium Grid的Node,其中的-hub参数,是Selenium Grid的Hub的URL
java -jar selenium-server-standalone-2.22.0.jar -port 4001 -role node -hub http://127.0.0.1:4000/grid/register
#显然,可以启动多个Node:
java -jar selenium-server-standalone-2.22.0.jar -port 4002 -role node -hub http://127.0.0.1:4000/grid/register
WebDriver
WebDriver 提供一个先进技术来定位 web 页面元素。其实WebDriver就是基于Selenium的一个自动化测试类库,但它不再是运行在浏览器内的JS程序,而是自己可以控制浏览器。webdriver提供了很多方式来定位元素,对于不同平台的语言都有相关的api,如C#、java、python、ruby等等。
前段时间利用空余的时间学习这方面的知识,现将其一点点的整理出来。
selenium--大家庭介绍的更多相关文章
- python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍
1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...
- Selenium 工具介绍、安装、配置及使用
概念 selenium是一款跨平台开源工具,用于web的功能完整性測试,想做压力測试的能够换软件了 先看一眼官方站 http://docs.seleniumhq.org/download/ 首先要FQ ...
- Selenium API 介绍
Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...
- 自动化测试-Selenium家谱介绍
一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...
- python基础 — Selenium 详细介绍
一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 ...
- robotframework - selenium Api介绍
一.介绍下selenium常用的api *** Settings ***Library SeleniumLibraryResource baidu业务.txtResource UI分层.txt *** ...
- Selenium简单介绍
WEB自动化测试:指WEB应用系统从用户界面层面进行的自动化测试.通过用户界面测试内部的业务逻辑. 自身特点:(一)WEB页面上出现的元素有可能具有不确定性: (二)不同操作系统上不同WEB浏览器之间 ...
- 《selenium2 python 自动化测试实战》(20)——Selenium工具介绍
(一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...
- [Selenium] Grid 介绍
Selenium Grid 支持分布式测试,使测试人员可在分布式环境中进行测试 一般而言,在面临以下情况时可考虑使用Selenium Grid : 1.测试多个浏览器或单个浏览器多个版本,或测试不同操 ...
- UI自动化测试简介及Selenium工具的介绍和环境搭建
自动化测试简介 1.1何为自动化测试? 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程.换言之,就是以程序实现的方式来代替手工测试. 1.2自动化测试分类 分为功能自动化测 ...
随机推荐
- EHCache 实现通用类 CacheManager
package com.zhubaje.api.workflow.ehcache; import java.io.Serializable; import java.util.ArrayList; i ...
- MyEclipse反编译Class文件
对于需要查看Java Class文件源码的筒子们来说,必须在项目中导入Java源码才能查看Class文件的具体实现,这不仅十分的麻烦,因为有时我们并不可以获得Class文件对应的Java源码.今天就给 ...
- 调皮的转义之addslashes
背景: php自5.3版本开始废除set_magic_quotes_runtime函数,并在5.4及以后版本中移除了该函数 今天程序在向mysql插入一个serialize序列化后的数组时,由于一个数 ...
- JavaWeb常见错误总结
错误1:(Ajax未加载问题) 今天我在学习AJAX的时候,想从一个JS文件中引入JQuery,然后在这个JS文件中使用AJAX的方法.结果V8引擎一直报错,错误类型是Uncaught Referen ...
- MarkdownPad2添加目录(输出为HTML时可用)
平时看书的时候懒得上网写在线博客,就在电脑上用了很长时间的MarkDownPad2来记录自己的心得笔记,等那天高兴了再把他们贴出来.界面清爽,是我使用它最重要的原因,但是MarkdownPad2导出的 ...
- HTML+CSS入门
<strong>加粗</strong> <em>斜体</em> <p>段落</p> <span>设置单独样式< ...
- 【BZOJ】【3398】【USACO 2009 Feb】Bullcow 牡牛和牝牛
组合计数/乘法逆元 排列组合求总方案数 这个可以用一个一维的动态规划解决: f[i][0]表示第i头牛是牝牛的方案数 f[i][1]表示第i头牛是牡牛的方案数 则转移为:f[i][0]=f[i-1][ ...
- java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
因为这个问题折腾了以上午,终于解决了,做下记录: 错误提示为:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLSer ...
- MoveManager管理类
MoveManager:移动管理类 struct MoveOpt { int cur_seq; ObjecInfo* obj; }; std::map<ObjID, MoveOpt> m_ ...
- PHP之SQL防注入代码(360提供)
<?php class sqlsafe { private $getfilter = "'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\ ...