简易自动化测试设计之(四)
——自动化测试环境拓扑管理设计
序言:不知道大家有没有对自动化测试环境拓扑管理方面有所涉及,但是这往往是自动化测试规模化一个难点,这也是作为自动化测试平台中的一个模块(服务),以下的解决方案更多的是不成熟,分享出来,希望大家能够帮助开动自己的想法,提出见解,当然,其实这些东西不一定受限于你的技术认知,相反,脱离了技术的束缚,你才能从更高的角度提出问题和建议,所以,希望大家提出应用的需求,帮助我开拓眼界,大家也许也能够提高思考能力。
一、自动化测试环境拓扑管理简介
在电信项目中,自动化测试环境拓扑的管理往往是一个难点,刚开始进行自动化测试项目时,因为用例过少,所以环境信息一般都是硬编码在脚本中,后来随着项目的增多,就采用了脚本分层的方法,将经常变动的业务配置提了出来,写到了一个单独的脚本中,随着拓扑的越来越大,各种产品线都有各自的测试拓扑,而对于其都是测试人员去进行管理的,缺乏了一种部门级的统一管理这些拓扑的机制,并且对于单个项目来说,其项目的拓扑并没有抽象出来成一个连接关系,因而不方便后期的项目拓扑的维护和管理。
而在软件测试中,其实原理也是一样,软件测试中有一个概念称为:自动化部署,这是持续集成中的概念,个人觉得,当然也适用于各个自动化测试,持续集成是脱离不了自动化测试的,部署是指将软件移动到它被测试的地方,或用户指定的某个位置,准备送给客户。最早前的部署都是手工过程,部署工程师从某处拿到部署文件,再把它放到目标机器上,然后开始正式的安装过程。然而,这种手工过程会比较慢,而且部署失败率也可能要高一些。自动化部署的目标是“持续部署”,即自动部署到生产环境中而无需手工干预:得到一个版本后,自动部署到一系列的测试环境中。经过整个构建管道中的所有阶段,并且能通过所有的测试后,自动部署该版本到生产环境中,而且具有自动回滚和相应的监控手段。
与上述自动化部署类似,自动化测试环境拓扑管理也能够自动根据项目综合拓扑中的环境参数与设备信息自动的生成脚本所需的环境配置文件,脚本运行时会读取这些环境参数和设备信息调用相应设备进行测试。
二、自动化测试环境拓扑管理挑战
1、如何保证统一测试拓扑。
2、如何保证映射更新条件。
3、检测版本,进行版本的自动检测和升级。
4、如何与设备进行联系,即拓扑中的节点如何与实际设备的控制信息关联起来。
三、自动化测试环境拓扑方案
1、采用拓扑映射机制,即将项目的测试拓扑抽象出来,不具体表明端口,只是表明一种连接关系,然后采用映射匹配算法(匹配的条件可以根据自己需要进行设定,可以按设备的连接关系、设备型号、测试版本型号等进行匹配)。将标准拓扑中所需要用到的连接关系在综合拓扑中找到,然后生成一个设备匹配表。
2、匹配到相应拓扑之后,则测试项目可以调用其拓扑关联生成一系列的配置信息。
3、之前,一直思考如何将拓扑管理与设备关联起来,后来思考,即,采用软件工程中的思想,将一款共性的产品线作为一个高度抽象的类,然后下面派生成一系列的具体的产品类。产品线类拥有共性的属性(例如:设备的端口号等可以作为一个共性属性,还有一些共有的命令行),然后产品派生类拥有自己特性属性。当然,还有一个共享的基本类(里面包含拓扑中每个产品线共有的属性,例如,IP地址、串口号等)。