我的GUI自动化测试框架发展历程

发表于:2011-11-09 10:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:文青山    来源:51Testing软件测试网原创

分享:

  4、建立测试用例与数据对应的关系,并采用了数据驱动的方法。

  5、考虑到了QTP运行异常,使用了QTP故障恢复机制来尝试解决这些问题。

  在构建此方法时,对框架的理解很肤浅,考虑的出发点仅仅是如何建立数据与用例的对应关系,并考虑解决在“失败的框架1”中出现的目录构架的问题。虽然该方法引用了故障恢复机制,但QTP的故障恢复机制确实很不好用,因为几乎所有的操作都要求能基于仓库对象和已知异常。

  如何建立测试用例与测试数据的对应关系?在此方法中进行了尝试,某些书上说的建立测试数据与测试用例的一一对应关系,从实际使用的效果来说似乎并不怎么好。同时,由于使用读取Excel函数的问题,导致出现了预期外的额外工作。尤其是系统测试用例的某些测试用例有些是具有概括性,在构建这些用例的测试代码时,还得去改造用例。同时我也深刻地领会到在构建脚本的过程中一个坏函数,可能会影响你整个架构的实现,也有可能会影响到你脚本的测试结果。

  在编写脚本的过程中,由于注释的缺少引起了后期维护的问题。命名的规则太随意也导致了大量意想不到的问题。通过外部构建测试对象的方法,也是非常二的!至少通过使用vbs文件这种方法来构建我是不赞成的。另外,老大要求将测试结果直接写入Excel中,并安排这些用例不再经过测试人员进行测试的这种与手工测试策略结合的方法也非常的令人担忧。

  第三部分:GUI自动化测试框架qwenTest

  文档目录的组织方式:

  0DocumentLayer:里面包括一些流程管理文件,做自动化测试前需要走完此流程

  1ObjectLayer:提供对象库,该对象库可以是QTP的对象库,此处采用共享对象库的方法;同时这里也可以是基于Excel进行管理的对象库:

  2BasicLayer:提供了一些常用的方法类。其主要方法TestObject可以从Excel中读取对象的属性和属性值来建立对象库:

  3ConfigLayer:用于存放配置内容,所有配置文件均在此统一管理,并使用xml文件来实现。

  4OpertionLayer:用于存放一些本测试项目可能公用的测试方法

  ……………………

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

  第一层:对象层

  如果是用TestObject方法获得对象库,则需要调用相关方法来获得Excel中的每一个对象。如果是QTP的仓库对象,那么对仓库对象每个对象的命称需要按照规则来定义。

  第二层:业务层

  封装其功能的主要过程,以供实现层调用。

  如下面这个例子:

'根据所指定的角色点击控件
  Function pOpedom(ByVal intRole)
     On error resume next
      If intRole=0 Then
       SwfWindow("登录").SwfRadioButton("登录_管理人员").Click
      suc =0
   else
    SwfWindow("登录").SwfRadioButton("登录_读者").Click
    suc =1
      End If
   If err.number<>0  Then
    ''记录日志
    msgbox "pOpedom函数异常信息:"&err.number&space(2)&err.description
    suc =-1
   End If
  End Function
  ''输入用户名密码登陆系统
  Function login(uName,pwd)
   SwfWindow("登录").SwfEdit("登录_图书证号").Set uName
   SwfWindow("登录").SwfEdit("登录_密码").Set pwd
   SwfWindow("登录").SwfButton("登录_确定").Click
  End Function
  ''根据权限判断登陆过程是否成功
  function isLogin(ByRef intRole,ByRef uName,ByRef pwd)
     On error resume next
     Dim suc
      suc=pOpedom(intRole)
      If suc =0 then
     Call login(uName,pwd)
     If SwfWindow("主界面 - [添加用户]").Exist Then
      isLogin=1
     else
      isLogin=0
     End If
   elseif suc=1 then
    If SwfWindow("主界面 - [添加用户]").SwfWindow("借书").Exist then
               isLogin=11 ''工作人员登陆成功
    else
     isLogin=10 ''工作人员登陆失败
    end if
   elseif suc=-1Then
       Exit function
     End If
      If err.number<>0  Then
    ''记录日志
    msgbox "isLogin函数异常信息:"&err.number&space(2)&err.description
   End If
  end function

  ……

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

  版权声明:本文出自51Testing软件测试网电子杂志——《51测试天地》第二十三期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

55/5<12345
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号