轻量级自动化测试框架解析

轻量级自动化测试框架解析
2010年06月22日
  因为工作的关系,转而对QTP自动化测试进行一些调研。
  在此过程中,得到一份流传甚广的轻量级自动化测试框架(Qtp),花了一个礼拜时间断断续续看一下,受益匪浅。
  因为同样理由得到这份自动化测试框架的同仁应该也有不少,节省大家时间,也避免自己以后回过头来看又一头雾水,大概做一下记录吧。
  此轻量级自动化测试框架的特点主要有以下几点
  1.使用Vbs的Function代替Qtp脚本中的Action。直接减少QTP脚本的数量
  2.使用单一QTP脚本入口,冗余文件很少
  3.所有用例需要用到的测试数据都储存在一个或多个Excel中,方便更改维护
  4.每一个单独的业务流程即是一个Class,方便脚本的维护和升级
  5.因为相关的测试用例都使用Function代替,所以这个框架在一定程度上是通用的。
  相关脚本可以自行在网上搜索"轻量级自动化框架"
  
  或下载左图(右键选择属性得到地址,放入下载工具下载)
  脚本结构
  脚本主要使用数个类进行层级架构,从规格来看,每个类都包括2个方法:
  1.init*方法:读取指定的excel文件,从其中提取合乎规格的数据,生成一个数组对象
  2.start*方法:生成一个数组对象,使其等于init方法中生成的数组对象,再建立一个下级类的对象,分别以得到的数组对象中的各个项为参数调用下级类中的start方法
  以TestProject类举例来说:InitTestProject方法读取指定的excel文件,该文件格式如下
  
  则InitTestProject生成了一个数组对象,数组对象的格式为(大意)
  
  然后,start方法生成一个数组对象,并使其与InitTestProject生成的对象相等。然后再生成下级类TesSet的对象,反复调用其start*方法,每次都将数组中的一行以参数传递。
  为方便理解,再全面解析一下:
  例如,当前我们以下几个excel文件(可对照下载的样例)
  testsets文件:该文件保存各个测试用例的名称及其所在excel文件名,以及对应测试用例所在的sheet名
  
  (图1)
  189test.xls文件:该文件保存指定测试用例及其测试数据,结合上图,即第3行的测试用例
  另外该文件中的Sheet=loginData中保存了对应的测试用例
  
  (图2)
  
  (图3)
  结合脚本的具体使用,在运行过程中是如下情况
  第一步:建立TestProject类对象,执行StartTestProject方法,内部过程为
  (1)利用InitTestProject方法根据图1生成数组对象,内容为
  ------------------------------
  189test 189test.xls 189test
  189test_2 189test_2.xls 189test_2
  ------------------------------
  (2)建立TesSet类的对象,将建立的数组对象的值依次传入,以调用StartTestSet方法
  在第一次循环中,即是以189test/189test.xls/189test传入调用startTestSet方法
  第二步:执行startTestSet方法。传入数据为189test/189test.xls/189test,此数据指定了目标用例的路径和数据路径,内部过程为:
  (1)用InitTestSet方法根据图2生成数组对象,内容为 ------------------------------ 登录189 5 6 ------------------------------ 此次的数组对象似乎在EXCEL中无法看到,但实际上,它是指示了一个业务流程的范围。上行的意思为:登录189业务,具体的用例在第5行开始,第6行结束
  (2)建立TestCase类的对象,将建立的数组依次传入,以调用StartTestCase方法
  第三步:执行StartTestCase方法,传入数据为登录189/5/6,此数据定义了用例的具体行数。内部过程为:
  (1)用StartTestCase方法根据图2生成数组对象,内容为 ------------------------------ maillogin login loginData Demo login sheet ------------------------------ (2)建立TestTask类的对象,将建立的数组依次传入,以调用StartTestTask方法
  在第一次循环中,即是以maillogin/login/loginData传入调用StartTestTask方法
  第四步:执行StartTestTask方法,传入数据为maillogin/login/loginData,此数据定义了用例对应的脚本文件名称,方法名称,测试数据所在Sheet。具体来说各个数据
  maillogin:测试用例的具体vbs脚本名称,该vbs文件下含有一个同名类
  login:用例方法,该值表示在maillogin.vbs文件下有一个login方法
  loginData:数据所在sheet 该值表示测试数据存在于sheet:loginData(图3)中
  第五步:创建第四部所指定用例的对象,并将指定数据文件的生成一个数组,再依次将至
  因为用例指定文件为maillogin.vbs文件,因此创建了同名maillogin类的对象
  执行方法login,该方法为登录189邮箱,执行的次数为loginData的行数,即第一次执行时,以kongxm/121212为参数执行login方法
  --------
  作者的框架只是提供了一个思路,从结构和内容上来看,似乎还有许多地方没有完成
  框架作者有意在其中导入更多的数据控制,但我在实际使用中,又有了新的想法和理解
  第一:这个轻量级框架的测试结果输出,是以XML格式输出,说的简单些,就好比每执行一个用例,将指定结果打印到某个文件里。我想,既然是基于EXCEL的框架,或许也可以更好的利用EXCEL的一些特性。例如EXCEL中包含了用例的输入信息,或许也可以将用例结果的输出信息提取出来,再输入到EXCEL文件中,结合EXCEL本身,就是一份完整的测试报告
  例:用例为 X+X=?
  EXCEL包含的测试数据为 1 2
  则最后输出 1 2 3 (判断) 至EXCEL文件或是一个新文件 :判断格对前3格进行判断,若格1+格2=格3则显示PASS
  第二:该框架似乎只是单向性的设计,虽然可以将每个用例都选择性执行,但似乎缺乏一个循环。比如说我现在尝试使用的邮箱系统,覆盖面较全的用例固然可以做出,但因为测试的时候,要在好几个服务器上重复测试。要实现这种效果,这个框架目前的结构似乎没有办法。在我现在看来,要实现该功能大概有2种方式,1是简单的在EXCEL格式中复制用例,2是在当前的基础上,再添加一个最顶层的类和对应的EXCEL文件,该类专门用于测试的初始化循环。
  不过,也可能作者本身就有考虑这个问题,也有对应的使用方式,只是我目前还没看到而已
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值