文档章节

Selenium简介、简史

xxjbs001
 xxjbs001
发布于 2015/04/06 18:41
字数 899
阅读 43
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

Selenium简介


Selenium是一个WEB自动化测试工具,它的特点是:

  • 支持跨浏览器的自动化测试【ie、ff、chrome、safari、opera、phantonjs、htmlunit、android、iphone、ipad、winddows phone、BlackBerry】
  • 支持跨操作系统的自动化测试【windows、linux、MAC】
  • 支持多中编程语言编写脚本【java、C#、python、ruby、js、php、perl、haskell、Objective-C、R等语言】
  • 支持分布式测试分发和管理【利用Grid、RC】
  • 拥有一个支持录制的FF插件【支持转化为各客户端语言】
  • 它是个开源工具

同时它又是一个扩展性非常好的工具,可以通过开发测试驱动来添加其可以支持的浏览器种类。所以在这个互联网泛滥的时代,选择WEB自动化工具的话,那么我想selenium应该可以作为首选的一个。它可以很好的模拟终端用户的真实行为,让自动化测试不会失真;比如:如果一个web元素不在可视区内,或者元素被其它元素覆盖、遮挡住了;那么这个元素将是不可点击的,这就很好的还原了用户的真实场景;而这点并不是所有测试工具都会考虑到的。

此外,它还可以很优雅的处理JS弹窗、键盘模拟、Javascript执行等一系列的自动化测试辅助功能,自动化测试人员无需再去寻找额外测试程序类库来支持这些操作。而当我们在需要测试浏览兼容性的时候,我们可以很方便的通过修改一行代码【或一个配置】来达成目的。

所以,Selenium可以使用在如下的这些场景:

  • 频繁的回归测试
  • 开发人员的快速反馈
  • 重复性的测试行为

Selenium历史


Selenium是在2004年由一个叫Jason Huggins的聪明的年轻人开发的,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,所以开发一个JS的类库来驱动浏览器页面的行为;这个js类库就是selenium core,同时也是seleniumRC、Selenium IDE的核心组件。这就是Selenium1.0的产生史,关于Selenium1.0的实现原理详见这里

在2006年,在google的一位有胆识的年轻人Simon Stewart发起了一个叫WebDriver的项目;因为长期以来google一直是selenium的重度用户,但却总是被限制在有限的操控范围内,所以Simon希望能通过浏览器、操作系统的底层方法等一些手段来直接操作浏览器;这样就避免了在JavaScript的沙箱环境里存在的那些限制了,webdriver项目就此诞生!

时光一下就跳到2008年,也就是北京奥运会这年,当然这一年还发生了许多其他的事情;比如:这年也是我来北京的第一年^-^;但是这一年最重要的是selenium和webdriver结合了,从此永结良缘,福泽我们广大的测试工作者。这期间谁追的谁都不重要了,重要的是他们合并的原因正如webdriver的作者所说:

  • 部分原因是selenium补充了webdriver的不足
  • 部分原因是webdriver补充了selenium的不足
  • 部分原因是它们合体后能给用户提供一个更好的自动化测试框架

所以管它呢,现在大家有一个比较好用的selenium就行了!

原文地址:http://testdoc.org/docmaster/?pid=110



xxjbs001
粉丝 55
博文 980
码字总数 219641
作品 0
浦东
QA/测试工程师
私信 提问
加载中
请先登录后再评论。
WebUI自动化测试框架--Dagger

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子...

ChenKan
2013/03/05
2.8W
6
开源数据访问组件--Smark.Data

Smark.Data是基于Ado.net实现的数据访问组件,提供基于强类型的查询表达式进行灵活的数据查询,统计,修改和删除等操作;采用基于条件驱动的操作模式,使数据操作更简单轻松;内部通过标准SQL...

泥水佬
2013/03/12
2.5K
0
Python使用xslt提取网页数据

1,引言 在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor。本文记录了确定gsExtractor的技术路线过程中所做的编程实验。这是第一部分,实验了用xsl...

fullerhua
2016/05/16
673
0
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容

1,引言 在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor。本文记录了确定gsExtractor的技术路线过程中所做的编程实验。这是第二部分,第一部分实验...

fullerhua
2016/05/19
1.3K
1
kubernetes+docker监控之简介

kubernetes+docker监控 Docker的监控原则:根据docker官方声明,一个容器不建议跑多个进程,所以不建议在容器中使用agent进行监控(zabbix等),agent应该运行在宿主机,通过cgroup或是docke...

perofu
2016/07/19
6.4K
10

没有更多内容

加载失败,请刷新页面

加载更多

springboot 上传文件

package com.taven.demo;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframewor......

tavenpy
20分钟前
4
0
GitHub 标星 44k!史上最全技术面试手册!

整理:迷妹 大家好,我是为前端娱乐圈操碎了心的小迷妹,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标。 每...

祈澈菇凉
今天
0
0
Sublime Text3配置及控制台乱码[cmd杀死进程乱码/编译文件乱码]解决方法

Sublime Text3配置及控制台乱码[cmd杀死进程乱码/编译文件乱码]解决方法 参考文章: (1)Sublime Text3配置及控制台乱码[cmd杀死进程乱码/编译文件乱码]解决方法 (2)https://www.cnblogs...

osc_wl6d9wri
21分钟前
0
0
JS实现网页轮播(每隔5秒切换)

function onload() { <%=sb_js_onload.ToString() %> var timer = setInterval("jump_url()", 1000); } var arrurl = ["screen.aspx?code......

_Somuns
21分钟前
7
0
程序猿:论学习方式的重要性

大家都知道,做我们开发这行的,最核心的竞争力就是学习能力。技术一直在变化,框架一直在更新,学还是不学。 不学,你会落伍,学,太累了,根本学不过来。学习只要找对了方法,也没那么累。...

osc_zg8wy3xa
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部