1.一种自动测试系统中多开关的控制方法,其特征在于包括如下步骤:a将自动测试系统中所有的开关需求抽象成一个开关网络虚拟设备,对开关网络虚拟设备进行虚拟设备信息配置,并对所配置的虚拟设备信息进行保存;上述虚拟设备信息包括各开关的软件和硬件信息、虚拟设备的端口信息、开关间的连接规则信息、虚拟设备端口间路由信息;上述开关间的连接规则信息包括硬连线规则与互斥规则,分别用于描述不同开关模块端口之间的物理连接需求,以及虚拟设备端口之间的连接排斥需求;
b提供连接与断开路由的控制接口,自动测试系统通过调用连接与断开路由的控制接口,完成对开关网络虚拟设备中路由的控制;
c根据上述虚拟设备信息中的连接规则对路由进行解析,并调用相应的开关驱动,完成对具体开关的连接与断开操作。
2.根据权利要求1所述的一种自动测试系统中多开关的控制方法,其特征在于上述步骤a还包括以下步骤:a1创建一个开关网络虚拟设备;
a2将自动测试系统中所有的开关添加到开关网络虚拟设备中,并记录包括开关的驱动程序、程控地址、拓扑结构在内的软硬件信息;
a3将所有开关的端口虚拟成开关网络虚拟设备的端口;
a4创建开关网络虚拟设备端口间的互斥集合;
a5创建开关网络虚拟设备端口间的硬连线集合;
a6使用互斥和硬连线规则,创建开关网络虚拟设备端口间的路由集合;
a7保存虚拟设备信息。
3.根据权利要求2所述的一种自动测试系统中多开关的控制方法,其特征在于上述步骤a6还包括以下步骤:a61得到要建立路由的两个通道,即ch1、ch2通道,创建一个堆栈;
a62判断ch1和ch2通道是否在互斥配置中,如果是则返回不能连接的信息,否则执行a63;
a63判断ch1、ch2通道是否属于同一个开关模块,如果不是,则执行步骤a64;如果是,则执行步骤a65;
a64从硬连线集合中查找能与ch1通道连接的硬连线上的通道,如果找到,则将该通道作为新的ch1通道,并将找到的硬连线及原ch1通道的信息压入到内存的堆栈中,执行步骤a63;如果未找到,则执行a66;
a65判断ch1、ch2通道是否可以连接,如果不可以连接,则执行步骤a66;如果可以连接则执行步骤a67;
a66判断硬连线堆栈元素是否为空,不为空则将硬连线堆栈的栈顶的元素弹出,执行步骤a64继续查找其它硬连线;如果堆栈的元素集合为空,则返回不能连接的信息;
a67利用输入的两个通道以及堆栈中的元素组织路由信息,并将路由信息返回。
4.根据权利要求1所述的一种自动测试系统中多开关的控制方法,其特征在于上述步骤b还包括以下步骤:b1选择所存储的虚拟设备信息;
b2解析虚拟设备信息;
b3从虚拟设备信息中获取配置的路由信息;
b4调用连接或断开路由操作,完成对开关网络虚拟设备的控制。
5.根据权利要求1所述的一种自动测试系统中多开关的控制方法,其特征在于上述步骤c还包括以下步骤:c1从所存储的虚拟设备信息中获取每个开关模块的驱动信息及硬件地址;
c2调用每个开关的驱动来初始化开关模块,将会话句柄保存到内存中;
c3得到要连接的路由信息;
c4按照路由路径上的硬连线对路由进行分段,每一段路由上的端口都属于同一个开关;
c5循环每一段路由,从内存中找到当前开关的会话句柄,使用该句柄调用开关的连接方法,完成该段路由的连接操作;
c6关闭会话句柄。
6.根据权利要求5所述的一种自动测试系统中多开关的控制方法,其特征在于上述步骤c还包括以下步骤:c7从所存储的虚拟设备信息中获取每个开关模块的驱动信息及硬件地址;
c8调用每个开关的驱动来初始化开关模块,将会话句柄保存到内存中;
c9得到要断开的路由信息;
c11按照路由路径上的硬连线对路由进行分段,每一段路由上的端口都属于同一个开关;
c12循环每一段路由,从内存中找到当前开关的会话句柄,使用该句柄调用开关的断开方法,完成该段路由的断开操作;
c13关闭会话句柄。
7.一种自动测试系统中多开关的控制系统,其特征在于包括:开关网络建模模块,用于将自动测试系统中所有的开关需求抽象成一个开关网络虚拟设备,对开关网络虚拟设备进行虚拟设备信息配置,并对所配置的虚拟设备信息进行保存;
上述虚拟设备信息包括各开关的软件和硬件信息、虚拟设备的端口信息、开关间的连接规则信息、虚拟设备端口间路由信息;上述开关间的连接规则信息包括硬连线规则与互斥规则,分别用于描述不同开关模块端口之间的物理连接需求,以及虚拟设备端口之间的连接排斥需求;
路由控制模块,用于提供连接与断开路由的控制接口,自动测试系统通过调用连接与断开路由的控制接口,完成对开关网络虚拟设备中路由的控制;
数据存储与解析模块及开关控制模块,用于根据上述虚拟设备信息中的连接规则对路由进行解析,并调用相应的开关驱动,完成对具体开关的连接与断开操作。