主动化测验现已越来越家喻户晓,其重要性也是显而易见的。功用测验中大规划并发的要 求,压力测验中的大规划压力的模仿,回归测验中的大规划测验用例的重复履行都要求完成一个高可用、高可扩展性的主动化测验结构系统。因而,如安在一个敞开 的结构下,构建一个完好的主动化测验系统是咱们需求研讨的方向。
一个完好的主动化测验结构系统包括以下几个部分:1、主动化测验结构;2、测验脚本以及测验数据办理;3、测验脚本的履行办理系统;4、测验成果的显现与剖析系统。其间最重要的是主动化测验结构部分。
榜首部分,主动化测验结构。主动化测验结构要处理的问题,从本质上来说,是完成散布 式资源透明化的进程。因为功用测验、压力测验的要求,咱们往往需求构建一个散布式的测验环境,在这个散布式的测验环境中,咱们需求多种测验渠道(例如:多 台windows,多台linux等)。主动化测验结构的效果就在于将散布式环境中的各种资源变成相应的服务目标。例如一台windows机器,在主动化 测验的结构中,咱们看到的将不再是一台windows机器,而是绑定到某一个IP地址上的一个服务目标。经过这个目标,咱们能够经过一个通用的调用办法 (本地调用一个长途供给的办法,需求选用目标映射的技能),告知这个目标,让它做咱们期望它去做的工作,例如发动一个指定的测验脚本(这个测验脚本可能是 咱们日常写的某一个测验用例,也可能是其他操作)。在主动化测验结构的完成上,其首要是建立了一个以供给服务为主的底层的通讯网络。而在服务的应用上,我 们能够选用插件形式,以及目标映射的技能,能够动态的无限的扩展咱们的服务。依据我个人的实践,STAF + python的开发形式能够很好的完成这个结构。STAF首要构建了一个网络系统,使得各种机器资源之间能够自在的通讯。而python则能够在STAF 的基础上进行二次开发,能够构建一个动态刺进的服务系统。
第二部分,测验脚本及测验数据的办理。首先要挑选一种适宜的主动化脚本语言。一般来 说,需求考虑以下几个方面:(1)高可读性,(2)无需编译,(3)可扩展性,(4)强壮的第三方支撑,尤其是对各种数据源的支撑。咱们能够选用CVS或 者SVN的方法来完成对测验脚本和测验数据的办理。在这儿,首要依托高度安排化的目录结构来完成,尤其是需求和实践测验进程中的测验套件,测验模块以及测 试用例的安排结构进行匹配,分级办理。构成一个完好的测验脚本和测验用例的资源库。关于测验脚本的编写,有一些根本的要求:1、构成一套测验脚本的编写规 范;2、测验脚本采纳分层规划思维,耐久层(数据资源库,目标资源库,一致IO),逻辑层(封装根本事务逻辑,完成API级调用),脚本层(完成测验用例 进程,首要是描绘测验进程)。经过这些,测验工程师编写测验脚本将会变得非常轻松,测验的功率也会有大幅度的提高,大规划回归,乃至是在榜首轮测验就完成 主动化测验也不再是愿望。
第三部分,测验脚本的履行办理系统。很多的测验脚本编制好了今后,一个很重要的进程 便是大批量的履行这些测验脚本。经过CVS或许SVN的办理,咱们生成了一个测验资源库,一个测验用例将是一个测验脚本。测验脚本履行办理系统的意图,就 是要在用户定制的时刻去履行用户选定的测验用例。测验脚本履行办理系统也应该能动态的追寻到当时正在运转的使命的状况,例如履行百分比等等;还能够完成多 用户办理,例如一起履行多个用户提交的测验需求。一起,测验脚本办理系统还应该完成测验环境主动布置的功用。一般来说,咱们在进行大规划的主动化测验之 前,需求精确布置测验环境,这儿就要求用最新的代码版原本进行测验。因而,测验环境的主动布置也是很重要的。
第四部分,测验成果的显现与剖析系统。经过一致的IO调用,咱们能够将测验进程中产 生的错误信息,日志信息,以及测验成果动态的放到咱们想要寄存的当地。测验成果的显现与剖析系统正是根据这些数据进行处理的系统。每一个测验用例在履行的 进程中,需求输出很多的日志信息,这些日志信息是非常重要的。一般,咱们判别一个测验用例履行完毕今后,是否有Bug,常常需求深化剖析这些日志信息。在 测验用例履行的进程中,不光要打印相关的测验数据,实践获取到的数据,还要打印相应的测验进程,这样才便于对测验成果进行剖析。至于显现系统,首要是对测 试成果的一个分类检索功用,能够生成各类报表,例如,一个300个测验用例的模块中有多少经过的,有多少是失利的等等。有一个根本原则是很重要的,主动化 测验不是为了主动化,而是为了发现Bug。假如主动化测验不能发现Bug,那么花费很多的人力物力完成主动化,也是没有什么实践意义的。因而,深化搜集测 试用例履行的进程中发生的各种信息是非常重要的。个人的实践经验标明,这些信息关于发现Bug起着至关重要的效果(测验进程的描绘也不容忽视)。
主动化测验系统不是一个东西,一种主动化测验脚本语言就能够完成的。它需求一个完好的处理方案才干完成。个人的实践经验标明,主动化测验结构的引进、强壮的资源整合才能和有用的主动化测验系统的规划将是完成主动化测验的非常重要的要素。