应公司和领导的需要,我们临时成立了一个自动化测试小组。因为QTP的版权问题,转而使用robotframework工具确实给我们带来了不少麻烦,毕竟QTP的手动录制能力是要比robotframework这个工具手动写脚本好很多的。为此,为了规范工具的时候和后续的管理,我带领着团队开了多次会议定下了方案。
一.工具的脚本维护规范
为了方便维护脚本和可利用性,我们根据某大神的建议大致把脚本分为了五大部分(元素层、页面层、流程层、用例层和公共组件)。元素层为脚本人员编写每个页面上元素的关键字并进行封装,然后页面层负责将元素层的所有元素进行组合并填入测试数据,流程层对页面层的流程进行组合。最后用例层调用流程层(页面层)的关键字即可。之所以要分出如此多层次,主要是因为元素层为脚本人员修改脚本,页面层和流程层为调试人员运行脚本,最后结果通过用例层输出。
二.关于公共组件的诞生
在一些公共的模块里面,做过自动化的人发现有些自己编写的元素关键字用得特别频繁,例如登录。于是我建议将那些使用频繁的元素关键字单独列出来,编入公共组件。公共组件的元素关键字的定义,我们通过了会议讨论,最后决定了整个项目,那些被定义为公共组件,并安排相关人员进行开发该模块的脚本。公共脚本人员要先于模块脚本人员进入开发阶段。
三.团队人员分工
自动化团队里面,我把人员都划分为:公共脚本人员、模块脚本人员和调试人员。公共脚本人员先于其他人员进行开发,模块脚本人员开发自己任务模块的脚本,最后由调试人员对公共组件和模块脚本进行联调,填写测试数据,在用例层进行运行。
由于调试会消耗模块人员编写脚本的时间,特别是当需要run很长流程的时候(注意,这里的调试是指公共、模块和测试数据的联调。脚本人员对比较容易调试的脚本还是要做单元测试)。为了避免时间上的消耗,调试人员可以从SVN拿到脚本 人员的脚本在机子上调试,对出现的bug及时反馈给脚本人员。
四.脚本的管理
目前为了避免脚本人员机子出现问题,要求完成好的模块发布到SVN,在SVN上统一管理。调试人员也可以从SVN拉去脚本进行调试。当然,目前使用SVN管理脚本还存在的一些问题。这些问题在后续管理中会进行解决。
五.持续集成的使用(未开始)
在本月结束之后,即将计划引来持续集成。该话题的管理将会继续持续。。。
后面附上本次开发的每个层级使用,请各位可以提出建议或者问题,笔者后续跟进修改。
1.元素层编写每个元素关键字
2.页面层组合元素层、公共组件和测试数据
3.流程层组合页面层所有流程数据
4.用例层只负责最后的运行