CN102158370B - 一种自动化测试方法和系统 - Google Patents
一种自动化测试方法和系统 Download PDFInfo
- Publication number
- CN102158370B CN102158370B CN 201110090535 CN201110090535A CN102158370B CN 102158370 B CN102158370 B CN 102158370B CN 201110090535 CN201110090535 CN 201110090535 CN 201110090535 A CN201110090535 A CN 201110090535A CN 102158370 B CN102158370 B CN 102158370B
- Authority
- CN
- China
- Prior art keywords
- test
- test instrumentation
- configuration order
- client
- configuration
- 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.)
- Expired - Fee Related
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 477
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 40
- 238000005538 encapsulation Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 20
- 238000012544 monitoring process Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种自动化测试方法和系统,其中,控制测试仪表的方法包括:客户端向服务器发送测试仪表配置命令;所述服务器根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。采用该方法,客户使用通用的控制命令,即可实现对各种类型的测试仪表的控制,测试仪表命令对用户透明,从而大大提高了测试效率,且由于测试仪表命令对用户透明,又增强了保密性。
Description
技术领域
本发明涉及通信领域,尤其涉及一种自动化测试方法和系统。
背景技术
在通信行业的传统测试中,经常会使用测试仪表进行辅助测试,为了降低测试工程师手动测试的复杂性,一些重复性的和手动无法实现的测试工作需要借助自动化测试软件来完成。但是通用的自动化测试方法是针对某一需求开发特定的自动化测试脚本,并且脚本中使用大量的测试仪表命令,不能控制多个厂家的测试仪表,对于新的需求需要重新开发脚本,随着脚本数量的增多,将大大提高脚本维护的难度。另一方面,脚本直接供测试工程师下载使用,不能起到脚本加密的作用,而且测试工程师只能机械的按照说明使用脚本,不能提升测试工程师在自动化测试中的参与积极性。
发明内容
本发明要解决的技术问题是,提供一种自动化测试方法和系统,客户能够使用通用的控制命令,实现对各种类型的测试仪表的控制,测试仪表命令对用户透明,从而大大提高了测试效率,且由于测试仪表命令对用户透明,又增强了保密性。
为了解决上述技术问题,本发明提出一种测试仪表控制方法,包括:
客户端向服务器发送测试仪表配置命令;
所述服务器根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。
进一步地,上述方法还可具有以下特点:
所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
所述服务器调用相应测试仪表的相应API包括:在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,从加载的所述对应的测试仪表的命令封装库中调用所述配置命令标识符对应的API。
进一步地,上述方法还可具有以下特点:
所述测试仪表配置命令是所述客户端从测试用例配置文件中读取出来的;
所述客户端在发送所述测试仪表配置命令前,还判断其中是否包含控制命令结果判断字段,如果包含,则在发送所述测试仪表配置命令后,还根据所述控制命令结果判断字段调用对应的功能函数,经所述服务器与对应的测试仪表交互,获取函数返回值。
进一步地,上述方法还可具有以下特点:
所述服务器为每个与其连接的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
为了解决上述技术问题,本发明还提出一种自动化测试方法:客户端解析测试用例配置文件,如果为测试仪表配置命令,则据以上述测试仪表控制配置对应的测试仪表;如果为被测设备配置命令,则据以配置对应的被测设备。
为了解决上述技术问题,本发明还提出一种测试仪表控制装置,包括:
客户端,用于连接服务器,向所述服务器发送测试仪表配置命令;
所述服务器,用于根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。
进一步地,上述装置还可具有以下特点:
所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
所述服务器调用相应测试仪表的相应API包括:在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,从加载的所述对应的测试仪表的命令封装库中调用所述配置命令标识符对应的API。
进一步地,上述装置还可具有以下特点:
所述客户端,在发送测试仪表配置命令之前,还包括从测试用例配置文件中读取出所述测试仪表配置命令;
所述客户端,在发送所述测试仪表配置命令前,还包括判断其中是否包含控制命令结果判断字段,如果包含,则在发送所述测试仪表配置命令后,还根据所述控制命令结果判断字段调用对应的功能函数,经所述服务器与对应的测试仪表交互,获取函数返回值。
进一步地,上述装置还可具有以下特点:
所述服务器,还为每个与其连接的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
为了解决上述技术问题,本发明还提出一种服务器,包括接收模块、加载模块,与所述接收模块和所述加载模块均相连的处理模块,其中:
所述接收模块,用于接收测试仪表配置命令,并将其发送至所述处理模块;
所述加载模块,用于加载测试仪表的命令封装库;
所述处理模块,用于根据接收到的测试仪表配置命令,从所述加载的命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。
进一步地,上述服务器还可具有以下特点:
所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
所述处理模块包括:
解析单元,用于对接收到的测试仪表配置命令进行解析,获取仪表类型标识符和配置命令标识符;
第一分析处理单元,用于从所述解析单元获取仪表类型标识符,据以确定对应的测试仪表;
第二分析处理单元,用于从所述解析单元获取配置命令标识符,从所述第一分析处理单元获取确定的测试仪表信息,从加载的所述确定的测试仪表的命令封装库中调用所述配置命令标识符对应的API,根据所述API完成对相应测试仪表的配置。
进一步地,上述服务器还可具有以下特点:
所述处理模块,还为每个连接至所述服务器的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
为了解决上述技术问题,本发明还提出一种自动化测试系统,包括被测设备、与被测设备相连的测试仪表,以及上述包含客户端和服务器的测试仪表控制装置,所述客户端还用于配置所述被测设备。
本发明提供的一种自动化测试方法和系统,支持多用户操作,用户使用通用的控制命令即可实现对各种类型的测试仪表的控制,测试仪表命令对用户透明,且由于测试仪表命令对用户透明,又增强了保密性。
附图说明
图1是本发明实施例一种测试仪表控制装置方框图;
图2是本发明实施例一种服务器装置方框图;
图3是本发明实施例一种自动化测试系统方框图;
图4是本发明实施例一种测试仪表控制方法流程图;
图5是本发明实施例一种自动化测试方法流程图;
图6是本发明应用实例一种自动化测试方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
参见图1,该图示出了本发明实施例一种测试仪表控制装置,包括:
客户端,用于连接服务器,向所述服务器发送测试仪表配置命令。
所述服务器,用于根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。
本发明巧妙地设计了一种基于C/S架构的测试仪表控制装置,增加服务器实现测试仪表代理,令传统的测试仪表命令相对于用户透明,用户在开发测试脚本时,只需使用控制命令说明手册中规定的通用的控制命令即可实现对各种类型的测试仪表的控制,这大大降低了用户开发测试脚本的难度;由于封装库安装在服务器上,减少了代码库的冗余,避免了封装库维护过程中繁琐的更新过程,实现对测试仪表命令和集中管理和版本控制;封装库具有很高的可扩展性,某一命令接口增加新的配置时,只需要在服务器上增加封装库的参数列表,维护工作更简单;用户只需修改测试用例配置即可满足特定的测试需求,这大大简化了自动化测试流程。
其中,所述客户端可以利用传输控制协议(TCP)建立与所述服务器的连接;所述服务器可以利用传输控制协议(TCP)建立与所述测试仪表的连接。在具体实现时,所述客户端在发送测试仪表配置命令之前,配置本次测试需要控制的测试仪表的IP地址及端口列表,并将其发送至所述服务器,所述服务器接收到客户端发送来的需要控制的测试仪表的IP地址及端口列表信息,据以为所述客户端连接相应的测试仪表并占用端口。
所述客户端,在发送测试仪表配置命令之前,还可以包括从测试用例配置文件中读取出所述测试仪表配置命令。即,用户可以根据测试用例,编写测试用例配置文件,所述测试用例配置文件中包含测试仪表配置命令,从而使得客户端通过访问测试用例配置文件,自动实现对测试仪表的配置。较佳地,所述客户端上可以安装有图形化的自动化测试软件,通过执行所述自动化测试软件,于图形化界面上选择出本次测试的测试用例配置文件。
较佳地,为了更具通用性,本发明实施例中客户端可以使用同一测试仪表配置命令完成对不同类型的测试仪表的相同配置。具体实现时,可以是:所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API。相应地,所述服务器调用相应测试仪表的相应API包括:在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,从加载的所述对应的测试仪表的命令封装库中调用所述配置命令标识符对应的API。
较佳地,在编写问测试用例配置文件时,如需返回结果,可增加控制命令结果判断字段。相应地,所述客户端,在发送所述测试仪表配置命令前,还包括判断其中是否包含控制命令结果判断字段,如果包含,则在发送所述测试仪表配置命令后,还根据所述控制命令结果判断字段调用对应的功能函数,经所述服务器与对应的测试仪表交互,获取函数返回值。
较佳地,本发明C/S架构中,可以具有一个或者多个客户端,为了解决多个客户端同时发送大量数据时,导致网络拥塞的问题,所述服务器可以为每个与其连接的客户端创建一个独立的线程,专门用于处理来自所述客户端的数据,从而以多线程处理机制实现对多个客户端发送来的数据的并行处理。在具体实现时,可以根据所述客户端的IP地址以及端口号生成所述客户端对应的线程的ID,所述ID能够唯一标识所述客户端,从而为客户端生成独立的线程。另外,独立的线程,也将有效避免一个客户端出现异常而对其他客户端的测试流程造成影响。
较佳地,所述服务器,在将测试仪表配置命令发送给对应的测试仪表后,还监测所述对应的测试仪表的执行状态,并将监测到的执行状态发送给对应的客户端;所述客户端接收测试仪表的执行状态,并进行处理,从而实现用户对测试仪表执行状态的监测。较佳地,所述监测可以是实时的,以便及时发现异常。
较佳地,所述服务器,在将测试仪表配置命令发送给对应的测试仪表后,还可以获取所述对应的测试仪表的执行日志,并将其返回给对应的客户端;所述客户端接收并保存测试仪表的执行日志,以便于后期测试流程的查询,也可以作为脚本运行过程中异常情况的调试依据。
较佳地,所述服务器可以于开启时,验证其与可连接的所有测试仪表的连接状态是否正确,以避免后续测试时出现连接不正常导致的错误。
较佳地,所述客户端在访问完测试用例配置文件后,还将断开与所述服务器的连接,以释放资源。
下面将对上述服务器做进一步说明,如图2所示,其包括接收模块、加载模块,与所述接收模块和所述加载模块均相连的处理模块,其中:
所述接收模块,用于接收测试仪表配置命令,并将其发送至所述处理模块;
所述加载模块,用于加载测试仪表的命令封装库;
所述处理模块,用于根据接收到的测试仪表配置命令,从所述加载的命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。
较佳地,为了更具通用性,所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API。相应地,所述处理模块包括:
解析单元,用于对接收到的测试仪表配置命令进行解析,获取仪表类型标识符和配置命令标识符;
第一分析处理单元,用于从所述解析单元获取仪表类型标识符,据以确定对应的测试仪表;
第二分析处理单元,用于从所述解析单元获取配置命令标识符,从所述第一分析处理单元获取确定的测试仪表信息,从加载的所述确定的测试仪表的命令封装库中调用所述配置命令标识符对应的API,根据所述API完成对相应测试仪表的配置。
较佳地,所述处理模块,还为每个连接至所述服务器的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
本发明上述控制测试仪表的方案能够有效地应用于自动化测试,通用性佳,且能够大大提高测试效率。如图3所示,该图示出了本发明实施例一种自动化测试系统,包括被测设备,与所述被测设备连接的测试仪表,客户端,及用于测试仪表控制的服务器,其中:
所述客户端,用于与所述被测设备和服务器连接,解析测试用例配置文件中的控制命令,将所述控制命令中的被测设备配置命令发送给所述被测设备,将所述控制命令中的测试仪表配置命令发送给所述服务器;
所述服务器,用于与测试仪表连接,根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置。
其中,所述控制命令还可以包括测试任务描述信息,例如测试任务编号、测试任务名称等信息。
其中,在构建自动化测试系统时,可以采用下述方式连接各部件:
客户端与被测设备的连接:所述客户端可以通过一串口服务器,建立与一个或者多个所述被测设备的连接,采用串口方式管理与其相连的一个或者多个被测设备。所述客户端也可以利用telnet协议建立与一个或者多个所述被测设备的连接,并对与其相连的一个或者多个被测设备进行管理。
客户端与服务器的连接:所述客户端可以利用传输控制协议(TCP)建立与所述服务器的连接。
服务器与测试仪表的连接:所述服务器可以利用传输控制协议(TCP)建立与一个或者多个测试仪表的连接。
被测设备与测试仪表的连接:所述被测设备可以经网口与一个或者多个测试仪表连接。
所述客户端,在访问测试用例配置文件之前,还为本次测试设置需要连接的被测设备和测试仪表,所述客户端根据所述设置,建立与需要连接的被测设备的连接,建立与所述服务器的连接,将设置的需要连接的测试仪表的IP地址及端口列表发送给所述服务器,所述服务器将根据接收到的测试仪表的IP地址及端口列表,为所述客户端连接相应的测试仪表并占用端口。
较佳地,在编写问测试用例配置文件时,如需返回结果,可增加控制命令结果判断字段。相应地,所述客户端在解析测试用例配置文件中的控制命令时,如果判断出存在控制命令结果判断字段,则根据所述控制命令结果判断字段取值调用对应的功能函数,并获取函数返回值。在实现时,可以根据具体需要增加控制命令结果判断字段,并设置其取值。例如,为了返回测试仪表对被测设备的测试结果,可以增加控制命令结果判断字段,设置其取值为一用以指示返回测试仪表对被测设备进行测试的结果的值,客户端调用对应的功能函数后可以从对应测试仪表获取到测试结果。再例如,为了获知被测设备的配置情况,则可以增加一控制命令结果判断字段,将其值设置为一用以指示返回被测设备配置情况的值,客户端调用对应的功能函数后可以从对应被测设备获取到配置结果。又例如,为了获知测试仪表对某一配置命令的执行情况,则可以增加一控制命令结果判断字段,将其值设置为一用以指示返回测试仪表对该配置命令的执行情况的值,客户端调用对应的功能函数后可以从对应测试仪表获取到配置结果。等等。
较佳地,所述客户端在访问测试用例配置文件之前,还可以为本次测试设置测试用户名和测试结果保存路径,在获取到函数返回值后,将根据设置的测试用户名和测试结果保存路径,将所述函数返回值保存至所述测试结果保存路径下的以所述设置的测试用户名命名的文件或者文件夹中以进行管理。
较佳地,本发明C/S架构的自动化测试系统中,可以具有一个或者多个客户端,为了解决多个客户端同时发送大量数据时,导致网络拥塞的问题,所述服务器可以为每个连接至所述服务器的客户端创建一个独立的线程,专门用于处理来自所述客户端的数据,从而以多线程处理机制实现对多个客户端发送来的数据的并行处理。在具体实现时,可以根据所述客户端的IP地址以及端口号生成所述客户端对应的线程的ID,所述ID能够唯一标识所述客户端,从而为客户端生成独立的线程。另外,独立的线程,也将有效避免一个客户端出现异常而对其他客户端的测试流程造成影响。
较佳地,所述服务器,在将测试仪表配置命令发送给对应的测试仪表后,还可以监测所述对应的测试仪表的执行状态,并将监测到的执行状态发送给对应的客户端;所述客户端接收测试仪表的执行状态,并进行处理,从而实现用户对测试仪表执行状态的监测。较佳地,所述监测可以是实时的,以便及时发现异常。
较佳地,所述客户端还可以监测被测设备的执行状态,并进行处理,从而实现用户对被测设备执行状态的监测。较佳地,所述监测可以是实时的,以便及时发现异常。
较佳地,所述服务器,在将测试仪表配置命令发送给对应的测试仪表后,还可以获取所述对应的测试仪表的执行日志,并将其返回给对应的客户端;所述客户端接收并保存测试仪表的执行日志,以便于后期测试流程的查询,也可以作为脚本运行过程中异常情况的调试依据。
较佳地,所述客户端,还可以获取并保存被测设备的执行日志,以便于后期测试流程的查询,也可以作为脚本运行过程中异常情况的调试依据。
较佳地,所述客户端上可以安装有图形化的自动化测试软件,通过执行所述自动化测试软件,于图形化界面上选择出本次测试的测试用例配置文件。
较佳地,所述服务器,还将于开启时,验证其与可连接的所有测试仪表的连接状态是否正确,以避免后续测试时出现连接不正常导致的错误。
较佳地,所述客户端在访问完测试用例配置文件后,还将断开与所述服务器的连接,以及断开与被测设备之间的连接。
本发明上述基于C/S架构的自动化测试系统,能够充分发挥客户端处理优势,将任务合理分配,同时,制定通用的脚本开发规则,同一配置命令对应于不同测试仪表中的相同配置,由服务器承担测试仪表的代理,令传统的测试仪表命令相对于用户透明,用户在开发测试脚本时,只需按照控制命令说明手册中规定的通用的控制命令编写测试用例配置文件即可,这大大降低了用户开发测试脚本的难度;由于封装库安装在服务器上,减少了代码库的冗余,避免了封装库维护过程中繁琐的更新过程,实现对测试仪表命令和集中管理和版本控制;封装库具有很高的可扩展性,某一命令接口增加新的配置时,只需要在服务器上增加封装库的参数列表,维护工作更简单;用户只需修改测试用例配置即可满足特定的测试需求,这大大简化了自动化测试流程。
基于上述控制测试仪表的装置,本发明实施例还提供了一种控制测试仪表的方法,如图4所示,包括:
步骤S401:客户端向服务器发送测试仪表配置命令;
步骤S402:所述服务器根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应API,通过所述API完成对相应测试仪表的配置。
较佳地,所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API。所述步骤S402中,服务器调用相应测试仪表的相应API包括:在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,从加载的所述对应的测试仪表的命令封装库中调用所述配置命令标识符对应的API。
较佳地,所述测试仪表配置命令是所述客户端从测试用例配置文件中读取出来的。
较佳地,所述客户端在发送所述测试仪表配置命令前,还判断其中是否包含控制命令结果判断字段,如果包含,则在发送所述测试仪表配置命令后,还根据所述控制命令结果判断字段调用对应的功能函数,经所述服务器与对应的测试仪表交互,获取函数返回值。
较佳地,所述服务器为每个与其连接的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
基于上述自动化测试系统,本发明实施例还提供了一种自动化测试方法,如图5所示,包括:
步骤S501:根据测试用例,编写测试用例配置文件;
所述测试用例配置文件中包括被测设备配置命令、测试仪表配置命令;其中,所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
步骤S501中,本发明测试仪表配置命令中封装了测试仪表的底层应用程序编程接口(API),是一套统一的命令接口,从而使得不同测试仪表的相同配置可以使用相同的控制命令。用户在编写测试用例配置文件时,按照控制命令说明手册中规定的通用的控制命令即可编写而成,与编程语言无关,容易掌握;
步骤S502:连接测试系统,包括:将客户端与一个或者多个被测设备连接,以及与一加载有多种不同类型的测试仪表的命令封装库的服务器相连,将所述服务器与一个或者多个测试仪表相连,将所述测试仪表与一个或者多个被测设备相连;
步骤S503:启动所述测试系统,执行自动化测试:所述客户端选择本次测试所需的测试用例配置文件,读取所述测试用例配置文件,分析读取到的控制命令,如果为被测设备配置命令,则将其发送给对应的被测设备,以配置所述被测设备;如果为测试仪表配置命令,则将其发送至所述服务器;所述服务器在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,调度所述对应的测试仪表的命令封装库,根据配置命令标识符从所述对应的测试仪表的命令封装库中获取对应的API,并将获取到的API发送给所述对应的测试仪表;所述测试仪表,执行接收到的API,以测试对应的被测设备。
本发明巧妙地设计了一种以C/S架构实现自动化测试的方案,能够充分发挥客户端处理优势,将任务合理分配,同时,制定通用的脚本开发规则,同一配置命令对应于不同测试仪表中的相同配置,由服务器承担测试仪表的代理,令传统的测试仪表命令相对于用户透明,用户在开发测试脚本时,只需按照控制命令说明手册中规定的通用的控制命令编写测试用例配置文件即可,这大大降低了用户开发测试脚本的难度;由于封装库安装在服务器上,减少了代码库的冗余,避免了封装库维护过程中繁琐的更新过程,实现对测试仪表命令和集中管理和版本控制;封装库具有很高的可扩展性,某一命令接口增加新的配置时,只需要在服务器上增加封装库的参数列表,维护工作更简单;用户只需修改测试用例配置即可满足特定的测试需求,这大大简化了自动化测试流程。
其中,所述控制命令还可以包括测试任务描述信息,例如测试任务编号、测试任务名称等信息;
其中,在执行步骤S502时,即,在构建测试系统时,可以采用下述方式连接各部件:
客户端与被测设备的连接:所述客户端可以通过一串口服务器,建立与一个或者多个所述被测设备的连接,采用串口方式管理与其相连的一个或者多个被测设备。所述客户端也可以利用telnet协议建立与一个或者多个所述被测设备的连接,并对与其相连的一个或者多个被测设备进行管理。
客户端与服务器的连接:所述客户端可以利用传输控制协议(TCP)建立与所述服务器的连接。
服务器与测试仪表的连接:所述服务器可以利用传输控制协议(TCP)建立与一个或者多个测试仪表的连接。
被测设备与测试仪表的连接:所述被测设备可以经网口与一个或者多个测试仪表连接。
在一具体实现中,可以在步骤S502之前,于所述客户端上为本次测试设置需要连接的被测设备和测试仪表;在执行步骤S502时,可以是由所述客户端是根据所述设置,建立与需要连接的被测设备的连接,建立与所述测量仪表控制服务器的连接,通知所述测量仪表控制服务器需要连接的测试仪表,所述测量仪表控制服务器根据所述通知连接对应的测试仪表。所述客户端,可以通过向所述测量仪表控制服务器发送需要连接的测试仪表的IP地址及端口列表,以通知所述测量仪表控制服务器需要连接的测试仪表,所述测量仪表控制服务器将根据接收到的测试仪表的IP地址及端口列表,连接相应的测试仪表并占用端口。
较佳地,如需返回结果,则可以在执行步骤S501时,在测试用例配置文件中的相应位置增加控制命令结果判断字段。相应地,在执行步骤S503时,所述客户端在分析控制命令的过程中,如果判断出存在控制命令结果判断字段,则根据所述控制命令结果判断字段取值调用对应的功能函数,即可获取函数返回值。在实现时,可以根据具体需要增加控制命令结果判断字段,并设置其取值。例如,为了返回测试仪表对被测设备的测试结果,可以增加控制命令结果判断字段,设置其取值为一用以指示返回测试仪表对被测设备进行测试的结果的值。再例如,为了获知被测设备的配置情况,则可以增加一控制命令结果判断字段,将其值设置为一用以指示返回被测设备配置情况的值。又例如,为了获知测试仪表对某一配置命令的执行情况,则可以增加一控制命令结果判断字段,将其值设置为一用以指示返回测试仪表对该配置命令的执行情况的值。等等。
较佳地,可以在步骤S503之前,于所述客户端上为本次测试设置测试用户名和测试结果保存路径;在执行步骤S503时,在获取到函数返回值后,即可根据设置的测试用户名和测试结果保存路径,将所述函数返回值保存至所述测试结果保存路径下的以所述设置的执行测试的用户名命名的文件或者文件夹中以进行管理。
较佳地,本发明构建的C/S架构中,可以具有一个或者多个客户端,为了解决多个客户端同时发送大量数据时,导致网络拥塞的问题,所述服务器可以为每个连接至所述服务器的客户端创建一个独立的线程,专门用于处理来自所述客户端的数据,从而以多线程处理机制实现对多个客户端发送来的数据的并行处理。在具体实现时,可以根据所述客户端的IP地址以及端口号生成所述客户端对应的线程的ID,所述ID能够唯一标识所述客户端,从而为客户端生成独立的线程。另外,独立的线程,也将有效避免一个客户端出现异常而对其他客户端的测试流程造成影响。
较佳地,在执行步骤S503时,还可以包括:所述服务器在将测试仪表配置命令发送给对应的测试仪表后,监测所述对应的测试仪表的执行状态,并将监测到的执行状态发送给对应的客户端;所述客户端接收测试仪表的执行状态,并进行处理,从而实现用户对测试仪表执行状态的监测。较佳地,所述监测可以是实时的,以便及时发现异常。
较佳地,在执行步骤S503时,还可以包括:所述客户端还可以监测被测设备的执行状态,并进行处理,从而实现用户对被测设备执行状态的监测。较佳地,所述监测可以是实时的,以便及时发现异常。
较佳地,在执行步骤S503时,还可以包括:所述服务器,在将测试仪表配置命令发送给对应的测试仪表后,还可以获取所述对应的测试仪表的执行日志,并将其返回给对应的客户端;所述客户端接收并保存测试仪表的执行日志,以便于后期测试流程的查询,也可以作为脚本运行过程中异常情况的调试依据。
较佳地,在执行步骤S503时,还可以包括:所述客户端,还可以获取并保存被测设备的执行日志,以便于后期测试流程的查询,也可以作为脚本运行过程中异常情况的调试依据。
较佳地,所述客户端上可以安装有图形化的自动化测试软件,通过执行所述自动化测试软件,在执行步骤S503时,所述客户端可以于图形化界面上选择出本次测试的测试用例配置文件。
较佳地,在执行步骤S503时,还可以包括:所述服务器,还将于开启时,验证与其可连接的所有测试仪表的连接状态是否正确,以避免后续测试出现连接不正常导致的错误。
较佳地,在执行步骤S503时,还可以包括:所述客户端在访问完测试用例配置文件后,还将断开与所述服务器的连接,断开与被测设备之间连接。
为了进一步说明本发明上述自动化测试方法,下面以一具体应用实例进行说明,参见图6,包括步骤:
步骤S601:根据测试用例,将控制命令写入配置文件,控制命令包括测试任务编号、测试任务名称、被测设备及测试仪表配置命令;
步骤S602:开启系统服务器,连接所有的测试仪表,验证仪表连接状态是否正确,加载测试仪表控制命令封装库,打开TCP连接端口,等待接收客户端的连接请求;
步骤S603:客户端执行自动化测试软件,通过图形化界面选择本次测试的配置文件;设置测试的基本参数,包括:测试仪表IP地址及端口列表、测试结果文档的保存路径、执行测试的用户名;测试的基本参数设置完成后,通过本客户端的IP地址向服务器发送连接请求;
步骤S604:服务器接收到连接请求后,与客户端建立TCP连接,回送连接确认消息,并创建一个线程,专门用于处理来自该客户端的数据,服务器根据客户端IP及端口号生成线程ID,该ID用于唯一的确定一个客户端;
步骤S605:客户端收到连接确认消息后,把所述设置的测试仪表的IP地址及端口列表、测试的用户名发送给服务器,服务器会连接相应测试仪表并占用端口;
步骤S606:客户端根据图形化界面中设置的被测设备,建立与被测设备的管理通道,然后打开并逐行读取配置文件的控制命令;
步骤S607:服务器把接收到的测试仪表控制命令发送给对应的端口,把命令的返回值回送给客户端;
步骤S608:客户端读取配置文件结束后,断开与服务器的连接,关闭被测设备管理通道。
其中,步骤S606进一步包括:
步骤S6061:客户端读取配置文件控制命令,根据控制命令对象标识字段确定被控制对象,如果被控制对象为测试仪表,则把该命令发送给服务器;如果被控制对象为被测设备,则直接把命令发送给相应的被测设备;
步骤S6062:客户端读取配置文件控制命令,根据控制命令结果判断字段确定要调用的功能函数,并把函数返回值写入结果分析文档。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种测试仪表控制方法,其特征在于,包括:
客户端向服务器发送测试仪表配置命令;其中,所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
所述服务器根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置;其中,所述服务器调用相应测试仪表的相应API包括:在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,从加载的所述对应的测试仪表的命令封装库中调用所述配置命令标识符对应的API。
2.如权利要求1所述的方法,其特征在于:
所述测试仪表配置命令是所述客户端从测试用例配置文件中读取出来的;
所述客户端在发送所述测试仪表配置命令前,还判断其中是否包含控制命令结果判断字段,如果包含,则在发送所述测试仪表配置命令后,还根据所述控制命令结果判断字段调用对应的功能函数,经所述服务器与对应的测试仪表交互,获取函数返回值。
3.如权利要求1所述的方法,其特征在于:
所述服务器为每个与其连接的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
4.一种自动化测试方法,其特征在于:
客户端解析测试用例配置文件,如果为测试仪表配置命令,则据以采用权利要求1-3中任何一项所述的方法配置对应的测试仪表;如果为被测设备配置命令,则据以配置对应的被测设备。
5.一种测试仪表控制装置,其特征在于,包括:
客户端,用于连接服务器,向所述服务器发送测试仪表配置命令;其中,所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
所述服务器,用于根据接收到的测试仪表配置命令,从加载的测试仪表命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置;其中,所述服务器调用相应测试仪表的相应API包括:在接收到测试仪表配置命令后,从中获取仪表类型标识符和配置命令标识符,根据所述仪表类型标识符确定对应的测试仪表,从加载的所述对应的测试仪表的命令封装库中调用所述配置命令标识符对应的API。
6.如权利要求5所述的装置,其特征在于:
所述客户端,在发送测试仪表配置命令之前,还包括从测试用例配置文件中读取出所述测试仪表配置命令;
所述客户端,在发送所述测试仪表配置命令前,还包括判断其中是否包含控制命令结果判断字段,如果包含,则在发送所述测试仪表配置命令后,还根据所述控制命令结果判断字段调用对应的功能函数,经所述服务器与对应的测试仪表交互,获取函数返回值。
7.如权利要求5所述的装置,其特征在于:
所述服务器,还为每个与其连接的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
8.一种服务器,其特征在于,包括接收模块、加载模块,与所述接收模块和所述加载模块均相连的处理模块,其中:
所述接收模块,用于接收测试仪表配置命令,并将其发送至所述处理模块;其中,所述测试仪表配置命令中包含仪表类型标识符和配置命令标识符,且同一配置命令标识符对应于不同类型的测试仪表中的相同功能的API;
所述加载模块,用于加载测试仪表的命令封装库;
所述处理模块,用于根据接收到的测试仪表配置命令,从所述加载的命令封装库中调用相应测试仪表的相应应用程序编程接口(API),通过所述API完成对相应测试仪表的配置,具体包括解析单元、第一分析处理单元和第二分析处理单元;
解析单元,用于对接收到的测试仪表配置命令进行解析,获取仪表类型标识符和配置命令标识符;
第一分析处理单元,用于从所述解析单元获取仪表类型标识符,据以确定对应的测试仪表;
第二分析处理单元,用于从所述解析单元获取配置命令标识符,从所述第一分析处理单元获取确定的测试仪表信息,从加载的所述确定的测试仪表的命令封装库中调用所述配置命令标识符对应的API,根据所述API完成对相应测试仪表的配置。
9.如权利要求8所述的服务器,其特征在于:
所述处理模块,还为每个连接至所述服务器的客户端创建一个独立的线程,采用多线程处理机制并行处理各客户端发送来的数据。
10.一种自动化测试系统,其特征在于,包括被测设备、与被测设备相连的测试仪表,以及权利要求5至7中任何一项所述的包含客户端和服务器的测试仪表控制装置,所述客户端还用于配置所述被测设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110090535 CN102158370B (zh) | 2011-04-12 | 2011-04-12 | 一种自动化测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110090535 CN102158370B (zh) | 2011-04-12 | 2011-04-12 | 一种自动化测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102158370A CN102158370A (zh) | 2011-08-17 |
CN102158370B true CN102158370B (zh) | 2013-08-21 |
Family
ID=44439571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110090535 Expired - Fee Related CN102158370B (zh) | 2011-04-12 | 2011-04-12 | 一种自动化测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102158370B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001704A (zh) * | 2011-09-08 | 2013-03-27 | 工业和信息化部电信传输研究所 | 分布式终端射频一致性自动化测试系统 |
CN103092639B (zh) * | 2011-11-07 | 2016-05-25 | 腾讯科技(深圳)有限公司 | 一种实现应用的方法及设备 |
CN102769665B (zh) * | 2012-06-28 | 2015-06-03 | 大唐移动通信设备有限公司 | 射频测试仪表共享系统及其使用方法 |
CN103077135A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第四十一研究所 | 一种支持并行测试的测试资源管理方法 |
CN103064789B (zh) * | 2013-01-11 | 2017-08-04 | 上海斐讯数据通信技术有限公司 | 一种软件控制的自动化测试方法 |
CN103412758B (zh) * | 2013-08-19 | 2016-12-28 | 电子科技大学 | 一种控制红外热像仪的方法 |
CN103716103B (zh) * | 2013-12-30 | 2016-08-17 | 上海原动力通信科技有限公司 | 一种测试方法及测试系统 |
CN103759760B (zh) * | 2014-01-13 | 2016-06-22 | 华为技术有限公司 | 测试的方法与装置 |
CN104483964A (zh) * | 2014-11-24 | 2015-04-01 | 珠海格力电器股份有限公司 | 一种自动测试方法、装置及系统 |
CN104954462A (zh) * | 2015-06-12 | 2015-09-30 | 福建新大陆通信科技股份有限公司 | 一种高并发可扩展的智能家居通信方法和系统 |
CN106325117B (zh) * | 2015-06-30 | 2020-04-10 | 中兴通讯股份有限公司 | 一种自动化控制仪表的方法、装置和系统 |
CN105007195B (zh) * | 2015-07-15 | 2018-01-26 | 广东欧珀移动通信有限公司 | 一种端口的绑定方法及装置 |
CN107341099A (zh) * | 2017-05-23 | 2017-11-10 | 烽火通信科技股份有限公司 | 一种仪表配置的自动化测试用例生成系统及生成方法 |
CN109150281B (zh) * | 2017-06-27 | 2021-12-28 | 航天恒星科技有限公司 | 卫星地面站自动化运行方法 |
CN109871312B (zh) * | 2017-12-05 | 2022-08-12 | 航天信息股份有限公司 | 一种接口测试方法、装置、设备及可读存储介质 |
CN109979444A (zh) * | 2017-12-27 | 2019-07-05 | 深圳市优必选科技有限公司 | 一种语音指令自动化测试方法、终端以及装置 |
CN108445869A (zh) * | 2018-03-26 | 2018-08-24 | 杭州先途电子有限公司 | 一种控制器测试方法及系统 |
CN108595320B (zh) * | 2018-04-03 | 2022-03-22 | 新华三信息安全技术有限公司 | 一种测试方法及装置 |
CN113038068B (zh) * | 2019-12-24 | 2024-02-06 | 浙江宇视科技有限公司 | 一种模拟相机控制方法、装置、设备及存储介质 |
CN111723006B (zh) * | 2020-05-25 | 2022-03-08 | 四川九洲电器集团有限责任公司 | 一种基于c#的自动化测试框架以及工控机 |
CN112671596A (zh) * | 2020-11-18 | 2021-04-16 | 武汉迈威通信股份有限公司 | 一种远程控制的自动化测试系统及测试方法 |
CN113765693B (zh) * | 2021-01-29 | 2024-06-18 | 北京京东拓先科技有限公司 | 一种需求测试方法、装置、服务器及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799764A (zh) * | 2009-12-31 | 2010-08-11 | 芯通科技(成都)有限公司 | 一种仪器模块通用接口的实现方法 |
-
2011
- 2011-04-12 CN CN 201110090535 patent/CN102158370B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799764A (zh) * | 2009-12-31 | 2010-08-11 | 芯通科技(成都)有限公司 | 一种仪器模块通用接口的实现方法 |
Non-Patent Citations (2)
Title |
---|
"软件自动化测试技术的研究与实现";谭献海等;《中国优秀硕士论文电子期刊网》;20070430;全文 * |
谭献海等."软件自动化测试技术的研究与实现".《中国优秀硕士论文电子期刊网》.2007,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102158370A (zh) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102158370B (zh) | 一种自动化测试方法和系统 | |
US11652918B2 (en) | Using automatically collected device problem information to route and guide users' requests | |
US20230079245A1 (en) | Systems and methods to reprogram mobile devices | |
CN101119392B (zh) | Socket统一接入的方法 | |
CN109361562B (zh) | 一种基于关联网络设备接入的自动化测试方法 | |
DE102017116576A1 (de) | Prozesssteuerungskommunikation zwischen einem tragbaren Feldwartungswerkzeug und einem Prozessleitinstrument | |
DE102017116539A1 (de) | Prozesssteuerungskommunikation zwischen einem tragbaren Feldwartungswerkzeug und einem Asset-Management-System | |
US20090300423A1 (en) | Systems and methods for software test management in cloud-based network | |
KR100297371B1 (ko) | 반도체 공정 데이터 통합 관리 방법 | |
JP2018037066A (ja) | プロセス制御通信アーキテクチャ | |
US20050286435A1 (en) | Remote management system | |
TW201411158A (zh) | 於製造環境中用於客戶特定測試系統配置之方法及系統 | |
CN105607994A (zh) | 一种移动终端软件测试方法和系统 | |
CN110535671B (zh) | 云平台的管理方法及装置 | |
CN112910884B (zh) | 一种通过封装tr069消息实现apk与acs交互的方法 | |
CN112115044A (zh) | 电力信息通信设备自动化测试方法及系统 | |
CN104106245B (zh) | 管理由多个应用程序进程使用的网络连接的方法和设备 | |
CN113347060B (zh) | 基于流程自动化的电力网络故障检测方法、装置和系统 | |
US20050034019A1 (en) | Method and system for remotely diagnosing devices | |
JP5066222B2 (ja) | ネットワーク解析支援装置、ネットワーク解析支援方法及びプログラム | |
CN107911410A (zh) | 分布式服务进程资源耗用统计方法和装置 | |
US9294865B2 (en) | Enhanced system and method for custom programming of large groups of phones without requiring additional equipment | |
CN111221687B (zh) | 一种云存储测试系统和方法 | |
JP2004348548A (ja) | 制御システム及び同システムの保守サービス方法 | |
JP2004152024A (ja) | ログ管理方法および当該方法を用いたコンピュータプログラム |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130821 |