2013-陈永达聊框架

陈永达聊框架
最近很多朋友都问了我关于自动化测试框架的东西,我就用我对框架淡薄的认识,聊一下我对框架的理解,个人见解,欢迎讨论。

框架一词在自动化测试里,一直都是一个很模糊的概念,到底什么是框架?搜索一下:框架(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

22 thoughts on “2013-陈永达聊框架

  1. 看了这篇文章,具体还是不太明白框架是什么东西。也许楼主讲的还是有点深刻。可以说,QTP本身是一种框架,这种框架可以应用于所有的app的或者web的自动化测试。框架包括对控件(Components)提取和识别,然后是操作,然后是业务逻辑(test steps),数据层test data – 不知道理解的是否对?

    1. QTP只能算是个工具。就像我们说二分法是个算法,但是我们不会说用来写二分法的java是算法,更不会说用来编辑java的IDE的Eclipse是个算法,那算法又是什么呢,道理差不多。

    1. 呵呵,也别这么说,这文章也是7个月前的了,随着时间的推移,理解也会有所改变,现在觉的有些说法也可多推敲推敲。

  2. 达哥你好!

    你说那3层,分开来有点思路,可是如何连接使用,具体思路又是什么?求分享,谢谢

  3. 有些人反映说的太简单,我个人补充一下:这个本就是个引子,如果现在有能力编写框架的话,最后那三点就是一个很好的提示,总不能把具体的函数一个个都贴出来吧,感觉没那必要。如果觉得看完没什么头绪,那就先别尝试框架,框架毕竟是需要较好的编码能力和逻辑能力,只要有一点不足便会导致框架事倍功半,发挥不出框架的作用。

  4. 我写的脚本还没分成三层 都一个功能块一个功能块地写,只是有些方法会复用。跟哥写的差远了。

发表评论

邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据