【专家访谈】开源自动化测试框架KDATFFS作者 - 王幸福

发表于:2012-2-20 10:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王幸福    来源:51Testing软件测试网采编

  王幸福对基于Selenium自动化测试有深入研究和丰富的实战经验,此外,对开源工具WatiN、JMeter、商业工具QTPLoadRunner等工具都有广泛涉猎和研究,自动化测试的拥簇者,擅长自动化测试的框架和工具开发。

  以下为专访王幸福记录整理:

  -----------------------------------------------------------

  问题1:您现在的主要工作是什么?您是如何开始从事自动化测试工作的?

  答:目前是从事与自动化测试相关的工作,比如框架的开发,脚本的开发都会参与。从事自动化测试也没有什么特殊的契机,在之前的公司,一开始是做软件开发,后来转做测试,一开始是手工测试,由于有开发的底子,所以后来慢慢对自动化测试产生兴趣,而公司恰好有做自动化测试的意向,所以我就开始负责自动化测试这一块了。

  问题2:您当初是出于什么目的开发KDATFFS的?KDATFFS与QTP的区别是?

  答:还是基于实际工作的需要吧,因为之前自动化测试使用的是Gallio+watiN这样一个方案进行的,好处是Gallio有着完备的断言判断,日志输出,但维护起来确实挺费力的,公司网站的元素和数据的改变经常使测试脚本要变动,然后重新编译。所以就构建了这么一个关键字驱动的框架来实现脚本,数据之间的松耦合。至于KDATFFS和QTP的区别,呵呵,有点小巫见大巫的感觉,KDATFFS是基于Selenium开发的,那么它和QTP的主要功能对比网上有相关的文章介绍,我这里就不赘述了。简单的说一下其它的区别吧,一个是录制方面,QTP录制会产生脚本和关键字,但是KDATFFS只会产生关键字,所以会不具备使用测试脚本所带来的灵活性。在执行测试时,KDATFFS也只会执行包含关键字的测试文件。但KDATFFS的测试文件是放在Excel中的,编辑或管理会方便一点。当然,QTP作为商业工具,它的一些强大功能不是KDATFFS可比拟的,但使用KDATFFS应付一般web测试,应该是没问题的。

  问题3:能否简单介绍一下KDATFFS的开发思路?

  答:KDATFFS是一个关键字驱动的框架,那么我们先来看看KDATFFS的关键字表格,这样可以更清楚的了解KDATFFS的开发思路

TestId TestStep CommandType Command CommandArgs FindMethodType FindArgs ExpectedValue Frame Window Comment 
test Browser Goto http://baidu.com       
test Element Click  Id kw    

  表格中的一行对应的就是一个测试步骤对象(TestStep),这一行的各列都是Teststep这个对象的属性。我们都知道关键字驱动有这么几个重要的元素:对象,动作词,输入值。那么TestStep就是对象,Command就是动作词,CommandArgs就是输入值。这里还需要说明的一点的是,TestStep这个对象并不仅仅是页面的元素,实际上它有三个类型,Browser,Element,Validate,分别对应的是浏览器对象,页面元素对象,验证对象。

  这里我们还需要介绍一下winform程序和web程序的差异,在winform中,元素有个唯一的识别符Name,我们只要给出Name就可以直接定位到该对象了。但是在Web程序中,元素并没有唯一的识别符,它可能有ID,也可能有Name,也可能什么都没有。那么就牵涉到一个如何定位元素的问题,一般的测试工具定位元素的方法就是通过遍历页面元素查找与属性值相匹配。那么就必须有通过什么属性查找什么值的条件。所以FindMethodType就是通过什么属性查找,FindArgs就是属性的值。Frame列是为了解决web页面中的Iframe结构问题,而window是为了解决弹出窗口问题。

  说了这么多,其实KDATFFS的开发思路总结下来很简单,就是用关键字表格来映射Selenium中对象,这样在执行测试时,KDATFFS会解析关键字各列中数据,使之转化为Selenium中的对象来进行相应的操作。

  问题4:如果我也想开发类似的工具,需要掌握哪些方面的技术和能力才行啊?

  答:首先至少掌握一门编程语言,比如java,c#,python等等,其次要具备一定的面向对象编程的思想。对一些开源的测试工具比较熟悉,比如watin,watir,selenium等等,需要知道它们的主要对象,对象的属性,以及如何使用它们进行测试。毕竟只有驾驭它们,你才能在此基础上去做一些事情。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号