安装好配置环境后,开始我的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--大家庭介绍的更多相关文章

  1. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  2. Selenium 工具介绍、安装、配置及使用

    概念 selenium是一款跨平台开源工具,用于web的功能完整性測试,想做压力測试的能够换软件了 先看一眼官方站 http://docs.seleniumhq.org/download/ 首先要FQ ...

  3. Selenium API 介绍

    Selenium API 介绍 我们先前学习过元素定位,大家不知道学习得怎么样了,当你学会元素定位之后就能够跟着我的脚步学习本节Selenium 经常使用的API 介绍 Seleium 为什么能模拟人 ...

  4. 自动化测试-Selenium家谱介绍

    一.自动化测试定义 自动化测试是通工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证. 二.什么样的项目适合做自动化测试 1.需求明确,不会 ...

  5. python基础 — Selenium 详细介绍

    一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 ...

  6. robotframework - selenium Api介绍

    一.介绍下selenium常用的api *** Settings ***Library SeleniumLibraryResource baidu业务.txtResource UI分层.txt *** ...

  7. Selenium简单介绍

    WEB自动化测试:指WEB应用系统从用户界面层面进行的自动化测试.通过用户界面测试内部的业务逻辑. 自身特点:(一)WEB页面上出现的元素有可能具有不确定性: (二)不同操作系统上不同WEB浏览器之间 ...

  8. 《selenium2 python 自动化测试实战》(20)——Selenium工具介绍

    (一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...

  9. [Selenium] Grid 介绍

    Selenium Grid 支持分布式测试,使测试人员可在分布式环境中进行测试 一般而言,在面临以下情况时可考虑使用Selenium Grid : 1.测试多个浏览器或单个浏览器多个版本,或测试不同操 ...

  10. UI自动化测试简介及Selenium工具的介绍和环境搭建

    自动化测试简介 1.1何为自动化测试? 是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程.换言之,就是以程序实现的方式来代替手工测试. 1.2自动化测试分类 分为功能自动化测 ...

随机推荐

  1. Ubuntu中设置环境变量详解

    1, 为单一用户:.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.打开用户主目录下的.bashrc,在这个文件中加入export PA ...

  2. 保持iOS上键盘出现时输入框不被覆盖

    如果屏幕中的内容项目比较多,键盘就可能覆盖住文本输入框之类的对象.你必须调整你的内容,使得输入框保持可见. 你会想到哪些处理方法呢? 第一种, 临时调整窗口中各个视图的大小,使得键盘从下向上占领的区域 ...

  3. Get current time and date on Android

    You could use: Calendar c =Calendar.getInstance();int seconds = c.get(Calendar.SECOND); There are pl ...

  4. DOM文档对象总结

    DOM总结: DOM:文档对象模型document object model DOM三层模型: DOM1:将HTML文档封装成对象 DOM2:将XML文档封装成对象 DOM3:将XML文档封装成对象 ...

  5. oracle里如何将两个日期的时间差返回**时**分的格式

    SELECT EXTRACT(DAY FROM (sysdate-to_date('2012-03-29 00:00:00','YYYY-MM-DD HH24:MI:ss')) DAY TO SECO ...

  6. emulatorarm.exe已停止工作

    今天使用ADT 打开android模拟器突然发现模拟器报错,[emulatorarm.exe已停止工作],昨天还是好好的,不知道为什么,重建新的模拟器还是这样. 解决办法: 更改ram大小为 512M ...

  7. Codeforces Round #328 (Div. 2) D. Super M

    题目链接: http://codeforces.com/contest/592/problem/D 题意: 给你一颗树,树上有一些必须访问的节点,你可以任选一个起点,依次访问所有的必须访问的节点,使总 ...

  8. PAT-乙级-1055. 集体照 (25)

    1055. 集体照 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 拍集体照时队形很重要,这里对给定的N ...

  9. [设计模式] 19 观察者模式 Observer Pattern

    在GOF的<设计模式:可复用面向对象软件的基础>一书中对观察者模式是这样说的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.当一个 ...

  10. String及其他

    String 以下例开始讲解String public class StringDemo { public static void main(String[] args) { // String s ...