文档介绍:1前言 3
3
名词术语 3
2功能自动化测试实施原则 5
实施原则 5
5
3实施范围和目标 7
7
实施目标 7
总体实施策略 8
4技术方案实施内容试中的功能测试部分。
功能自动化测试系统应该能完成集成测试、以及上线后功能的回归测试;
方案目标对有界面和无界面的交易测试都能完成,有界面的交易支持如 下方式:
a) 支持字符终端界面;
b) 支持B/S的Web界面;
c) 支持C/S的Windows应用程序界面;
功能自动化测试方案对目前大部分应用系统都可以进行测试;
实现自动化脚本录制、自动化脚本执行、自动化缺陷报告和管理。
首先从目前系统中选择适合自动化测试的项目和系统;
其次确定实施功能自动化测试的阶段和时机;
第三从适合的项目中选择适合自动化测试实施的功能和交易。
具体实施策略参见第6节的实施管理建议。
4技术方案实施内容
Sahi的特性和优势:
当提及面向Web的自动化测试,相信许多读者会想到或者说使用过Selenium、 Watir等工具,而对于Sahi就可能比较陌生。首先,让我们先来了解下Sahi工 具。它是一款印度公司Tyto Software开发的成熟的开源Web自动化测试工具。 Sahi简单易用,,同时适用于敏捷和传统的 不同测试模式。那么,它与其他非常流行的Web自动化测试工具有哪些不同和 优势呢?让我们将其与主流自动化测试工具Selenium和Watir来进行一番对 比,请参考图1:
图1. Sahi与其他工具的对比
从上图的对比可以看出,Selenium支持的脚本语言比较丰富,且自带Selenium IDE自动录制工具,Watir执行的速度相对其他较快。而Sahi同样具备了自带 的录制器,且支持几乎所有浏览器,且对JS支持较好,拥有页面等待判断机制, 内置Java异常报告,支持Ajax等优势。
下面,本文将详细介绍一下Sahi的几大优势。
基于上下文的页面识别机制:
大多数如Selenium等Web自动化测试工具或是自动化框架,都采用类似基于 DOM的定位策略、Xpath定位策略和id、name、identifier等页面元素定位策 略。
Identifier定位是最普遍的一种定位方式,当不能识别为其它定位方式后,默 认为identifier定位。在这种策略下,第一个使用id的页面元素将被识别出 来,如果没有使用指定id的元素,那么将识别第一个名字与指定条件相符的元 素。
例如,identifier 识别 username 元素的定位策略:identifier二username
Id定位是在知道元素具体id特征的情况下的一种更精确定位。例如,定位页 面元素 loginFrom: id=loginFrom name定位方式是去识别第一个匹配名称属性的UI元素。如果多个元素拥有相 同的名称属性,可以使用value过滤器来进一步优化您的定位策略。例如,定 位页面元素为
username:
name二username
Xpath定位是在XML中定位元素的方法,而HTML可以被看作是XML的一种实 现。XPath扩展了上面id和name定位方式,提供了绝对路径和相当路径两种 查找方式。
绝对路径:html/body/div[1]/div[1]/div[3]/div[1]/form/span/input[1]
相对路径查找://div[***@id='fm']/form/span/input
然而,在实际的情况下,页面元素并非如预期般明确。一些动态页面的DOM树 常常随着Web产品的更新而频繁改变。许多的元素值如ID、Name等在代码中 并不是必须的,常常会缺省。并且,属性值往往不是唯一对应的,页面中有时会 存在相同属性的元素。当缺省id值或是Xpath定位失效时,上述这几种查找 定位方式往往显得无助和脆弱。
Sahi采用了一种主动查找的机制,它不受限于特定的元素属性。在没有ID、Name 值的情况下,它可以使用一些如“ title,value ”等属性,这些都是页面可见的 属性,所见即所得。同时,Sahi会通过传入这些可见可识别的属性值,来按照 Sahi预设的机制进行查找识别°Sahi允许开发者对每一种元素设置不同属性和 特定的查找顺序,包括那些自定义的属性名。所以Sahi相对于其他的Web自 动化测试工具更灵活更开放。
比如,_link("valueName”)用来定位一个定义为“valueName”的link,这里 的valueName并不一定是value的属性值,也可以是它的id、titl