CN101930359B - 一种在自动化测试中实现设备模式切换的方法和装置 - Google Patents
一种在自动化测试中实现设备模式切换的方法和装置 Download PDFInfo
- Publication number
- CN101930359B CN101930359B CN200910087024.4A CN200910087024A CN101930359B CN 101930359 B CN101930359 B CN 101930359B CN 200910087024 A CN200910087024 A CN 200910087024A CN 101930359 B CN101930359 B CN 101930359B
- Authority
- CN
- China
- Prior art keywords
- equipment
- mode
- content model
- control command
- switching controls
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Feedback Control In General (AREA)
Abstract
本发明公开了一种在自动化测试中实现设备模式切换的方法和装置,该方法包括:抽象出设备的基本特征作为设备控制库的基类,所述基类包括内容模式的切换控制命令和工作模式的切换控制命令;根据设备输出的目标模式,调用所述基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备;在设备测试过程脚本化后,执行所述脚本的测试命令,获取测试输出结果,所述脚本继承了所述具体化的设备的控制命令。所述装置包括:基类获取单元、具体化设备单元以及测试结果输出单元。本发明提供的方法和装置,使用户可以调用基类中的控制方法具体化某种类型的设备,并提供接口供脚本化过程使用,使控制设备更方便灵活,且具有较好的扩展性。
Description
技术领域
本发明涉及计算机网络通信领域,尤其涉及一种在自动化测试中实现设备模式切换的方法和装置。
背景技术
自动化测试过程中,需对设备(包括测试设备和辅助设备)进行自动控制,但是每种设备都有其独有的特征。在传统的自动化测试中,自动控制不同类型的设备都需要有不同的处理过程,用户在编写自动化脚本过程中也需考虑每种设备的具体控制细节,这样给用户带来了极大的不方便,而且自动化测试框架中测试设备和辅助设备种类繁多,如果每一类型设备维护一种处理方式,会浪费大量资源,且效率很低。
所以,现有技术存在的问题如下:
(1)需要开发和维护针对每种类型设备的处理方式,效率低、占用时间长,且自动化上层框架和用户自动化脚本过程中都需要考虑具体设备的控制细节,开发和维护都很不方便;
(2)扩展性差,有些具体处理方式无法对用户透明,用户不能根据自己的需要添加相应处理方式,易用性不强。
发明内容
本发明提供一种在自动化测试中实现设备模式切换的方法和装置,用以解决现有技术中存在的具体自动化过程中对设备各种情况的依赖且扩展性差的问题。
为达到上述目的,本发明提供的一种在自动化测试中实现设备模式切换的方法,包括:
A、抽象出设备的基本特征作为设备控制库的基类,所述基类包括内容模式的切换控制命令和工作模式的切换控制命令;
B、根据设备输出的目标模式,调用所述基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备;
C、在设备测试过程脚本化后,执行所述脚本的测试命令,获取测试输出结果,所述脚本继承了所述具体化的设备的控制命令。
具体的,上述在抽象出设备的基本特征作为设备控制库的基类时,得到内容模式的切换控制命令的具体过程为:
注册设备的内容模式,所述每个内容模式具有自身的特征信息,该特征信息包括内容模式的切换控制命令,内容模式名称、内容模式匹配方式、内容模式内容、内容模式优先级、内容模式匹配位置及内容模式开关;
根据注册的内容模式,生成预期交互expect模式串,该expect模式串中包含内容模式的切换控制命令及内容模式的其它特征信息。
其中,所述内容模式的特征信息被记录在特征信息数组中,该特征信息数组具有一对应的索引映射表,该索引映射表以所述内容模式名称为索引,用于记录内容模式的特征信息在特征信息数组中的存储位置,其中每个内容模式名称对应一个索引号。
需要说明的是,当删除一个或多个内容模式时,根据待删除内容模式的索引号查找到其在特征信息数组中的位置,将该内容模式删除;当删除的内容模式不是所述索引映射表的最后一条时,在删除完成后重新排序所述特征信息数组以及所述索引映射表。
所述步骤B中根据设备输出的目标模式,调用所述基类中的内容模式的切换控制命令具体为:
跟踪设备的输出,获取所述设备输出的目标内容模式;
将所述目标内容模式与基类中的所述expect模式串进行匹配;
匹配成功时,调用所述基类中expect模式串中的内容模式切换的控制命令。
具体的,上述在抽象出设备的基本特征作为设备控制库的基类时,得到工作模式的切换控制命令的具体过程为:
注册设备的工作模式,所述工作模式的特征信息包括匹配工作模式的方式和工作模式内容;
添加已注册的相邻工作模式之间切换所需要的切换控制命令;
将注册的所有工作模式构建为带权有向图;
根据注册时工作模式的工作模式内容,获取当前设备的工作模式;
通过迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径;
根据所述最短路径内相邻工作模式间的切换控制命令,生成expect模式串,该expect模式串包含相邻工作模式间的切换控制命令及工作模式的特征信息。
其中,所述工作模式的特征信息被记录在又一特征信息数组中;
所述相邻工作模式之间切换所需的切换命令被记录在一个二维数组中,该二维数组的索引为相邻工作模式的模式名称,并根据该索引获取自身存储的相邻工作模式之间切换所需的切换命令所在的存储位置。
所述步骤B中根据设备输出的目标模式,调用所述基类中的工作模式的切换控制命令具体为:
跟踪设备的输出,获取所述设备输出的目标工作模式;
将所述目标工作模式与所述基类中的expect模式串进行匹配;
匹配成功时,调用所述基类中expect模式串中的工作模式切换的控制命令。
本发明提供的方法进一步具有以下特点:
所述基类还包括自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令。
进而,所述步骤B进一步包括:根据设备输出的内容,调用所述基类中的自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种控制命令,得到具体化的设备。
本发明提供一种在自动化测试中实现设备模式切换的装置,包括:
基类获取单元,用于抽象出设备的基本特征作为设备控制库的基类,所述基类包括内容模式的切换控制命令和工作模式的切换控制命令;
具体化设备单元,用于根据设备输出的目标模式,调用所述基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备;
测试结果输出单元,用于在设备测试过程脚本化后,执行所述脚本的测试命令,获取测试输出结果,所述脚本继承了所述具体化的设备的控制命令。
其中,所述基类获取单元包括:内容模式切换控制命令获取子单元和工作模式切换控制命令获取子单元;
所述内容模式切换控制命令获取子单元,用于注册设备的内容模式,并根据注册的内容模式,生成预期交互expect模式串,该expect模式串中包含内容模式的切换控制命令;
所述工作模式切换控制命令获取子单元,用于注册设备的工作模式,并添加已注册的相邻工作模式之间切换所需要的切换控制命令,将注册的所有工作模式构建为带权有向图,在获取当前设备的工作模式后,通过迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径,根据所述最短路径内相邻工作模式间的切换控制命令,生成expect模式串,该expect模式串包含相邻工作模式间的切换控制命令。
本发明提供的装置进一步具有以下特点:所述基类还包括自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令。
进而,所述具体化设备单元还用于根据设备输出的内容,调用所述基类中的自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种控制命令,得到具体化的设备。
与现有技术相比,本发明具有以下优点:
(1)本发明提供的方法抽象了所有设备的基本特征,用户可以调用这些特征接口具体化某类设备,并可根据需要添加相应处理方式,保证扩展性强,易用性好;
(2)自动化测试上层框架和脚本化过程中不需要考虑具体设备的控制细节,处理方式简单,效率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明提供的在自动化测试中实现设备模式切换方法的流程图;
图2为本发明提供的一较佳实施例中工作模式切换控制命令获取流程图;
图3为本发明提供的一较佳实施例中一具体实例的带权有向图;
图4为本发明提供的在自动化测试中实现设备模式切换装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种在自动化测试中实现设备模式切换的方法和装置,用以解决现有技术中存在的具体自动化过程中对设备各种情况的依赖和扩展性差的问题。
本发明提供一种在自动化测试中实现设备模式切换的方法,如图1所示,该方法包括以下步骤:
步骤S101、抽象出设备的基本特征作为设备控制库的基类,该基类包括内容模式的切换控制命令和工作模式的切换控制命令。
上述在抽象出设备的基本特征作为设备控制库的基类时,得到内容模式的切换控制命令的具体过程为:
注册设备的内容模式。其中,每个内容模式具有自身的特征信息,该特征信息包括内容模式的切换控制命令,内容模式名称、内容模式匹配方式、内容模式内容、内容模式优先级、内容模式匹配位置及内容模式开关等信息;
根据注册的内容模式,生成预期交互expect模式串,该expect模式串中包含内容模式的切换控制命令及内容模式的其它特征信息。
其中,内容模式的特征信息被记录在特征信息数组中,该特征信息数组具有一对应的索引映射表,该索引映射表以内容模式名称为索引,用于记录内容模式的特征信息在特征信息数组中的存储位置,其中每个内容模式名称对应一个索引号。
需要说明的是,当删除一个或多个内容模式时,根据待删除内容模式的索引号查找到其在特征信息数组中的位置,将该内容模式删除;当删除的内容模式不是索引映射表的最后一条时,在删除完成后重新排序特征信息数组及索引映射表。
具体的,上述在抽象出设备的基本特征作为设备控制库的基类时,得到工作模式的切换控制命令的具体过程为:
注册设备的工作模式。其中,每个工作模式的特征信息包括匹配工作模式的方式和工作模式内容;
添加已注册的相邻工作模式之间切换所需要的切换控制命令;
将注册的所有工作模式构建为带权有向图;
根据注册时工作模式的工作模式内容,获取当前设备的工作模式;
通过迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径;
根据所述最短路径内相邻工作模式间的切换控制命令,生成expect模式串,该expect模式串包含相邻工作模式间的切换控制命令及工作模式的特征信息。
其中,工作模式的特征信息被记录在又一特征信息数组中;
相邻工作模式之间切换所需的切换命令被记录在一个二维数组中,该二维数组的索引为相邻工作模式的模式名称,并根据该索引获取自身存储的相邻工作模式之间切换所需的切换命令所在的存储位置。
步骤S102、根据设备输出的目标模式,调用基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备。
该步骤中,根据设备输出的目标模式,调用基类中的内容模式的切换控制命令具体为:
跟踪设备的输出,获取所述设备输出的目标内容模式;
将目标内容模式与基类中的expect模式串进行匹配;
匹配成功时,调用基类中expect模式串中的内容模式切换的控制命令。
该步骤中,根据设备输出的目标模式,调用基类中的工作模式的切换控制命令具体为:
跟踪设备的输出,获取设备输出的目标工作模式;
将目标工作模式与基类中的expect模式串进行匹配;
匹配成功时,调用基类中expect模式串中的工作模式切换的控制命令。
步骤S103、在设备测试过程脚本化后,执行该脚本的测试命令,获取测试输出结果,其中,脚本继承了具体化的设备的控制命令。
需要说明的是,上述基类还包括自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令。
当然,在步骤S102中,还可以根据设备输出的内容,调用所述基类中的自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种控制命令,得到具体化的设备。
通过本发明提供方法,抽象了设备的基本特征,用户可以调用这些特征接口具体化某类设备,并可根据需要添加相应处理方式,保证扩展性强,易用性好,且自动化测试上层框架和脚本化过程中不需要考虑具体设备的控制细节,处理方式简单,效率高。
下面以一较佳的实施例来详细阐述本发明提供的在自动化测试中实现设备模式切换方法的具体实现过程。本实施例提供的实现设备模式切换的方法是抽象所有设备共同特征的方法,采用分层的方式来自动控制设备,即抽象设备共同特征然后再具体化某种类型的设备,最后通过脚本化过程来控制设备。其中,抽象设备基本特征是最重要的部分,它提供给上层自动化框架和用户灵活使用,改变了传统方式中存在的低效率和扩展性差等弊端。
所以本实施例提供的在自动化测试中实现设备模式切换的方法的具体实现过程如下:
一、抽象设备的共同特征,形成设备控制库的基类。
该步骤中,抽象设备的基本特征,主要是获得内容模式的切换控制命令和工作模式的切换控制命令。其中,内容模式是指在设备的输出过程中,存在一些特殊需要处理的内容,例如:设备提示符、分页显示处理等;工作模式是指在主流的设备中存在的多种工作模式,不同的设备模式意味着不同的权限、不同的处理及设置。例如,思科串口服务器就包括用户模式、特权模式、全局模式、端口模式、线路模式、路由引擎模式等一些工作模式。
在获得内容模式的切换控制命令和工作模式的切换控制命令后,跟踪设备输出,只要出现用户注册的内容模式或工作模式时,执行切换控制命令,即可实现内容模式的切换或工作模式的切换。在实现该过程时,对用户是透明的,用户只需要根据设备的特征注册该设备的内容模式和工作模式即可。
具体的,获得内容模式的切换控制命令过程为:
1,注册设备的内容模式。
该注册内容模式过程是在连接设备并对设备执行相应操作之前进行的。其中,内容模式存储在一个由列表元素组成的特征信息数组中,且该数组还具有一个与之对应的辅助数组,该辅助数组用于存储内容模式名称和索引映射表。该辅助数组是为了在注册内容模式和删除内容模式时对内容模式数组进行重排序而设置的。
下面以一具体的实例来说明上述特征信息数组的组成。假设存放内容模式的数组为cp_data,存放内容模式名称和索引映射表的辅助数组为cp_index;其中,内容模式数组cp_data的索引为内容模式名称,且每个索引对应一个索引号,每注册一个内容模式其索引号增1,具体的,该特征信息数组中的列表元素包括:
(1)内容模式名称,即内容模式的标识;
(2)内容模式匹配方式,即预期交互expect匹配的方式,在具体实现的过程中,一般采用regexp或glob模式匹配方式;
(3)内容模式内容,即设备输出的具体内容;例如某路由器提示符为Route#,当跟踪到这种特定输出内容时会做出相应的操作;
(4)发送给设备的命令,即匹配到输出的内容模式后自动发送设备的内容模式切换控制命令,一般通过expect_send实现;
(5)内容模式优先级,一般情况下优先级高的模式处于特征信息数组前列;
(6)内容模式匹配位置,用0、1、2分别代表内容模式在expect模式串中的匹配位置expect_before、expect_internal、expect_after;
(7)内容模式开关,该参数用来表示该注册的内容模式是否启用,若启用,采用ON表示;若禁用,采用OFF表示。具体的,该内容模式开关是用来判断与之对应的内容模式是否生效的。
需要说明的是,注册内容模式时内容模式数量值增1,内容模式状态cp_stat置位为1,根据内容模式状态cp_stat的置位判断是否需要内容模式的特征信息数组重排序和重构cp_index索引映射表,一般在注册和删除内容模式时都需进行此操作。
其中,删除一个或多个内容模式的具体操作过程为:查找待删除的内容模式在辅助数组cp_index中的索引号,通过该索引号查找索引映射表中待删除的内容模式在特征信息数组中的具体存储位置;找到待删除的内容模式并将其删除。当删除的索引号不是最后一条时,置模式状态cp_stat为1,需对特征信息数组和索引映射表进行重新排序。
其中,上述重排序过程是当内容模式状态cp_stat为1时,需要根据内容模式优先级信息,对特征信息数组进行重新排序的过程。其中,重排序的方法采用冒泡排序法。在特征信息数组cp_data重排序后,上述索引映射表也需根据排序后的特征信息数组进行重新排序,以达到通过索引映射表的索引查找某一个内容模式在特征信息中的存储位置。
2,根据注册的内容模式,生成expect模式串,该expect模式串中包含内容模式的切换控制命令。
在具体到某种设备时,实现内容模式切换过程为:连接设备,并跟踪该设备的输出;若输出的内容模式与生成的expect模式串中的内容模式相匹配,则说明输出的内容模式已在设备控制库中注册,即可根据匹配到的expect模式串中的切换控制命令进行内容模式切换,进而实现了设备内容模式的切换。
下面通过一简单的示例来说明上述过程的在实际自动化测试中的具体实现过程。
某设备在其未注册时会出现Do you want to register your product now?的输出,此时需输入y自动回应;假设注册内容模式的格式为:
addcp register-glob″Do you want to register your product now?″{exp_send″y\n″;exp_continue}
其中,模式名称:register
模式匹配方式:glob
模式内容:Do you want to register your product now?
设备执行命令:y\n
当注册内容模式后,-glob″Do you want to register your product now?″{exp_send″y\n″;exp_continue}为expect模式串,在底层设备控制库基类中,会转换为:
expect{
-glob“Do you want to register your product now?”{exp_send″y\n″;exp_continue}
}
当检测到设备输出的内容模式存在于上述expect模式串中时,系统会根据expect模式串自动发送设备执行命令y,实现设备的内容模式切换。
具体的,获得工作模式的切换控制命令过程,如图2所示,包括:
步骤S201、注册设备的工作模式。
其中,设备的所有工作模式存储在又一个特征信息数组中,该特征信息数组元素为一个列表,该列表元素包括:
(1)匹配工作模式的方式,即expect匹配的方式,一般通过regexp或glob等匹配方式实现。
(2)工作模式的内容,即设备的具体工作模式。该工作模式内容可以通过设备输出区分,比如某类设备其特权模式下是以提示符#来区分。
步骤S202、添加已注册的相邻工作模式之间切换所需要的切换控制命令。
其中,相邻工作模式之间转换所需要的切换控制命令被记录在一个二维数组中。相邻工作模式是指通过一次转换命令就可切换的两个工作模式。该二维数组的索引是相邻工作模式的工作模式名称。本实施例中,假设该二维数组名为mode_cmd。
步骤S203、将注册的所有工作模式构建为带权有向图。该带权有向图为每相邻工作模式之间存在一条双向弧线,且每条弧线上的权值相同。
步骤S204、获取当前工作模式。
该步骤具体的实现方式为:根据注册工作模式时的工作模式内容,获取当前设备的工作模式。
步骤S205、通过迪杰斯特拉算法求出当前工作模式到目标工作模式的最短路径。
其中,利用迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径,输出的结果被记录在一个列表中,该列表存储了从当前工作模式到目标工作模式经过的所有顶点,包括当前工作模式和目标工作模式。本实施例中,假设此列表为mode_path。
步骤S206、根据最短路径内相邻工作模式间的切换控制命令,生成expect模式串。
通过上述步骤,获取了工作模式的切换控制命令。进一步的,在具体到某种设备时,实现工作模式切换过程为:连接设备,跟踪该设备的输出,获得从当前工作模式到输出的目标工作模式的最短路径,根据该最短路径获得从当前工作模式到目标工作模式所需经过的带权有向图的所有顶点,该实施例中,假设当前工作模式为模式1,目标工作模式为模式n,从模式1到模式n的最短路径为1到2,2到3,3到4,4到n,则需从列表mode_path读出第一个元素值和第二个元素值(即相邻的两个工作模式:模式1和模式2);然后在二维数组mod_cmd中查找与模式1和模式2相同的索引,找到相同索引也就找到了expect模式串中自动从工作模式1切换到工作模式2的命令,执行该命令。依此类推,即可实现设备从工作模式1到工作模式n的切换。
下面通过一简单示例来具体说明上述设备工作模式切换的过程。
辅助设备思科串口服务器在自动化测试中需要自动执行某些配置命令的操作,一般在全局模式下执行这些命令,所以须从用户模式自动切换到全局模式,该模式切换的具体过程为:
首先,添加思科设备各种工作模式及其工作模式之间的切换命令。其中,思科设备有多种模式,单是全局模式下就有十种以上的子模式,这里只选取其中六种进行示例说明:用户模式、特权模式、全局模式、端口模式、线路模式和路由引擎模式。具体添加格式如下:
addmode root-regexp{\w>[\t]*$} #用户模式,设备输出匹配模式内容为>
addmode enable-regexp{\w#[\t]*$} #特权模式,设备输出匹配模式内容为#
addmode config-regexp{\w\(config.*\)#[\t]*$}
#全局模式,设备输出匹配模式内容为(config.*)#
addmodepath root enable″enable″ #用户模式切换至特权模式的命令
addmodepath enable config″configure terminal″#特权模式切换至全局模式的命令
addmodepath enable root″disable″ #特权模式切换至用户模式的命令
addmodepath config enable″end″ #全局模式切换至特权模式的命令
然后,构建如图3所示的带权有向图,获取当前工作模式为用户模式,通过迪杰斯特拉算法求出从当前用户模式到全局模式的最短路径,最短路径为用户模式到特权模式再到全局模式,查找用户模式到特权模式、特权模式到全局模式的切换命令,生成expect模式串,在底层控制库基类中,会转换为:
expect{
-regexp“\w>[\t]*$”{exp_send“enable\r”;exp_continue}
-regexp“\w#[\t]*$”{exp_send“configure terminal\r”;exp_continue}
-regexp“\w\(config.*\)#[\t]*$”{exp_send“设备命令\r”}
}
通过执行该expect模式串中的工作模式切换控制命令,便可实现设备中工作模式的自动切换。
当然,上述只是对获取内容模式切换控制命令和工作模式切换控制命令及在实际操作中的应用的描述,而基类中除内容模式切换控制命令、工作模式切换控制命令外还有一些其它控制命令,如自动连接设备控制命令、执行设备命令控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令等。上述的控制方法可以被具体化的某种设备调用,也可直接提供给用户在脚本化过程中使用。
二、调用基类的控制方法,具体化某种类型的设备。
该步骤中的调用基类的控制方法具体为:跟踪设备的输出,并根据输出的目标模式,调用基类中与该目标模式相对应的切换控制命令。当然,该步骤中还可以调用基类中其它的控制命令,例如自动连接设备控制命令、执行设备命令控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种,使该设备有其独有的特征。
该过程对自动化中更上一层的脚本化过程是透明的,用户在使用时就会更加方便,不需要考虑具体设备的特征。
三、将设备测试过程脚本化,并执行该脚本中的测试命令,获取自动化测试输出结果。其中,上述脚本继承了具体设备类的控制方法,当然在具体设备过程中未调用的控制命令,在该脚本化过程中,可以直接继承基类中的控制方法对应的控制命令。
该步骤中,脚本工作人员不需要考虑测试设备和其它辅助设备的基本控制问题。对设备的操作只是初始化、连接设备、执行测试例中的测试命令并获取测试输出结果的过程。
通过本发明实施例提供的在自动化测试中实现设备模式切换的方法,通过抽象所有设备的基本特征,用户可以调用这些特征接口具体化某类设备,并可根据需要添加相应处理方式,保证扩展性强,易用性好;同时自动化测试上层框架和脚本化过程中不需要考虑具体设备的控制细节,处理方式简单,效率高。
本发明还提供一种在自动化测试中实现设备模式切换的装置,如图4所示,该装置包括:
基类获取单元410,用于抽象出设备的基本特征作为设备控制库的基类,该基类包括内容模式的切换控制命令和工作模式的切换控制命令;
具体化设备单元420,用于根据设备输出的目标模式,调用基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备;
测试结果输出单元430,用于在设备测试过程脚本化后,执行脚本的测试命令,获取测试输出结果,该脚本继承了具体化的设备的控制命令。
具体的,上述基类获取单元进一步包括:内容模式切换控制命令获取子单元411和工作模式切换控制命令获取子单元412,
其中,内容模式切换控制命令获取子单元411,用于注册设备的内容模式,并根据注册的内容模式,生成预期交互expect模式串,该expect模式串中包含内容模式的切换控制命令;
需要说明的是,上述注册的每个内容模式具有自身的特征信息,该特征信息包括内容模式的切换控制命令,内容模式名称、内容模式匹配方式、内容模式内容、内容模式优先级、内容模式匹配位置及内容模式开关。
上述expect模式串中还包含除内容模式的切换控制命令外的其它特征信息。
工作模式切换控制命令获取子单元412,用于注册设备的工作模式,并添加已注册的相邻工作模式之间切换所需要的切换控制命令,将注册的所有工作模式构建为带权有向图,在获取当前设备的工作模式后,通过迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径,根据该最短路径内相邻工作模式间的切换控制命令,生成expect模式串,该expect模式串包含相邻工作模式间的切换控制命令。
需要说明的是,上述注册的每个工作模式都具有其对应的特征信息,该特征信息包括匹配工作模式的方式和工作模式内容。
上述生成的expect模式串中除了包含相邻工作模式间的切换控制命令,还包含注册的工作模式的特征信息。
本装置中,基类还包括自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令。
进一步地,该装置中具体化设备单元420还用于根据设备输出的内容,调用基类中的自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种控制命令,得到具体化的设备。
本发明提供的在自动化测试中实现设备模式切换的装置,通过抽象所有设备的基本特征,用户可以调用这些特征接口具体化某类设备,并可根据需要添加相应处理方式,保证扩展性强,易用性好;同时自动化测试上层框架和脚本化过程中不需要考虑具体设备的控制细节,处理方式简单,效率高。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种在自动化测试中实现设备模式切换的方法,其特征在于,包括:
A、抽象出设备的基本特征作为设备控制库的基类,所述基类包括内容模式的切换控制命令和工作模式的切换控制命令;其中:
得到内容模式的切换控制命令的具体过程为:注册设备的内容模式,每个内容模式具有自身的特征信息,该特征信息包括内容模式的切换控制命令,内容模式名称、内容模式匹配方式、内容模式内容、内容模式优先级、内容模式匹配位置及内容模式开关;根据注册的内容模式,生成预期交互expect模式串,该expect模式串中包含内容模式的切换控制命令及内容模式的其它特征信息;
得到工作模式的切换控制命令的具体过程为:注册设备的工作模式,所述工作模式的特征信息包括匹配工作模式的方式和工作模式内容;添加已注册的相邻工作模式之间切换所需要的切换控制命令;将注册的所有工作模式构建为带权有向图;根据注册时工作模式的工作模式内容,获取当前设备的工作模式;通过迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径;根据所述最短路径内相邻工作模式间的切换控制命令,生成expect模式串,该expect模式串包含相邻工作模式间的切换控制命令及工作模式的特征信息;
B、根据设备输出的目标模式,调用所述基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备;
C、在设备测试过程脚本化后,执行所述脚本的测试命令,获取测试输出结果,所述脚本继承了所述具体化的设备的控制命令。
2.如权利要求1所述的方法,其特征在于,所述内容模式的特征信息被记录在特征信息数组中,该特征信息数组具有一对应的索引映射表,该索引映射表以所述内容模式名称为索引,用于记录内容模式的特征信息在特征信息数组中的存储位置,其中每个内容模式名称对应一个索引号。
3.如权利要求2所述的方法,其特征在于,当删除一个或多个内容模式时,根据待删除内容模式的索引号查找到其在特征信息数组中的位置,将该内容模式删除;
当删除的内容模式不是所述索引映射表的最后一条时,在删除完成后重新排序所述特征信息数组及所述索引映射表。
4.如权利要求1所述的方法,其特征在于,所述步骤B中根据设备输出的目标模式,调用所述基类中的内容模式的切换控制命令具体为:
跟踪设备的输出,获取所述设备输出的目标内容模式;
将所述目标内容模式与基类中的所述expect模式串进行匹配;
匹配成功时,调用所述基类中expect模式串中的内容模式的切换控制命令。
5.如权利要求1所述的方法,其特征在于,所述工作模式的特征信息被记录在又一特征信息数组中;
所述相邻工作模式之间切换所需的切换命令被记录在一个二维数组中,该二维数组的索引为相邻工作模式的模式名称,并根据该索引获取自身存储的相邻工作模式之间切换所需的切换命令所在的存储位置。
6.如权利要求1所述的方法,其特征在于,所述步骤B中根据设备输出的目标模式,调用所述基类中的工作模式的切换控制命令具体为:
跟踪设备的输出,获取所述设备输出的目标工作模式;
将所述目标工作模式与所述基类中的expect模式串进行匹配;
匹配成功时,调用所述基类中expect模式串中的工作模式切换的控制命令。
7.如权利要求1所述的方法,其特征在于,所述基类还包括自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令。
8.如权利要求7所述的方法,其特征在于,所述步骤B进一步包括:
根据设备输出的内容,调用所述基类中的自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种控制命令,得到具体化的设备。
9.一种在自动化测试中实现设备模式切换的装置,其特征在于,包括:
基类获取单元,用于抽象出设备的基本特征作为设备控制库的基类,所述基类包括内容模式的切换控制命令和工作模式的切换控制命令;具体的,所述基类获取单元包括:内容模式切换控制命令获取子单元和工作模式切换控制命令获取子单元,其中:
所述内容模式切换控制命令获取子单元,用于注册设备的内容模式,每个内容模式具有自身的特征信息,该特征信息包括内容模式的切换控制命令,内容模式名称、内容模式匹配方式、内容模式内容、内容模式优先级、内容模式匹配位置及内容模式开关;根据注册的内容模式,生成预期交互expect模式串,该expect模式串中包含内容模式的切换控制命令;
所述工作模式切换控制命令获取子单元,用于注册设备的工作模式,并添加已注册的相邻工作模式之间切换所需要的切换控制命令,将注册的所有工作模式构建为带权有向图,在获取当前设备的工作模式后,通过迪杰斯特拉算法求出从当前工作模式到目标工作模式的最短路径,根据所述最短路径内相邻工作模式间的切换控制命令,生成expect模式串,该expect模式串包含相邻工作模式间的切换控制命令;
具体化设备单元,用于根据设备输出的目标模式,调用所述基类中内容模式的切换控制命令或工作模式的切换控制命令,得到具体化的设备;
测试结果输出单元,用于在设备测试过程脚本化后,执行所述脚本的测试命令,获取测试输出结果,所述脚本继承了所述具体化的设备的控制命令。
10.如权利要求9所述的装置,其特征在于,所述基类还包括自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令。
11.如权利要求9所述的装置,其特征在于,所述具体化设备单元还用于根据设备输出的内容,调用所述基类中的自动连接设备控制命令、执行设备控制命令、获取上一次执行命令的设备输出控制命令、设置设备提示符控制命令、设置向设备发送字符的速度控制命令、设置对设备操作的字符编码控制命令中的一种或几种控制命令,得到具体化的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910087024.4A CN101930359B (zh) | 2009-06-22 | 2009-06-22 | 一种在自动化测试中实现设备模式切换的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910087024.4A CN101930359B (zh) | 2009-06-22 | 2009-06-22 | 一种在自动化测试中实现设备模式切换的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101930359A CN101930359A (zh) | 2010-12-29 |
CN101930359B true CN101930359B (zh) | 2014-04-16 |
Family
ID=43369557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910087024.4A Active CN101930359B (zh) | 2009-06-22 | 2009-06-22 | 一种在自动化测试中实现设备模式切换的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101930359B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153188A (zh) * | 2017-12-14 | 2018-06-12 | 上海索广电子有限公司 | 一种基于脚本数据的调整检查流程切换方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216804A (zh) * | 2008-01-14 | 2008-07-09 | 中兴通讯股份有限公司 | 一种测试装置和方法 |
CN101316201A (zh) * | 2008-07-18 | 2008-12-03 | 中国工商银行股份有限公司 | 多终端模式的脚本装置及数据处理方法和自动化测试系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7853926B2 (en) * | 2005-11-21 | 2010-12-14 | International Business Machines Corporation | Automated context-sensitive operating system switch |
-
2009
- 2009-06-22 CN CN200910087024.4A patent/CN101930359B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216804A (zh) * | 2008-01-14 | 2008-07-09 | 中兴通讯股份有限公司 | 一种测试装置和方法 |
CN101316201A (zh) * | 2008-07-18 | 2008-12-03 | 中国工商银行股份有限公司 | 多终端模式的脚本装置及数据处理方法和自动化测试系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153188A (zh) * | 2017-12-14 | 2018-06-12 | 上海索广电子有限公司 | 一种基于脚本数据的调整检查流程切换方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101930359A (zh) | 2010-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105477854B (zh) | 应用于智能终端的手柄控制方法、装置及系统 | |
CN104793875A (zh) | 应用的分屏方法与装置、智能终端 | |
CN102118281B (zh) | 自动化测试方法、装置及网络设备 | |
CN106537382B (zh) | 查询建议 | |
CN102929408A (zh) | 一种快捷打开应用的方法及装置 | |
CN103379476A (zh) | 终端和联系人信息更新方法 | |
CN109857723A (zh) | 基于可扩容数据库集群的动态数据迁移方法及相关设备 | |
CN109818796B (zh) | 数据中心构建方法、装置、电子设备和介质 | |
CN102590711A (zh) | 一种确定停电范围的方法及装置 | |
CN101930359B (zh) | 一种在自动化测试中实现设备模式切换的方法和装置 | |
CN104780253A (zh) | 一种通讯录管理方法 | |
US8385359B2 (en) | Information communication system, connection setting apparatus and non-transitory computer-readable storage medium storing connection setting program | |
CN104158709A (zh) | 一种光模块识别的方法及端口扩展设备 | |
CN101901157A (zh) | 一种管理软件自启动安装的方法及系统 | |
CN106527979B (zh) | 数据迁移方法及装置 | |
CN102110055A (zh) | 闪存芯片存储配置方法以及闪存芯片存储配置装置 | |
CN109085983A (zh) | 操作控制方法、装置、存储介质及电子设备 | |
CN103530180B (zh) | 应用程序的存储空间切换方法及装置 | |
CN107679222A (zh) | 图片处理方法、移动终端及计算机可读存储介质 | |
CN105068791B (zh) | 一种实现底层库的方法及装置 | |
CN113238715B (zh) | 智能文件系统、及其配置方法、智能辅助计算设备和介质 | |
CN104731992A (zh) | 配电自动化建模方法及装置 | |
CN106027277A (zh) | 显示方法、显示程序及信息处理装置 | |
CN114282029A (zh) | 一种图元管理方法、装置、电子设备及存储介质 | |
CN113347268A (zh) | 基于分布式网络组网方法、装置、存储介质及计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |