GUI功能测试自动化模式
作者:网络转载 发布时间:[ 2013/11/29 13:31:46 ] 推荐标签:
元框架
该模式定义了一组基础的独立工具类。对任何自动化工具来说,它们都是通用的,而且可以在不同自动化项目之间复用。
当需要在一个组织机构中测试不同的项目,而且企业标准要求测试结果采用统一的界面时,或许需要这样的解决方案。此外,元框架改进了项目间代码复用的度量标准,因为它可能会包含有用的工具方法。有关功能和测试对象的基础类,简化了项目之间知识的转移。元框架展现在图3的右侧。
功能组合模式
功能方法
针对特定于应用的业务功能,从其UI实现、API或其他层面进行了抽象。
用于自动化测试的许多工具,都支持创建被称之为“场景记录”的功能。当一位测试开发者针对特定应用执行特定操作时,这些工具将自动创建一份测试脚本。它可以在稍后进行回放,并检查在程序发生变化后,该脚本是否得到了正确的执行。
例子:改变登录界面的外观,将要求在全部预计的测试场景中的对应部分都进行变更。如果我们将登录方法提取为Application.Login(username,password),并在全部测试中使用这一方法,那么当登陆页面发生任何变更的时候,我们将只需要修改仅仅这一个功能方法,随后变更会被自动分发到所有使用该方法的测试中。
图4:测试脚本与(a)缺乏功能方法的过渡层的用户界面之间的交互;(b) 带有功能方法层的用户界面。当应用发生变更时,阴影部分对象将会被改变。
页面对象
这一模式将某个页面的功能方法组合在一起。
由于图1中展现的用于应用的功能方法数量不多,因此它们可以移入一个单独的类。但是为了提升代码可维护性,此模式建议依据这些方法所代表页面,对其进行分组。例如,这些对应关系可以包括:页面:PageLogin——方法:Login();页面PageHome——方法:Logout()、CreateUser()。
功能库
它将某个特定应用的功能对象或(和)功能方法分组打包,成为一个适合复用的模块。
SUT的启动和拆卸对象(SUT运行者)
该模式支持被测系统的初始启动,即它的初始化。在此之后,测试对象释放与该系统相关的资源。
在功能方法之中,我们可以区分出与功能测试无关的方法集合:例如启动某个Web浏览器,并访问SUT的登录页面。而在测试之后,Web浏览器应该被关闭。SUT运行者负责以上这些通用活动。
对象源(对象之母、对象精灵、对象工程)
该模式按测试执行所要求的形式,创建并初始化的对象。
运输者(导航器)
根据测试要求,它将被测试系统中的导航控制集中在一起。
该对象封装了与被测试系统内部的导航实现有关的完整逻辑。因此业务逻辑的问题不会影响系统内的导航。
对于图1所描述的情况,我们将拥有一个Transporter类(运输者),它拥有以下方法:NavigateToLogin()、NavigateToHomePage()和NavigateToCreateuser()等等。或者,每个独立的页面(page)对象或许都会拥有自己的运输(transport)方法。在这种情况下,这些方法作为该对象自身的运输者。
复合页面对象
该模式将复用的页面(page)对象聚合在一个外部对象中。
这一模式支持用更加“面向对象”的方式来组织页面对象——把可以在不同页面上复用的子对象分离,并将其包含到父对象中。
图5:通过在主页和创建用户页面对象中聚集,来使用导航页面(Navigation Page)对象
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11