自动化测试构想(转帖)

上一篇 / 下一篇  2011-12-31 16:04:39 / 天气: 晴朗 / 心情: 平静 / 个人分类:自动化测试QTP

★通过QTP现有的功能管理脚本,对象和数据的缺点 
1.脚本文件过大: 
主要是两方面原因导致, 
一是对象库的文件,默认生成得每个空的对象库文件为192K,这样一个空的QTP脚本文件就至少需要192K*2=384K的空间(Action0和Action1),如果分割的Action多的话,占用的空间就更多。 
二是Excel的文件,同样由于分割Action,每个Action需要使用一个独立的Sheet,包括脚本中调用的Action,这个在复杂的脚本中,表现得更加明显。 
2.文件数量过多: 
 一个最简单的QTP脚本,有很多的文件和文件夹,当分割Action较多时,文件数与Action的个数呈正比上升。如果使用Action复用的方式的话,会在维护、转移、版本控件等方面存在巨大的困难。 
3.不利于查看脚本: 
 使用Action的方式来保存脚本,用户在查看相关脚本时,不得不需要打开QTP,然后再把相关Action导入进去,这样将不利于脚本的查看。也给脚本的维护增加了难度。 
4.不便于脚本批量运行: 
虽然QTP自带一个批量运行工具可以批量加载所要运行的Action。但是如果你想要重新调整Action的执行顺序的话,那你接下来就有的你忙了。 
5.测试脚本维护量大,维护起来成本和时间大,维护难度上升 
现在的脚本是对象,数据,和脚本都是保存到一起,放到一起管理的,所以维护的时候需要打开脚本,在脚本比较多的情况下,增加了维护的难度和量。 
6.对异常窗口的处理能力弱 
目前QTP对异常窗口的处理能力比较弱,现在的解决方式是用RecoverySenario或者在后面家IF判断来解决, 假如用RecoverySenario的话,判断的时间很慢,效率低,而且成功率也很低。 
使用IF来判断的话工作量大,只要是有可能出现类似提示窗口的话都要进行判断。 
★解决办法和方案 
1.使用数据库或者XML来保存对象库信息 
脚本所用到的对象统一放在数据库中,并将相同模块的对象放在一个表中。在运行相关模块的脚本前,先将某个模块的对象库通过存储过程提前加载进去。 
2.使用Excel的文件来管理测试数据 
将测试数据保存在单独的Excel文件中, 并将相同模块的数据放在一个sheet中。在运行脚本的时候用到测试数据的时候,通过字段名读取相关数据 
3.使用Excel的文件来编写自动化测试用例 
我们通过使用Excel文件来编写自动化测试用例,通过该文件的相关字段信息来动态生成自动化测试脚本,QTP中没有原始的自动化脚本,而只是调度各个模块的中央控制脚本,这样有利于以后的维护 
4.使用Excel的文件来管理自动化测试用例并且批量运行脚本 
将自动化测试用例保存到Excel中,可以很方便的更改测试的执行顺序,且每个测试人员都拥有一张TestPlan,可以更加清楚的了解测试人员编辑脚本的情况。 
5.编写自定义函数 
我们可以通过编写自定义函数来解决对象识别的问题,或者使自动化脚本操作和维护更加简单和方便 
6.写一个单独的程序来监控异常窗口程序 
写一个单独的窗口监控程序,自动监控异常的类似提示窗口的窗口程序,然后发现该窗口对该窗口进行处理 
★框架需要的功能和结构说明 
1.中央控制模块 
调度所有模块的核心模块,用来通过自动化测试用例来动态生成脚本的核心脚本,在QTP中完成 
2.数据模块 
保存测试需要的数据,通过字段来读取数据,可以通过QTP插件或者自己编写VBS脚本来设置脚本的读取方式,使数据读取更加灵活 
3.对象模块 
对象的相关信息可以通过数据库或者XML来管理和存储,在对象比较多的情况下建议使用数据库进行管理,通过存储过程来读取对象,使相关的对象拼接成QTP可以识别的字符串 
4.比较模块 
没有验证的自动化测试等于没有起到什么作用,所以验证模块也是非常重要的模块,该模块目前为止只能通过自动化测试人员来编写完成,然后通过自动化测试用例中的标识来调用相关模块 
5.自动化用例管理模块 
通过Excel的文件来管理自动化测试用例,来控制自动化用例的顺序或者通过QC来管理自动化测试用例的调度和顺序 
6.日志模块 
跟踪脚本的运行过程,使我们能更方便的找到错误的位置 
7.报告模块 
生成自动化测试的报告,把该报告放到某个文件夹下,方便我们查看结果,一般使用Excel文件来生成报告 
8.导入模块 
通过该模块批量自动的将对象相关信息导入到数据库或者XML中 

TAG:

 

评分:0

我来说两句

Open Toolbar