浅谈基于Selenium的Web自动化测试框架

发表于:2011-4-25 10:58  作者:邵育亮   来源:51Testing软件测试网原创

字体:大 中 小 | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签: 软件测试 Selenium 测试框架 自动化测试

  ● 面临的挑战

  从Google到Facebook,从Twitter到新浪微博,新一轮的互联网热潮正在全世界蔓延。随着云概念的日益清晰,越来越多的企业也已经摆脱了传统的C/S架构的应用框架而转投云计算的怀抱,Web已经成为我们生活工作的重心。

  有别于传统的桌面应用开发,Web应用因为其迭代周期短,需求变化快特殊性质,越来越多的Web开发团队在拥抱敏捷。同时随着前端技术Javacript,Html5,等不断被推出和完善,Web应用也变得越来越复杂很绚丽。这都给我们的测试带来了挑战。

  √ 持续变化的需求

  √ 复杂的UI(各种Javascript的插件,Ajax等)

  √ 往往一个测试团队需要应付多个项目的测试工作

  √ 非常有限的资源(人力,成本,等等…)

  √ 跨平台(Linux,Mac,windows),跨浏览器(Firefox,Chrome,IE)

  ● 如何解决

  如何在有限的资源下,又可以解决目前我们广大测试团队所面临的挑战呢?ThoughtWorks公司推出的开源Web自动化测试工具Selenium给我们带来了解决之道。Selenium基于Javascript并结合其WebDriver来模拟用户的真实操作,它有很好的处理Ajax的能力,并且支持多种浏览器(Safari,IE,Firefox,Chrome),可以运行在多种操作系统上面。

  但是Selenium只是帮我们解决了执行层面的问题,在大规模的自动化测试项目中,我们还需要一个基于Selenium平台的测试框架,这个框架需要有以下的特性。

  √ 支持数据驱动(DDT)

  √ 对象库的分离和管理

  √ 自动化测试脚本的组织和管理

  √ 脚本的可重用(团队)和可配置

  结合上面的需求,在这里介绍两个基于Selenium的Web自动化测试框架,它们都采用了数据驱动的设计方式,可以对于测试脚本的组织和执行进行灵活的管理和配置。

  ● Watip

  Web Application Test In Python (http://code.google.com/p/watip),这个是我用Python写的一个简单的基于Selenium的数据驱动的测试框架。设计借鉴了之前一个朋友的测试框架的设计模式。采用XML形式来实现数据驱动和测试脚本的管理。

  查看全文请点击下载:http://www.51testing.com/html/39/n-234539.html

  ● Ringo

  Ringo是Google内部使用的一个基于Selenium的Web自动化测试框架,它在GTAC2010的大会上做了介绍。Ringo是用Java开发,结合了TestNG实现了数据驱动和高度可配置化,并且具有很好的对象库的管理的功能,是一个比较成熟的测试框架。

  从Ringo的架构中可以看出,Ringo实现了数据,对象,操作的3者完全分离。并且对于一些公共的脚本进行了抽取和重构(SeleniumHelper),代码的复用率非常高。所有的测试用例都是可配置话。

初识Selenium(三)的更多相关文章

  1. python selenium 三种等待方式详解[转]

    python selenium 三种等待方式详解   引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待 ...

  2. 深入selenium三种等待方式使用

    深入selenium三种等待方式使用 处理由于网络延迟造成没法找到网页元素 方法一 用time模块不推荐使用 用time模块中的time.sleep来完成等待 from selenium import ...

  3. 初识JavaScript(三)

    初识JavaScript(三) 我从上一讲<初识JavaScript(二)>了解到了类型.值.变量的定义以及特点,本节我将学习到JavaScript中的算术运算.二进制浮点数和四舍五入的错 ...

  4. 初识Selenium(四)

    用Selenium实现页面自动化测试 引言 要不要做页面测试自动化的争议由来已久,不做或少做的主要原因是其成本太高,其中一个成本就是自动化脚本的编写和维护,那么有没有办法降低这种成本呢?童战同学在其博 ...

  5. 初识Selenium(二)

    ---------------------------------------------------------------------------------------------------- ...

  6. 初识Selenium以及Selenium常用工具的简单介绍

    一.为什么要学习自动化测试? 在互联网行业中敏捷开发小步快跑,快速迭代,测试环节中回归测试任务大繁琐,手工测试容易漏测,自动化测试可以提高测试效率保证产品质量. 二.学习的层次模型 1.单元自动化测试 ...

  7. Python selenium 三种等待方式详解

    1. 强制等待第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间.看代码: # -*- coding: ...

  8. Selenium 三种等待

    问题 : 强制等待和隐式等待的区别怎么理解? 和pause有什么区别?什么时候适用pause? 第二篇文章更清楚一点. 以下内容引自: https://www.cnblogs.com/xu-jia-l ...

  9. Selenium三种等待元素的方式及代码,需要特别注意implicitlyWait的用法

    一.显式等待 1.显式等待: 就是明确的要等到某个元素的出现或者是某个元素的可点击等条件,等不到,就一直等,除非在规定的时间之内都没找到,那么就跳出Exception. 2.代码: new WebDr ...

随机推荐

  1. 如何将编译出来的images拷贝到windows下面刷机

    由于SPRD的刷机工具ResearchDownload运行在window环境下:这样,我们平时在开发环境下编译出来的镜像文件就不能直接用于刷机了. 这里涉及到一个双系统中文件共享的方法.由于企业信息安 ...

  2. FbinstTool(U盘启动盘制作工具) v1.606 免费绿色版

    软件名称: FbinstTool(U盘启动盘制作工具) v1.606 免费绿色版软件语言: 简体中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP / W ...

  3. php根据IP获取IP所在城市

    转载出处:php实现根据IP地址获取其所在省市的方法 //根据现有IP地址获取其地理位置(省份,城市等)的方法 function GetIpLookup($ip = ''){ if(empty($ip ...

  4. js iframe跨域访问

    1.什么是跨域? 2.前台解决跨域几种方法 2.1 动态创建script 2.2 使用document.domain 2.3使用HTML5新属性postMessage 2.4 利用iframe和loc ...

  5. js 鸭式辨型法

    无意中看到arr.length === +arr.length;这句代码,然后就去了解了下 这是一种鸭式辨型的判断方法. 鸭式辨型:像鸭子一样走路.游泳和嘎嘎叫的鸟就是鸭子 这句话表示: a.arr有 ...

  6. 4. JavaScript 控制语句

    1. If...Else 语句 1.1 条件语句if /* 格式: 1. if ... 2. if ... else ... 3. if ... else if .... else 4. switch ...

  7. hdu 5493 Queue treap实现将元素快速插入到第i个位置

    input T 1<=T<=1000 n 1<=n<=100000 h1 k1 h2 k2 ... ... hn kn 1<=hi<=1e9  0<=ki&l ...

  8. IOS 第三方库之-MBProgressHUD的使用详解

    转自作者: weidfyr  http://www.aiuxian.com/article/p-3121607.html 1,MBProgressHUD常用属性和用法Demo - (void)test ...

  9. 利用Ajax实现前端与.net后端实现数据交互

    使用场景和需求:用户在地址栏输入请求地址,先.net服务器发送页面请求,该页面包含Echart图表,在页面中向.net后端发送数据请求,获取数据后,将数据填充到Echart图表中.其中包含带参与不带参 ...

  10. Windows如何压缩tar.gz格式

    Windows如何压缩tar.gz格式 tar.gz 是linux和unix下面比较常用的格式,几个命令就可以把文件压缩打包成tar.gz格式 然而这种格式在windows并不多见,WinRAR.Wi ...