[转]浅谈自动化测试的脚本框架

上一篇 / 下一篇  2010-03-09 12:33:39 / 个人分类:测试技术

作者:朱伟

一、引子

随着这几年测试的重要性被越来越多的公司认识到,测试行业也如火如荼的发展起来,测试不再是可有可无,谁都可以做,也不再是比开发矮一个台阶的职务了,而象征测试的一些特色的技能也被更多的人关注和重视.其中自动化测试就是一个特殊的领域.随着技术的发展,自动化测试已经不是少数几个大公司专用的测试技术,很多公司都开展了这方领域的学习和尝试,整理这几年在论坛上发贴的关注度不难发现,从前的问题很多是询问工具下载地址,破解方法和入门学习手册,而今不少是在谈论自动化测试的构建,这是因为大家在实践中会遇到了一些瓶颈,经常会发现脚本维护的工作量远远高于手工测试.这样的效率不是大领导们希望看见的,也是自动化测试必须解决的问题,于是很多人开始对脚本的管理和可重用性,可扩展性进行很多坚持不懈的研究.

二、介绍

社会上有一些主流的自动化设计框架的理论和介绍,本文笔者将结合工作使用的

silktestQTP,介绍对自动化框架的认识和在项目的实践的体会,很多观点只代表个人意见.在此笔者将自动化脚本分5,分别如下:

测试用例层

提取层

应用层

普通层

工具层

三、解释

以下笔者将介绍这几个层的概念.

0.测试用例层

该层就是我们实现测试用例的脚本.在此我把脚本分为两类,一类叫做主脚本,另一类叫做子脚本,从字面上理解,子脚本是实现各个功能点的脚本,当然也会提取出一些共用的方法,我们会放在提取层中,下面会提起.而主脚本就是根据业务流程的需要来控制各个子脚本,来实现脚本间的数据传递.题外话,我们会在主脚本中使用数据驱动,来控制脚本的实现各种场景的流程.在此个人感觉silktesttest suitestest plan的概念是一个很现成的管理脚本的方法,而在QTP,我们可以建立一个mainaction来实现这样的功能.

1提取层

本层是一个项目脚本可维护性的关键,我们会把项目共用的常量,通用的方法,函数放在该层.而这些方法和函数往往是这个自动化项目中最难设计的一块,不同的项目可能使用的方法和思路也不一样.项目中很大的一部分工作量会消耗在这里.比如我会把脚本进入的初始化的方法放在这里,该方法将帮我配置我的运行环境,从服务器上拷贝数据,当然也会针对一些已知的或者或未知的异常情况进行处理,来恢复正常的下个脚本的运行.silktest,我们会放在INC文件下,QTP我们可以自己写一些VBS的文件等外部文件来存放和维护.

2应用层

我们的对象库就是放在本层,做自动化的人都清楚对象库的好坏直接决定了该项目自动化的成败,相对于QTP有强大的对象库管理的功能, silktest相对就是一个比较原始和底层的对象管理模式,更像使用描述性编程的QTP,当然两者之间还是有很多差异.在此笔者建议假如是大规模的项目,不妨专人负责对象库的维护和管理,该人需要很高的自动化经验,他的责任不仅仅在项目初期把底层的对象库建立起来,在中期和后期对对象库的维护,更多的是针对项目的特殊情况对工具层提供的方法进行继承和扩展.比如我们可以对close的方法进行扩展,添加自己的LOG日志,甚至可以结合普通层中对于性能的方法进行一些性能数据的采集等.在项目的实践过程中,会有事半功倍的效果的.

3普通层

这层是衡量一个公司自动化水平的标志,这里集合了很多项目的经验,是一个通用的方法的集合,通常的我们会把自己的LOG日志的方法,数据库的操作等等,当然也有一些通用的函数方法放在这里,比如说上面说到的采集性能数据的方法,捕获异常的方法等等.

4工具层

该层就是工具提供的一些方法,比如click,dbclick等此外无规矩不成方圆,文档,备注的维护也是不可忽视的重点,一般的自动化测试都会持续半年以上,所以制订相应的流程,文档规范化是一个好的项目必备的要求.

四、结束语:

本文只是笔者自己的一些经验的分享,希望可以抛砖引玉的引起大家的一起学习进步,毕竟在国内自动化的普及和深度都在初级阶段,更需要我们的一起努力来提高.有时间更希望能拿一些具体的例子来讨论这个话题.

此外本文的题目也让笔者煞费苦心,因为自动化框架的范围很大,而我只是对其中的一部分进行了一些自己的总结,只是实在想不出什么更好的题目,暂且就这样定吧!谢谢。__


TAG:

 

评分:0

我来说两句

Open Toolbar