自动化测试测试平台策略 之模块交互策略
序言:要做一个自动化测试平台,越强大的平台,其模块之间的交互越难,也就是各个模块之间的接口定义越难,而如何采用一种策略去规范各个模块的接口、消息格式和交互方式更是难,这一点,我觉得可以从学习网络协议中找到一丝灵感,那些协议的交互方式以及消息的格式传递都是值得学习的,以前觉得学习协议纯粹是为了了解,现在学习真的是想掌握其几点精华思想,突然能够想象到:一群人在一起思想的碰撞,不断的去总结,去发现,去实用,才有了现在的协议标准。觉得,不一样的领域都去发现才能有所感悟。
一、自动化测试平台中的模块
1、软件产品是具有一系列特定功能的组件组成,其系统可以被分为一系列的功能模块,每个模块所特有的信息处理过程都被包含在模块的内部,如同一个“黑箱”,这就是“封装性”,然后模块与模块之间按照一定的规则相连则成了一个复杂的系统(一个系统也可以作为一个模块,去组成更复杂的系统)。
2、而在自动化测试平台的系统开发中,首先,按照其抽象出来的自动化测试流程和方式划分一系列的功能模块,这些功能模块都能脱离系统独自使用,有的模块独自使用能够提高一些效率(像CLI测试中的基于脚本的自动化测试框架,GUI测试中的基于工具的自动化测试框架等都是一种模块,还有一些测试工具),然后在此些模块的基础上,我们定义一些交互规则,将他们以最好的方式进行安排在自动化测试流水线上,然后提供一个统一管理的界面,慢慢的,就构建成了一个自动化测试平台。(关键点:必须在测试功能模块独自提高效率的基础上,能够在测试流程中加以应用,平台的作用伴随更多的服务,将他们流水线化)
二、自动化测试平台平台构建难点
1、如何在测试流程中提炼自动化测试流程,然后抽象出自动化测试流水线。
2、如何能够统一规划整个测试部门的测试资源,这需要一个服务器去统一存储和调度管理。
3、然后,很关键的一步:如何将已有的功能测试模块结合起来,即建立一套良好的交互协议和交互消息格式,使其能够很好的交互和互补,真正完成自动化测试流水线的运作。
三、自动化测试平台模块交互策略分析
以下策略是自己对测试平台建设中的一些提炼,不一定完全适合,可以参考
1、策略1:服务注册机制
即定义一个框架,其框架提供相应的API,所有的模块利用这个API遵循一定的规则都可以作为服务注册到这个框架中,注册的同时,也对该服务的发送和接收的消息进行了规定,不同的消息可以调用其模块不同的功能,然后,模块则可以以这个框架为媒介,以传递消息的方式互相控制。当然,对于数据的存储,需要单独提供一个空间,可以是服务器,也可以是内存机制。
2、策略2:消息分发统一机制
即定义一个消息分发模块,模块的交互都会经过这个消息分发模块,这个消息分发模块将消息进行解析,然后传送到对应的模块。
这里,两种策略都需要统一规定好消息的格式。可以参考网络协议中的一些消息格式,例如一个简单的:
总之,个人上次听过一句话,如果你在一个行业领域已经停滞不前,那么就将眼光放宽,去另外一个领域去看看,往往这样,会激发你无限的灵感。这也许是真理啊,乔布斯不就很爱好艺术吗?马云不就是个金庸迷吗?当然,不是说要去复制,个人觉得,说的是不要闭门造船吧,而是学会提炼共性,在思想中升华吧。