最近很多朋友都问了我关于自动化测试框架的东西,我就用我对框架淡薄的认识,聊一下我对框架的理解,个人见解,欢迎讨论。
框架一词在自动化测试里,一直都是一个很模糊的概念,到底什么是框架?搜索一下:框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
框架好比是个舞台,提供舞台,Tester只需跳舞就好,不需要考虑舞台的搭建;框架好比是麦当劳,Tester只需点汉堡薯条和付钱,不需要考虑汉堡的制作工艺;框架好比火车,Tester只管买票上车,不用考虑火车的问题。所以,框架能帮助Tester们做到编写脚本更快,复用率更高,更专注于测试用例。
学习自动化框架的时候,看过FrameworkManager框架,看过Based轻量级框架,SAFFRON等,虽然这些框架写的十分有意思,但也有些与自己的想法不符合的地方。FrameworkManager几乎用Excel代替了对象库的用法,怎么说呢,我个人觉得对象库是个很不错的东西,维护和识别问题上,我个人觉得都会比用Excel描述然后组装要方便快捷的多(网上很多有关“对象库编程”好还是“描述性编程”好的讨论,我比较赞成结合使用,不过还是以对象库为主。至少我不认为自己用脚本进行描述对象会比HP和Mercury花那么多人力物力财力开发的对象库会更好用)。有的框架的Log并不是我喜欢的,有的数据也不是我需要的。有的框架则大量使用控件的自身接口进行测试,我个人觉得这个也不太好,毕竟我目前还都只是做功能测试自动化,测的不少系统使用自身接口进行赋值都只是表面能赋值,而实际无法正常使用。
所以,总想着能用上自己的框架,在经过大量编写、推翻、编写、推翻的过程后,现在做项目基本都是自己写的框架。
我个人比较主张针对项目的专用框架,而不是网上能看到的通用框架。毕竟很多公司没有自己的自动化测试团队,也没有全职的自动化Coder。那这个框架就需要能到达很好的复用,和提高效率,而将对各种系统各种控件的兼容性编写的时间降到最低,这便很难保证框架在这个项目上能用,在那个框架上也能用了。
框架的样子依旧是vbs文件外部加载。方便、快捷、好用。
框架也有输入和输出。输入为测试用例和运行配置,使用Excel进行保存;输出为Report和截图,Report使用html,能使用CSS写格式,能改颜色能加超链接到图片,感觉够用了。
框架的内容我分了三层:
- 一层为QTP操作,如运行时最小化QTP、创建所需的目录、截图、杀掉某进程、打开IE、生成些符合自己需要的数字或子串等。
- 一层为业务操作,根据被测系统的业务,选择高复用的模块或流程进行编写,如登录、注销、表单上数据的获取、表单的审核过程等等。
- 一层为数据层,负责获取和处理测试用例,和获取运行时的配置。
总的来说,目前的框架已经满足了我的日常需求。
Tester走自动化框架的路走的不易,路上会遇到很多的坑,会遇到很多不理解的领导,会遇到很多不符合你走自动化的规章制度,大家一起努力加油吧。
PS:有些人反映说的太简单,我个人补充一下:这个本就是个引子,如果现在有能力编写框架的话,最后那三点就是一个很好的提示,总不能把具体的函数一个个都贴出来吧,感觉没那必要。如果觉得看完没什么头绪,那就先别尝试框架,框架毕竟是需要较好的编码能力和逻辑能力,只要有一点不足便会导致框架事倍功半,发挥不出框架的作用。
其他发表链接:
51testing:推荐:http://www.51testing.com/html/60/n-842760.html
看了这篇文章,具体还是不太明白框架是什么东西。也许楼主讲的还是有点深刻。可以说,QTP本身是一种框架,这种框架可以应用于所有的app的或者web的自动化测试。框架包括对控件(Components)提取和识别,然后是操作,然后是业务逻辑(test steps),数据层test data – 不知道理解的是否对?
QTP只能算是个工具。就像我们说二分法是个算法,但是我们不会说用来写二分法的java是算法,更不会说用来编辑java的IDE的Eclipse是个算法,那算法又是什么呢,道理差不多。
很实在的内容
谢谢~呵呵,近期我想整理整理,把这个上面写的那个小轮子公开出来。
小陈同学, 能总结的都是聪明人儿!
看来自己要学的还有很多,哎感觉自己的无知。。。
呵呵,也别这么说,这文章也是7个月前的了,随着时间的推移,理解也会有所改变,现在觉的有些说法也可多推敲推敲。
怎么都用多说啊
就是因为都用才用啊~这样账号啊,通知啊才能通用啊~
看来要学习的东西多着呢,要一步步的学啦
嗯 呵呵,加油~
达哥你好!
你说那3层,分开来有点思路,可是如何连接使用,具体思路又是什么?求分享,谢谢
嗯,看来得抽空写个续文出来,看来关心这个问题的人很多嘛~哈哈
天天都会来学习
有些人反映说的太简单,我个人补充一下:这个本就是个引子,如果现在有能力编写框架的话,最后那三点就是一个很好的提示,总不能把具体的函数一个个都贴出来吧,感觉没那必要。如果觉得看完没什么头绪,那就先别尝试框架,框架毕竟是需要较好的编码能力和逻辑能力,只要有一点不足便会导致框架事倍功半,发挥不出框架的作用。
说的很实在,都是有用的东西,谢谢分享。
我写的脚本还没分成三层 都一个功能块一个功能块地写,只是有些方法会复用。跟哥写的差远了。
陈哥出品,必属精品哦~
看完还是没概念,求分享
不是太方便共享,但是一些东西会慢慢的持续写出来,这个表急~呵呵
(咖啡)还可以在加深下 吼吼
看看反响再说~(呲牙)