现在基本每个项目都开始或多或少的有自动化测试用例了,当然也就有了一些测试框架,还有一些比较有名的开源框架比如,selenium staf等等,如果目前项目中你要负责开发一款自动化测试框架呢,前段时间负责一款接口测试自动化测试框架的设计开发,它不同于以往我开发的测试框,他是和数据库打交道的,所以如何让准备数据更灵活更方便是我着重考虑的,目前开发已完成并且很好用。哈哈
正好在着说说测试框架设计
测试框架,目前业内来看就三种:
1、录制回放的框架
2、数据驱动的框架,这种框架又分为数据和用例分类和数据与用例为一体,当然他们各有利弊
3、关键字驱动的测试框架
总的来说,第一种最简单,但是缺点也很明显,不以维护,第二种和第三种不相伯仲,需要根据具体的问题具体分析,但是第三其实有一些人工智能的影子,可以代码生成代码,BDD测试(Behavior. Driven Development)框架,比如jbehave easyb其实就可以看做关键字驱动的测试框架
数据驱动的测试框架,在上个我负责的项目中,实际我也是使用这个方案的,数据驱动的框架中,数据时重点,如何让用户更容易的造数和是用他是你框架成功与否!这里大家简单来看其实就是一个三层结构,数据准备层,测试过程规范层,drive层,负责执行等等
这里的数据是否分离呢,其实这个问题是没有更好答案的,要具体问题具体分析,因为数据如果分离,以后的case变化可能只需要维护数据,case的代码是不用动的。当时你能控制的是数据块,可能是一个文件等等,不方便深入到数据的内部。如果不分离好处是,你在case中一眼能看到你的数据,你想测试的是什么,并且整个测试过程是你可见,测试数据完全可控制的,比如一个log,已\001分割,你可以完全控制log中分割的每个字段。但是会增加维护的成本,目前我刚开发完成的框架支持以上两种数据提供,测试人员根据具体情况使用
关键字驱动框架,如果需求是数据和业务case尽可能的分离,那第三种方式是比较适合的,它可以保证业务与实现分离,数据与业务分离,层次清晰,易于维护。
大家还可以尝试一下代码生成代码,在上个我写的框架中,就运用了这个方法,很多common的东西,有固定格式的项目的具体的代码文件都可以考虑用代码生成代码,能很大限度的提高效率。
版权声明:本文出自 shadowwalker 的51Testing软件测试博客:http://www.51testing.com/?622454
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。