自动化测试已经越来越深入人心,其重要性也是不言而喻的。性能测试中大规模并发的要求,压力测试中的大规模压力的模拟,回归测试中的大规模测试用例的反复执行都要求实现一个高可用、高可扩展性的自动化测试框架体系。因此,如何在一个开放的框架下,构建一个完整的自动化测试体系是我们需要研究的方向。

一个完整的自动化测试框架体系包含以下几个部分:

1、自动化测试框架;

2、测试脚本以及测试数据管理;

3、测试脚本的执行管理系统;

4、测试结果的显示与分析系统。

其中重要的是自动化测试框架部分。

第一部分,自动化测试框架。自动化测试框架要解决的问题,从本质上来说,是实现分布式资源透明化的过程。由于性能测试、压力测试的要求,我们往往需要构建一个分布式的测试环境,在这个分布式的测试环境中,我们需要多种测试平台(例如:多台windows,多台linux等)。自动化测试框架的作用在于将分布式环境中的各种资源变成相应的服务对象。例如一台windows机器,在自动化测试的框架中,我们看到的将不再是一台windows机器,而是绑定到某一个IP地址上的一个服务对象。通过这个对象,我们可以通过一个通用的调用方法(本地调用一个远程提供的方法,需要采用对象映射的技术),告诉这个对象,让它做我们希望它去做的事情,例如启动一个指定的测试脚本(这个测试脚本可能是我们日常写的某一个测试用例,也可能是其他操作)。

在自动化测试框架的实现上,其主要是建立了一个以提供服务为主的底层的通讯网络。而在服务的应用上,我们可以采用插件模式,以及对象映射的技术,可以动态的无限的扩展我们的服务。根据我个人的实践,STAF + python的开发模式可以很好的实现这个框架。STAF主要构建了一个网络体系,使得各种机器资源之间可以自由的通讯。而python则可以在STAF的基础上进行二次开发,可以构建一个动态插入的服务体系。