浅谈基于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. Matlab - 矩阵基本操作

    1. 矩阵的输入 右值是用方括号表示: , 逗号或空格分隔元素     ; 分号分隔行 >> A = [-, ; , ] A = - 2. 矩阵的加减 >> C = A + B ...

  2. Chapter 15_0 模块和包

    通常,Lua不会设置规则,相反会提供很多强有力的机制来使开发者有能力实现出最适应的规则. 然而,这种方法对于模块就不行了.模块系统的一个主要目标是允许以不同的形式来共享代码. 但若没有一项公共的规则就 ...

  3. 查看linux系统版本是32位还是64位

    如何查看ubuntu版本是64位还是32位的: 1.# uname -a 如果有x86_64就是64位的,没有就是32位的 2.# uname -mx86_64 3.# archx86_6 如何查看u ...

  4. WPFbutton样式

    有四款button不同的风格 <Window x:Class="SjglzxRj.Window3" xmlns="http://schemas.microsoft. ...

  5. SPI模式下MCU对SD卡的控制及操作命令(转)

    源:SPI模式下MCU对SD卡的控制及操作命令 一.前言 SD 卡有两个可选的通讯协议:SD 模式和 SPI模式 SD 模式是SD 卡标准的读写方式,但是在选用SD 模式时,往往需要选择带有SD 卡控 ...

  6. YaHoo Web优化的14条法则

    Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在. 法则1. 减少HTTP请求次数 80%的最终用户响应时间花在前端程序上,而其 ...

  7. c#实现输出本月的月历

    效果如图: 代码如下: namespace WebForm { public partial class WebForm1 : System.Web.UI.Page { protected void ...

  8. 为Android系统的Application Frameworks层增加硬件访问服务

    在数字科技日新月异的今天,软件和硬件的完美结合,造就了智能移动设备的流行.今天大家对iOS和Android系统的趋之若鹜,一定程度上是由于这两 个系统上有着丰富多彩的各种应用软件.因此,软件和硬件的关 ...

  9. Sublime 3 and Python

    1. 安装Anaconda插件 Ctrl+Shift+P打开控制面板,找到Install Package,回车 在弹出框中输入Anaconda,回车安装即可. 2.配置Anaconda文件 Prefe ...

  10. 调试MVC项目,不关闭 IIS EXPRESS

    在VS主面板打开:工具->选项->调试->编辑继续   取消选中[启用"编辑并继续"] 就OK了 (英文版的请对应相应的操作) 不过这是针对所有的调试,如果你想针 ...