TestSolution.CN 为中国企业提供软件测试解决方案
自动化测试技术
自动化测试框架设计实践
实现基于 ruby 及 watir-webdriver 的自动化测试框架
郝强
2013/8/18
QQ: 79734431
TestSolution.CN 为中国企业提供软件测试解决方案
前言
截止至 2013 年 7 月,我已经工作 12 年了,此时我已经在软件测试行业整整工作了
11 个年头,从手工测试到自动化测试,以及软件测试项目管理,一直在苦苦挣扎着,痛
并快乐着。
目前,软件测试行业在中国已经越来越被认可,而且呈现出一派欣欣向荣的景象,越
来越多的测试书籍充满了书架,当我看到有人将自己的测试经验写成书分享给大家的时
候,让我感觉到这个行业人才颇多,虽然自己还是个菜鸟,但出于尝试的目的,通过本书
描述了最基本的自动化测试框架功能,争取用最简要的方式,带给大家。
我从来都不是技术高手,也不会写高质量的代码,计算机对于我来说只是一种工具。
所以在解决软件测试过程中遇到的问题的时候,我会选择务实的方式来处理,即能够快速
有效地解决问题。所有当高手看到我写出了比较垃圾的代码的时候,请您来信告之我,给
我提升和改正的机会。
在这个自动化测试被炒得越来越热的时期,我也做了几个自动化测试项目。从大块头
的 QTP 以及 RFT 到开源的 ruby,我几乎都做过尝试。
选择适合使用的,并且能够为公司 节省成本的工具才是明智之选。当我学习和使用一
段时间 ruby 后,对它非常着迷,所以我非常期望将这个自动化测试框架入门级的文章能
够呈现给大家。
我目前从事软件测试咨询顾问职业,目前主要在做电子商务的软件测试咨询服务,工
作方向包括测试过程管理,自动化测试,性能测试以及测试队伍培养等。说到性能测试以
及自动化测试,在互联网企业使用的各种技术,企业其实更期望使用成熟稳定的开源软
件,一方面是因为经过市场检验,另一方面使用开源软件可以节省昂贵的软件费用。所以
在选型时,我们对开源软件进行了更多的关注,在能够满足业务使用需求,并且能够达到
商业软件同样的效果的时候,我们肯定会选择开源软件。
在针对电子商务系统进行自动化测试时,我们更多的时候是与浏览器打交道,使用
WEB APP。所以在我们需要实现一个支持多浏览器的自动化测试框架的时候,Ruby 和
Watir 进入了我们的视野,同时我们对于我们要实现的框架有一些基本的要求,如必须是
关键字驱动的,测试脚本必须是可配置的。当我们熟知这些基本需求后,我们花了一点时
间设计了这个框架,最后我们整体用了不到一周的时间就实现了它,实际我们只用了 5 个
人天就完成了,我这么讲是想向大家推荐 ruby,因为用 ruby 来实现某些功能是真的是可以
用神速来形容。
TestSolution.CN 为中国企业提供软件测试解决方案
在本书中,作者假定您已经掌握 ruby 基本语法,有过软件测试经验,了解一些基础
的自动化测试理论或有一定的自动化测试经验。当然,如果要应用此框架,你必须 掌握
HTML 元素的意义 ,会使用 Firebug,Firebug 使用用来捕获 web 元素的属性值。基于以上
要点,你就可以应用本框架,进行自动化测试脚本配置,并且扩展本框架功能,实现贵公
司 特定的自动化测试过程。
本书主要从三个方面来讲解本自动化测试框架。第一是讲解本框架的设计思想,第二
讲解框架核心 功能的实现,最后讲解框架的应用示例。关于本框架的名字,我们命名为
AutoLancer,我们的官方网站是 TestSolution.cn,我们可以在那里更多的讨论本框架以及各
种软件测试相关的技术。
郝强 2013 年 8 月于大连
TestSolution.CN 为中国企业提供软件测试解决方案
目录
前言 ................................................................................................................................................. 2
第一章 框架开发环境安装 ............................................................................................................ 6
1.1 安装 Ruby 1.9.3 ............................................................................................................ 6
1.2 安装 DevKit ....................................................................................................................... 9
1.3 安装 Watir ....................................................................................................................... 10
1.4 安装 IE 及 chrome 驱动 .................................................................................................. 11
第二章 全面了解 Waitr ................................................................................................................ 20
Watir 是什么? ..................................................................................................................... 20
Watir 能做什么? ................................................................................................................. 20
Watir 不能做什么? ............................................................................................................. 20
Watir 对 HTML 元素的支持 ................................................................................................. 20
Watir-WebDriver 介绍 .......................................................................................................... 21
Watir-WebDriver 元素识别 .................................................................................................. 22
Text Fields 输入框 ......................................................................................................... 22
Buttons 按钮 ................................................................................................................ 22
Links 超链接 .................................................................................................................. 22
Divs & Spans .................................................................................................................. 23
处理等待 ....................................................................................................................... 23
Watir-WebDriver 高级交互技术 .......................................................................................... 24
第三章 自动化测试框架设计思想 .............................................................................................. 27
框架逻辑结构 ....................................................................................................................... 27
框架物理结构 ....................................................................................................................... 29
框架主要数据定义 ............................................................................................................... 30
框架核心流程 ....................................................................................................................... 33
TestSolution.CN 为中国企业提供软件测试解决方案
第四章 框架核心功能实现 .......................................................................................................... 37
多浏览器支持 ....................................................................................................................... 37
测试数据的获取 ................................................................................................................... 38
TestObject 类的实现 ............................................................................................................ 41
Action 类的实现.................................................................................................................... 44
Verification 类的实现 ........................................................................................................... 46
CustomizeAction 类的实现 ................................................................................................... 48
CustomizeVerification 类的实现 .......................................................................................... 48
RunTest 类的实现 ................................................................................................................. 49
测试结果的展现 ................................................................................................................... 53
附录 需要了解的一些知识 .......................................................................................................... 56
使用本框架应具备的知识 ................................................................................................... 56
框架新功能的展望 ............................................................................................................... 56