CN1858719A - 一种自动化测试实现方法及其*** - Google Patents
一种自动化测试实现方法及其*** Download PDFInfo
- Publication number
- CN1858719A CN1858719A CN 200510132863 CN200510132863A CN1858719A CN 1858719 A CN1858719 A CN 1858719A CN 200510132863 CN200510132863 CN 200510132863 CN 200510132863 A CN200510132863 A CN 200510132863A CN 1858719 A CN1858719 A CN 1858719A
- Authority
- CN
- China
- Prior art keywords
- module
- command
- messages
- message
- controlled
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种自动化测试实现方法,该方法由主控计算机接受用户发送的测试命令,将该命令转换成命令消息传送至受控计算机,其中该命令消息包括消息类型,该消息类型与测试受控软件实体需调用的功能类型相对应;受控计算机接收到该命令消息后,由受控软件实体执行所述功能调用,并将功能调用的结果以返回消息的形式传递给主控计算机。本发明为业界提供了一种分布式控制软件实体的自动化测试实现方案;该方案简便易用,容易理解,同时降低了开发、使用及维护的复杂度和成本。
Description
技术领域
本发明涉及测试技术领域,更确切地说是涉及一种自动化测试实现方法及其***。
背景技术
在软件工程领域,测试是一个很重要的环节。而传统的手工测试效率低,测试覆盖率也较低。
为了提高测试效率和测试覆盖率,实现测试自动化已经成为业界众多企业的共识。越来越多的企业能够在测试用例的执行上实现比较高的自动化率。随着自动化测试的广泛应用,应用的场景也越趋复杂,特别是有了分布式控制的要求,需要对本机外其它计算机上的软件实体进行控制。
现有的自动化测试方法无法实现分布式控制软件实体的功能。在需要进行分布式控制的应用场景,测试人员在执行自动化用例执行过程中,手工去操作不同计算机上的软件实体。测试人员的人工操作方式难以实现测试自动化,效率低,且对于某些时序要求严格或需并行处理的应用,手工操作很难准确实现。
针对上述情况可以利用微软公司提供的一种分布式组件对象模型(Distributed Component Object Model,DCOM)进行分布式控制的实现方案,但该方案在实现的过程中需要开发人员掌握大量复杂DCOM的技术知识,开发难度较大。在应用时也需要配置,应用人员也需掌握一定的DCOM背景知识,对应用人员技术要求高。同时,后续版本升级或维护时成本较高。
发明内容
本发明提供一种自动化测试实现方法及其装置,以解决现技术中实现自动化测试存在开发和使用复杂度以及成本高的问题。
本发明提供以下技术方案:
一种自动化测试实现方法,包括如下步骤:
A、主控计算机接受测试命令,并将该命令转换成命令消息传送至受控计算机,其中该命令消息包括消息类型,该消息类型与测试受控软件实体需要调用的功能类型相对应;
B、受控计算机接收到该命令消息后,由受控软件实体执行功能调用,并将功能调用的结果以返回消息的形式传递给主控计算机。
步骤A中所述测试命令是利用TCL扩展命令编写的TCL脚本形式的测试命令。
步骤A中所述的命令消息包括消息头和操作信息,所述消息头包括识别受控软件实体的调用标识与识别消息处理事务的事务标识;所述操作信息包含相应于调用的输入参数。
步骤B进一步包括:
B1、所述的受控计算机接收到命令消息,依据事务标识对其进行识别,判断所述消息属于本次调用的起始消息时,创建调用进程;
B2、受控软件实体通过读取所述命令消息来调用自身的功能函数或其它外部接口,并将调用结果以返回消息的形式传递至主控计算机;
B3、当受控计算机接收到本次调用的终止消息时,终止调用进程,并返回终止消息。
所述主控计算机与受控计算机采用在主控计算机上加入客户端通信层及在受控计算机上加入服务器端通信层的方式进行交互。
在客户端通信层上提供输出接口函数,则主控计算机向受控计算机传送命令消息与接受返回消息是以目标调用的方式进行。
所述以目标调用的方式进行进一步指:在执行第一个命令消息传送前先启动目标调用,之后执行命令消息传送,并获取该命令消息执行结果对应的返回消息,无须执行命令时终止目标调用。
受控计算机上的服务器端通信层接受了消息命令后,服务器端通信层与受控软件实体之间通过共享内存进行交互。
所述服务器端通信层创建两个基于共享内存的消息队列,分别用于存放命令消息和返回消息,受控软件实体通过对消息队列的读写完成同服务器端通信层的消息交互。
本发明进一步提供一种自动化测试实现***,所述***包括主控计算机及至少一台受控计算机,其中,主控计算机用于接受用户发送的测试命令,并将该命令转换成命令消息传送至受控计算机,所述命令消息包括消息类型,该消息类型与对受控软件实体进行测试需调用的功能类型相对应;受控计算机接收到该命令消息后,其所述受控软件实体执行所述功能调用并将功能调用返回结果以返回消息的形式传递给主控计算机。
所述主控计算机包括脚本解释模块、扩展包模块及主控通信层模块,其中,
所述脚本解释模块接受外部的测试命令调用,并将该命令传送至扩展包模块;
所述扩展包模块用于接受脚本解释模块发送的测试命令,将该命令构造成命令消息后发送至主控通信层模块,并接受主控通信层模块返回的携带命令执行结果的返回消息,将其进行解析后上报至脚本解释模块;
所述主控通信层模块将扩展包模块的命令消息传递给受控通信层模块,将受控通信层模块传回的返回消息传递给扩展包模块。
所述受控计算机包括受控通信层模块和受控软件实体模块,受控通信层模块一端与主控通信层模块连接进行交互,另一端以共享内存的形式与受控软件实体交互进行受控软件实体的测试调用。
所述受控计算机上的受控通信层模块惟一对应一个ID标识,该ID标识可以是IP地址。
每台受控计算机上只能启动一个受控通信层进程。
本发明公开一种主控计算机,所述主控计算机包括脚本解释模块、扩展包模块及主控通信层模块,其中,
所述脚本解释模块接受外部的测试命令调用,并将该命令传送至扩展包模块;
所述扩展包模块用于接受脚本解释模块发送的测试命令,将该命令构造成命令消息后发送至主控通信层模块,所述命令消息包括消息类型,该消息类型与对受控软件实体进行测试需调用的功能类型相对应;并接受主控通信层模块返回的携带命令执行结果的返回消息,将其进行解析后上报至脚本解释模块;
所述主控通信层模块将扩展包模块的命令消息传递给受控通信层模块,将受控通信层模块传回的返回消息传递给扩展包模块。
所述扩展包模块包括命令分析模块、命令消息构造模块、命令返回值解析模块及命令执行结果上报模块,其中,
所述命令分析模块同脚本解释模块交互,接受其发送的测试命令,并对该命令进行分析;
所述命令消息构造模块依据命令分析模块分析的结果将其构造成命令消息将其发送至主控通信层模块;
所述命令返回值解析模块与主控通信层模块交互,接受所述命令消息执行结果对应的返回消息,并对其进行解析后发送至命令执行结果上报模块;
所述命令执行结果上报模块将命令执行结果返回至脚本解释模块。
所述主控通信层模块包括发送命令模块和接收线程模块,其中,
发送命令模块用于将从扩展包模块接收的命令发送至受控通信层模块;
接收线程模块又包括接收消息模块和返回消息匹配模块,接收消息模块将从受控通信层模块返回的消息转发至返回消息匹配模块,由返回消息匹配模块将该消息转发至扩展包模块。
本发明进一步公开一种受控计算机,所述受控计算机包括受控通信层模块和受控软件实体模块,受控通信层模块一端与主控通信层模块连接进行交互,另一端以共享内存的形式与受控软件实体交互进行受控软件实体的测试调用。
所述受控通信层模块包括接收线程模块及与其匹配的共享内存及第一内存读取线程模块及与其匹配的共享内存,其中,
所述接收线程模块用于接收主控通信层模块发送来的命令,对该消息的类型进行识别后通过与受控软件实体的共享内存进行测试目标调用并控制调用进程;
所述第一内存读取线程模块用于从与其对应的共享内存中读取返回消息,并将该返回消息转发至主控计算机。
所述接收线程模块包括接收消息模块、消息类型识别模块、创建调用进程模块、终止调用进程模块,其中,
消息类型识别模块向受控实体软件模块发送命令消息,并依据命令消息的消息类型通过共享内存的方式实现对受控软件实体测试目标的调用;
当消息类型识别模块发送的消息为起始消息时即调用创建调用进程模块开始一个进程;
当消息类型识别模块发送的消息为终止消息时,即调用终止调用进程模块结束一个进程。
所述第一内存读取线程模块包括内存读取模块和发送命令模块,其中所述内存读取模块用于从共享内存中读取携带功能调用执行结果的返回消息;所述发送命令模块将该返回消息返回至主控通信层模块。
所述受控软件实体模块包括第二内存读取线程模块、功能函数模块及返回消息构造模块,其中,
所述功能函数模块用于提供测试该受控软件实体模块时可调用的功能函数;
所述消息构造模块用于将功能函数模块的调用结果进行构造,构造成返回消息,通过共享内存传回受控通信层模块;
所述第二内存读取线程模块用于通过读取受控通信层模块共享内存的方式接受命令消息,并对该命令进行解析后,调用功能函数模块提供的测试功能函数进而对受控软件实体模块进行测试。
所述第二内存读取线程模块进一步包括读取共享内存数据模块、命令解析模块及命令调用模块,其中,
所述读取共享内存数据模块用于读取命令消息共享内存中的命令消息;
所述命令解析模块用于对该所述命令消息进行解析;
所述命令调用模块依据解析结果调用功能函数模块提供的测试功能函数进而对受控软件实体模块进行测试。
通过本发明所述的方法及相应的***为业界提供了一种分布式控制软件实体的自动化测试实现方案,该方案简便易用,容易理解,同时降低了开发、使用及维护的复杂度和成本。本发明解决了测试自动化实现中进行分布式控制软件实体的问题。
附图说明
图1为本发明所述自动化测试实现***结构示意图;
图2为本发明所述主控计算机上的扩展包模块的结构示意图;
图3为本发明主控通信层模块结构示意图;
图4为本发明受控通信层模块结构示意图;
图5为本发明受控软件实体模块的体系结构示意图;
图6为本发明从扩展包模块发送出的命令消息的结构示意图;
图7为本发明从扩展包模块发出的命令消息的消息头结构示意图;
图8为本发明从受控软件实体向主控计算机返回的返回消息的消息头结构示意图;
图9为本发明进行测试的主要流程图;
图10为在主控计算机向受控计算机发送命令消息与接受返回消息的流程示意图。
具体实施方式
如图1所示,本发明的测试***包括主控计算机及至少一台受控计算机。主控计算机上除了包括传统的脚本解释模块外,还包括扩展包模块及主控通信层模块。所述脚本解释模块可以是基于工具命令语言TCL(ToolCommand Language)的自动化测试平台(也可以采用其他的脚本语言解释模块,比如TTCN),用户可以用它进行自动化用例的设计、实现、执行及测试报告输出。受控计算机上包括受控通信层模块和受控软件实体模块,在该体系结构中,通过外部与脚本解释模块的交互实现自动化测试的功能。通过扩展包模块、主控通信层模块、受控通信层模块及受控软件实体模块实体实现分布式控制软件实体的功能。
其中,脚本解释模块包括执行扩展命令模块,该模块接受外部的测试命令调用,并将该命令传送至扩展包模块。
主控计算机上的扩展包模块的结构示意图如2所示。该模块用于接受脚本解释模块发送的测试命令,并将该命令构造成命令消息后发送至主控通信层模块,所述命令消息包括消息类型,该消息类型与对受控软件实体进行测试需调用的功能类型相对应;接受主控通信层模块返回的命令执行结果,并将其进行解析后上报至脚本解释模块。扩展包模块包括命令分析模块、命令消息构造模块、命令返回值解析模块及命令执行结果上报模块,其中,命令分析模块同脚本解释模块中的执行扩展命令模块交互,接受其发送的测试命令,并对该命令进行分析;命令消息构造模块依据命令分析模块分析的结果将其构造成命令消息后将其发送至主控通信层模块;命令返回值解析模块与主控通信层模块交互,接受其传送的测试命令返回值,并对该返回值进行解析后发送至命令执行结果上报模块;命令执行结果上报模块将命令执行结果返回至脚本解释模块。
其中,主控通信层模块结构如图3所述,该模块用于在主控计算机与受控计算机之间传递消息,将扩展包模块的命令消息传递给受控通信层模块,将受控通信层模块传回的返回消息传递给扩展包模块。主控通信层模块同受控通信层模块之间可以通过多种消息格式进行通信。该主控通信层模块包括发送命令模块和接收线程模块,其中,发送命令模块用于将从扩展包模块接收的命令消息发送至受控通信层模块;接收线程模块又包括接收消息模块和返回消息匹配模块,接收消息模块将从受控通信层模块返回的消息转发至返回消息匹配模块,由返回消息匹配模块将该消息转发至扩展包模块。
扩展包模块可以根据调用需要封装TCL扩展命令,形成TCL扩展包,并在脚本解释模块中将该命令开放给用户。TCL扩展包是针对某一特定应用领域对TCL语言的核心命令集合进行扩展,加入适合于自己的应用领域的扩展命令集合。用户可以在脚本解释模块中利用扩展包模块提供的TCL扩展命令编写TCL脚本,实现测试用例,通过执行测试用例达到测试目的,具有很好的灵活性和可扩展性。扩展包模块与主控通信层模块可以以接口函数形式进行交互。
在受控计算机中的受控通信层模块也起到传递消息的作用,如图4所示。其一端与主控通信层模块连接进行交互,另一端通过共享内存与受控软件实体交互。受控通信层模块惟一对应了一个ID标识,该ID标识可以是IP地址,每台PC上只能启动一个受控通信层进程。本发明所述的受控通信层模块包括接收线程模块及与其匹配的共享内存及第一内存读取线程模块及与其匹配的共享内存,其中,接收线程模块用于接收主控通信层模块发送来的命令消息,对该消息的类型进行识别后通过与受控软件实体的共享内存进行测试目标调用并控制调用进程。接收线程模块包括接收消息模块、消息类型识别模块、创建调用进程模块、终止调用进程模块,其中,消息类型识别模块向受控实体软件模块发送命令消息,通过共享内存的方式实现对受控软件实体测试目标的调用。当消息类型识别模块发送的消息为起始消息时即调用创建调用进程模块进行开始一个进程,当消息类型识别模块发送的消息为终止消息时,即调用终止调用进程模块结束一个进程。其中,第一内存读取线程模块包括内存读取模块和发送命令模块,其中,内存读取模块用于从共享内存中读取携带功能调用执行结果的返回消息;所述发送命令模块将该返回消息返回至主控通信层模块。
受控软件实体模块是实际功能调用实现部分,通过读取受控通信层模块共享内存中的消息来调用自身的功能函数或其它外部接口,实现所需功能测试,并将调用结果以返回消息的形式通过共享内存传回受控通信层模块。受控软件实体模块的体系结构图如图5所示,包括第二内存读取线程模块、功能函数模块及返回消息构造模块,其中,功能函数模块用于提供测试该受控软件实体模块时可调用的功能函数。消息构造模块用于将功能函数模块的调用结果进行构造,构造成返回消息,通过共享内存传回受控通信层模块。第二内存读取线程模块包括读取共享内存数据模块、命令解析模块及命令调用模块,用于通过读取受控通信层模块共享内存的方式接受命令,并对该命令进行解析后,调用功能函数模块提供的测试功能函数。其中,读取共享内存数据模块用于读取命令消息共享内存中的命令消息;命令解析模块用于该所述命令消息进行解析;命令调用模块依据解析结果调用功能函数模块提供的测试功能函数进而对受控软件实体进行测试。所述受控软件实体模块还可以包括内部事件处理监视模块,该模块同调用功能函数模块相连,用于对调用情况进行监视。
本发明的体系架构中的对受控软件实体的调用方式可以利用扩展现有协议的方式进行调用,也可以通过自定义消息的形式进行调用。通过自定义消息调用时,以自定义消息为基本处理单位,遵循统一的消息结构。每个自定义消息对应受控软件实体的一个基本功能,新增一个基本功能应首先定义对应的自定义消息。扩展包模块向受控软件实体模块传递的为命令消息,受控软件实体模块收到命令消息后调用对应的测试功能函数,将返回结果以返回消息的形式传递给扩展包模块,这样就完成了一个基本功能处理。
从扩展包模块发送出的消息的结构如图6所示,包括消息头和操作信息两个部分。对于从扩展包模块发出的命令消息的消息头包含如图7所示的四个部分,包括消息长度、调用ID、事务ID和消息类型。其中,消息长度用于标识整个消息的字节大小;调用ID标识调用类型,用于惟一标识一个受控软件实体;事务ID用于惟一标识一个消息处理事务,每发送一个命令消息可以递增1;消息类型用于标识本消息对应的类型,对应于受控软件实体的一个功能调用。命令消息的操作信息为此次调用的输入参数。
从受控软件实体向主控计算机返回的返回消息的消息头如图8所示,包括消息长度、调用ID、事务ID、消息结束标志、服务层异常标志,其中,消息长度用于标识整个消息的字节大小;调用ID标识调用类型,用于惟一标识一个受控软件实体,为对应的命令消息的调用ID;事务ID惟一标识一个消息处理事务,为对应的命令消息的事务ID;消息结束标志用于标识返回消息是否结束;服务层异常标志:用于标识服务层是否异常。通过调用ID和事务ID可惟一匹配命令消息和返回消息。该匹配可以在主控通信层模块端的返回消息匹配模块中完成。
上述操作信息内容为当前消息所需的必要数据。命令消息的操作信息则为输入参数,返回消息的操作信息则为输出参数和返回值,具体的信息内容只与消息类型有关,通过与消息类型匹配以获取其操作信息。
扩展层模块同主控通信层模块之间可以通过函数调用进行交互,主控通信层模块提供输出接口函数供扩展包模块调用。接口函数可以有如表一所述的几种。
表一
接口函数名称 | 功能 |
ExecCmd | 执行命令 |
GetCmdResult | 获取命令执行结果 |
StartCall | 启动目标调用 |
EndCall | 终止目标调用 |
GetTransactionID | 获取事务ID |
扩展包模块调用过程是:在执行第一个命令前先启动目标调用。之后执行命令,获取命令执行结果。无须执行命令时终止目标调用。在启动目标调用,执行命令,终止目标调用前都须获取事务ID。目标调用即为受控软件实体,通过调用ID来标识。
主控通信层模块与受控通信层模块之间可以通过多种方式进行通信,可以通过服务器端和客户端方式通信,也可以通过自定义消息类型方式进行通信,还可以对现在的通信方式进行扩展进行通信,也可以通过调用接口函数的方式通信,以传递消息。
受控通信层模块与受控软件实体模块之间通过共享内存进行交互。受控通信层模块创建了两个基于共享内存的消息队列,分别用于存放命令消息和返回消息。受控软件实体打开消息队列,通过消息队列的读写完成消息的交互。消息队列提供的接口类型如表二所示,受控通信层模块接收到从主控通信层模块发送来的命令消息后,调用SendMessage函数向命令消息队列发送消息;等待返回消息队列中有消息时,调用GetMessage函数获取消息,向主控通信层模块发送返回消息。受控软件实体等待命令消息队列中有消息时,调用GetMessage获取消息;处理完消息后调用SendMessage向返回消息队列发送消息。
表二
接口函数名称 | 功能 |
SendMessage | 发送消息 |
GetMessage | 接收消息 |
GetMsgCount | 获取消息个数 |
ResetMsgQueue | 复位消息队列 |
m_hHaveMsgEvent | 消息事件 |
参阅图9所示,自动化测试的主要步骤如下:
步骤100、向主控计算机发送测试命令。
主控计算机根据测试调用需要封装了TCL扩展命令,用户利用该TCL扩展命令编写成的TCL脚本的形式输入测试命令,进而实现测试用例的调用。
步骤110、主控计算机测试命令转换成命令消息的形式传送至受控计算机。所述命令消息包括消息类型,该消息类型与对受控软件实体进行测试需调用的功能类型相对应。
主控计算机依据主控计算机同受控计算机受控软件实体通信的格式将该测试命令构造成命令消息,消息格式如图6及图7所示。
步骤120、受控计算机接收到命令消息后,其上的受控软件实体执行功能调用。
受控计算机接收到该命令消息,依据事务ID对其进行识别,判断属于本次调用的起始消息时,创建调用进程,并将随后的命令消息发送至受控计算机上的共享内存,受控软件实体通过读取通信层Server共享内存中的消息来调用自身的功能函数或其它外部接口。
步骤130、受控计算机功能调用的结果以返回消息的形式传递给主控计算机。返回消息的格式如图8所示。通过调用ID和事务ID可惟一匹配命令消息和返回消息,当受控计算机接收到本次调用的终止消息时,终止调用进程,在此次的返回消息中携带消息结束标志。
上述主控计算机与受控计算机之间的通信方式很多,本实施例中,主控计算机与受控计算机采用在主控计算机上加入客户端通信层及在受控计算机上加入服务器端通信层的方式进行交互(相应的主控通信层模块对应客户端通信层;受控通信层模块对应服务器端通信层)。在客户端通信层上提供输出接口函数,该接口函数的类型如表一所示。在主控计算机向受控计算机发送命令消息与接受返回消息的流程如图10所示,在执行第一个命令消息发送前先启动目标调用。之后执行命令消息传送,并获取相应于该命令消息执行结果的返回消息。无须执行命令时终止目标调用。在启动目标调用、执行命令、终止目标调用前都须获取事务ID。目标调用即为受控软件实体,通过调用ID来标识,即依据命令消息中的调用ID判断需要同哪个受控软件实体通讯,然后启动同该受控软件实体的调用。
受控计算机上的服务器端通信层接受了消息命令后,服务器端通信层与受控软件实体之间通过共享内存进行交互。通信层创建两个基于共享内存的消息队列,分别用于存放命令消息和返回消息。受控软件实体打开消息队列,通过消息队列的读写完成消息的交互。该消息队列提供的接口函数如表二所示。服务器端通信层接收到从客户端通信层发送来的命令消息后,调用SendMessage向命令消息队列发送消息。等待返回消息队列中有消息时,调用GetMessage获取消息,向客户端通信层发送返回消息。受控软件实体发现命令消息队列中有消息时,调用GetMessage获取消息。处理完消息后调用SendMessage向返回消息队列发送消息。
本发明提供的分布式控制软件实体的自动化测试实现方法简便易用,容易理解,降低开发、使用及维护的复杂度和成本,解决了分布式控制软件实体的自动化测试的难题。
Claims (23)
1、一种自动化测试实现方法,其特征在于,包括如下步骤:
A、主控计算机接受测试命令,并将该命令转换成命令消息传送至受控计算机,其中该命令消息包括消息类型,该消息类型与测试受控软件实体需要调用的功能类型相对应;
B、受控计算机接收到该命令消息后,由受控软件实体执行功能调用,并将功能调用的结果以返回消息的形式传递给主控计算机。
2、如权利要求1所述的方法,其特征在于,步骤A中所述测试命令是利用TCL扩展命令编写的TCL脚本形式的测试命令。
3、如权利要求1所述的方法,其特征在于,步骤A中所述的命令消息包括消息头和操作信息,所述消息头包括识别受控软件实体的调用标识与识别消息处理事务的事务标识;所述操作信息包含相应于调用的输入参数。
4、如权利要求3所述的方法,其特征在于,步骤B进一步包括:
B1、所述的受控计算机接收到命令消息,依据事务标识对其进行识别,判断所述消息属于本次调用的起始消息时,创建调用进程;
B2、受控软件实体通过读取所述命令消息来调用自身的功能函数或其它外部接口,并将调用结果以返回消息的形式传递至主控计算机;
B3、当受控计算机接收到本次调用的终止消息时,终止调用进程,并返回终止消息。
5、如权利要求4所述的方法,其特征在于,所述主控计算机与受控计算机采用在主控计算机上加入客户端通信层及在受控计算机上加入服务器端通信层的方式进行交互。
6、如权利要求5所述的方法,其特征在于,在客户端通信层上提供输出接口函数,则主控计算机向受控计算机传送命令消息与接受返回消息是以目标调用的方式进行。
7、如权利要求6所述的方法,其特征在于,所述以目标调用的方式进行进一步指:在执行第一个命令消息传送前先启动目标调用,之后执行命令消息传送,并获取该命令消息执行结果对应的返回消息,无须执行命令时终止目标调用。
8、如权利要求5所述的方法,其特征在于,受控计算机上的服务器端通信层接受了消息命令后,服务器端通信层与受控软件实体之间通过共享内存进行交互。
9、如权利要求8所述的方法,其特征在于,所述服务器端通信层创建两个基于共享内存的消息队列,分别用于存放命令消息和返回消息,受控软件实体通过对消息队列的读写完成同服务器端通信层的消息交互。
10、一种自动化测试实现***,其特征在于,所述***包括主控计算机及至少一台受控计算机,其中,主控计算机用于接受用户发送的测试命令,并将该命令转换成命令消息传送至受控计算机;所述受控计算机接收到该命令消息后,由所述受控软件实体执行所述功能调用并将功能调用返回结果以返回消息的形式传递给主控计算机。
11、如权利要求10所述的***,其特征在于,所述主控计算机包括脚本解释模块、扩展包模块及主控通信层模块,其中,
所述脚本解释模块接受外部的测试命令调用,并将该命令传送至扩展包模块;
所述扩展包模块用于接受脚本解释模块发送的测试命令,将该命令构造成命令消息后发送至主控通信层模块,并接受主控通信层模块返回的携带命令执行结果的返回消息,将其进行解析后上报至脚本解释模块;
所述主控通信层模块将扩展包模块的命令消息传递给受控通信层模块,将受控通信层模块传回的返回消息传递给扩展包模块。
12、如权利要求10所述的***,其特征在于,所述受控计算机包括受控通信层模块和受控软件实体模块,受控通信层模块一端与主控通信层模块连接进行交互,另一端以共享内存的形式与受控软件实体交互进行受控软件实体的测试调用。
13、如权利要求12所述的***,其特征在于,所述受控计算机上的受控通信层模块惟一对应一个ID标识,该ID标识可以是IP地址。
14、如权利要求12所述的***,其特征在于,每台受控计算机上只能启动一个受控通信层进程。
15、一种实现自动化测试的主控计算机,其特征在于,所述主控计算机包括脚本解释模块、扩展包模块及主控通信层模块,其中,
所述脚本解释模块接受外部的测试命令调用,并将该命令传送至扩展包模块;
所述扩展包模块用于接受脚本解释模块发送的测试命令,将该命令构造成命令消息后发送至主控通信层模块,并接受主控通信层模块返回的携带命令执行结果的返回消息,将其进行解析后上报至脚本解释模块;
所述主控通信层模块将扩展包模块的命令消息传递给受控通信层模块,将受控通信层模块传回的返回消息传递给扩展包模块。
16、如权利要求15所述的计算机,其特征在于,所述扩展包模块包括命令分析模块、命令消息构造模块、命令返回值解析模块及命令执行结果上报模块,其中,
所述命令分析模块同脚本解释模块交互,接受其发送的测试命令,并对该命令进行分析;
所述命令消息构造模块依据命令分析模块分析的结果将其构造成命令消息将其发送至主控通信层模块;
所述命令返回值解析模块与主控通信层模块交互,接受所述命令消息执行结果对应的返回消息,并对其进行解析后发送至命令执行结果上报模块;
所述命令执行结果上报模块将命令执行结果返回至脚本解释模块。
17、如权利要求15所述的计算机,其特征在于,所述主控通信层模块包括发送命令模块和接收线程模块,其中,
发送命令模块用于将从扩展包模块接收的命令发送至受控通信层模块;
接收线程模块又包括接收消息模块和返回消息匹配模块,接收消息模块将从受控通信层模块返回的消息转发至返回消息匹配模块,由返回消息匹配模块将该消息转发至扩展包模块。
18、一种实现自动化测试的受控计算机,其特征在于,所述受控计算机包括受控通信层模块和受控软件实体模块,受控通信层模块通过接口与主控通信层模块连接进行交互,另一端以共享内存的形式与受控软件实体交互进行受控软件实体的测试调用。
19、如权利要求18所述的计算机,其特征在于,所述受控通信层模块包括接收线程模块及与其匹配的共享内存及第一内存读取线程模块及与其匹配的共享内存,其中,
所述接收线程模块用于接收主控通信层模块发送来的命令,对该消息的类型进行识别后通过与受控软件实体的共享内存进行测试目标调用并控制调用进程;
所述第一内存读取线程模块用于从与其对应的共享内存中读取返回消息,并将该返回消息转发至主控计算机。
20、如权利要求19所述的计算机,其特征在于,所述接收线程模块包括接收消息模块、消息类型识别模块、创建调用进程模块、终止调用进程模块,其中,
消息类型识别模块向受控实体软件模块发送命令消息,并依据命令消息的消息类型通过共享内存的方式实现对受控软件实体测试目标的调用;
当消息类型识别模块发送的消息为起始消息时即调用创建调用进程模块开始一个进程;
当消息类型识别模块发送的消息为终止消息时,即调用终止调用进程模块结束一个进程。
21、如权利要求19所述的计算机,其特征在于,所述第一内存读取线程模块包括内存读取模块和发送命令模块,其中所述内存读取模块用于从共享内存中读取携带功能调用执行结果的返回消息;所述发送命令模块将该返回消息返回至主控通信层模块。
22、如权利要求18所述的计算机,其特征在于,所述受控软件实体模块包括第二内存读取线程模块、功能函数模块及返回消息构造模块,其中,
所述功能函数模块用于提供测试该受控软件实体模块时可调用的功能函数;
所述消息构造模块用于将功能函数模块的调用结果进行构造,构造成返回消息,通过共享内存传回受控通信层模块;
所述第二内存读取线程模块用于通过读取受控通信层模块共享内存的方式接受命令消息,并对该命令进行解析后,调用功能函数模块提供的测试功能函数进而对受控软件实体模块进行测试。
23、如权利要求22所述的计算机,其特征在于,所述第二内存读取线程模块进一步包括读取共享内存数据模块、命令解析模块及命令调用模块,其中,
所述读取共享内存数据模块用于读取命令消息共享内存中的命令消息;
所述命令解析模块用于对该所述命令消息进行解析;
所述命令调用模块依据解析结果调用功能函数模块提供的测试功能函数进而对受控软件实体模块进行测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101328635A CN100367235C (zh) | 2005-12-27 | 2005-12-27 | 一种自动化测试实现方法、装置及其*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101328635A CN100367235C (zh) | 2005-12-27 | 2005-12-27 | 一种自动化测试实现方法、装置及其*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1858719A true CN1858719A (zh) | 2006-11-08 |
CN100367235C CN100367235C (zh) | 2008-02-06 |
Family
ID=37297628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101328635A Expired - Fee Related CN100367235C (zh) | 2005-12-27 | 2005-12-27 | 一种自动化测试实现方法、装置及其*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100367235C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316196B (zh) * | 2007-05-28 | 2010-12-08 | 华为技术有限公司 | 一种对分布式平台上的业务进行仿真测试的实现方法与装置 |
CN101923509A (zh) * | 2009-02-20 | 2010-12-22 | 国际商业机器公司 | 在层级式并行环境中执行分布式运行时诊断的方法和*** |
CN102541728A (zh) * | 2010-12-14 | 2012-07-04 | 北京新媒传信科技有限公司 | 扩展自动化测试工具识别控件的方法 |
CN102819463A (zh) * | 2012-08-17 | 2012-12-12 | 西安远征智能软件有限公司 | 综保装置自动测试*** |
CN102999423A (zh) * | 2012-11-15 | 2013-03-27 | 华为技术有限公司 | 一种多核测试的方法和装置 |
CN103023708A (zh) * | 2011-09-20 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 通信协议接口的测试方法及*** |
CN104679000A (zh) * | 2015-01-09 | 2015-06-03 | 中国科学院合肥物质科学研究院 | 一种移动机器人目标物感知能力室内模拟测试装置及测试方法 |
CN106201860A (zh) * | 2015-05-07 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 应用***的测试方法及装置 |
CN107229567A (zh) * | 2017-06-09 | 2017-10-03 | 山东超越数控电子有限公司 | 一种ipmi固件自动化测试*** |
CN107894762A (zh) * | 2017-11-09 | 2018-04-10 | 重庆鲁班机器人技术研究院有限公司 | 实物仿真测试方法、装置及*** |
CN110059004A (zh) * | 2019-03-21 | 2019-07-26 | 深圳市腾讯信息技术有限公司 | 一种应用测试的方法、装置、设备和介质 |
WO2022143108A1 (zh) * | 2020-12-30 | 2022-07-07 | 华为技术有限公司 | 一种软件调试方法、电子设备及调试*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2297994A1 (en) * | 2000-02-04 | 2001-08-04 | Ibm Canada Limited-Ibm Canada Limitee | Automated testing computer system components |
CN1143215C (zh) * | 2000-05-17 | 2004-03-24 | 英业达股份有限公司 | 两台电脑间的元件测试装置与方法 |
JP2002182949A (ja) * | 2000-12-15 | 2002-06-28 | Mitsubishi Electric Corp | オブジェクト試験装置及びオブジェクト試験方法及びオブジェクト試験プログラムを記録したコンピュータで読み取り可能な記録媒体 |
JP2002259161A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | テストスクリプトの自動生成装置 |
US7174541B2 (en) * | 2002-06-28 | 2007-02-06 | Sap Aktiengesellschaft | Testing of applications |
AU2003291794A1 (en) * | 2003-12-18 | 2005-07-05 | Motorola Inc | A method of automatically generating test scripts from a system specification model |
-
2005
- 2005-12-27 CN CNB2005101328635A patent/CN100367235C/zh not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101316196B (zh) * | 2007-05-28 | 2010-12-08 | 华为技术有限公司 | 一种对分布式平台上的业务进行仿真测试的实现方法与装置 |
CN101923509A (zh) * | 2009-02-20 | 2010-12-22 | 国际商业机器公司 | 在层级式并行环境中执行分布式运行时诊断的方法和*** |
CN101923509B (zh) * | 2009-02-20 | 2013-08-14 | 国际商业机器公司 | 在层级式并行环境中执行分布式运行时诊断的方法和*** |
CN102541728A (zh) * | 2010-12-14 | 2012-07-04 | 北京新媒传信科技有限公司 | 扩展自动化测试工具识别控件的方法 |
CN103023708A (zh) * | 2011-09-20 | 2013-04-03 | 腾讯科技(深圳)有限公司 | 通信协议接口的测试方法及*** |
CN103023708B (zh) * | 2011-09-20 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 通信协议接口的测试方法及*** |
CN102819463B (zh) * | 2012-08-17 | 2015-09-09 | 西安远征智能软件有限公司 | 综保装置自动测试*** |
CN102819463A (zh) * | 2012-08-17 | 2012-12-12 | 西安远征智能软件有限公司 | 综保装置自动测试*** |
CN102999423A (zh) * | 2012-11-15 | 2013-03-27 | 华为技术有限公司 | 一种多核测试的方法和装置 |
CN102999423B (zh) * | 2012-11-15 | 2016-03-02 | 华为技术有限公司 | 一种多核测试的方法和装置 |
CN104679000A (zh) * | 2015-01-09 | 2015-06-03 | 中国科学院合肥物质科学研究院 | 一种移动机器人目标物感知能力室内模拟测试装置及测试方法 |
CN106201860A (zh) * | 2015-05-07 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 应用***的测试方法及装置 |
CN106201860B (zh) * | 2015-05-07 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 应用***的测试方法及装置 |
CN107229567A (zh) * | 2017-06-09 | 2017-10-03 | 山东超越数控电子有限公司 | 一种ipmi固件自动化测试*** |
CN107894762A (zh) * | 2017-11-09 | 2018-04-10 | 重庆鲁班机器人技术研究院有限公司 | 实物仿真测试方法、装置及*** |
CN107894762B (zh) * | 2017-11-09 | 2018-08-28 | 重庆鲁班机器人技术研究院有限公司 | 实物仿真测试*** |
CN110059004A (zh) * | 2019-03-21 | 2019-07-26 | 深圳市腾讯信息技术有限公司 | 一种应用测试的方法、装置、设备和介质 |
WO2022143108A1 (zh) * | 2020-12-30 | 2022-07-07 | 华为技术有限公司 | 一种软件调试方法、电子设备及调试*** |
Also Published As
Publication number | Publication date |
---|---|
CN100367235C (zh) | 2008-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1858719A (zh) | 一种自动化测试实现方法及其*** | |
CN1747472B (zh) | 基于ccp协议的嵌入式通用标定装置及方法 | |
CN1851667A (zh) | 一种图形用户界面的测试方法和*** | |
CN101035039A (zh) | Usb映射方法 | |
CN1791037A (zh) | 一种实现Web服务自动化测试的方法 | |
CN101043384A (zh) | 一种网络测试的***和方法 | |
CN1767453A (zh) | 自动测试方法和*** | |
CN1832433A (zh) | 分布式架构测试***和该测试***的测试方法 | |
CN1750485A (zh) | 网络仿真测试***及方法 | |
CN1279461C (zh) | 基于ccp协议的混合动力电动汽车控制器标定方法 | |
CN1862512A (zh) | 单板信息的读写***与方法 | |
CN101056220A (zh) | 无网管接口的数据业务***的集中监控方法 | |
CN1841340A (zh) | 一种驱动软件的测试方法及测试*** | |
CN210573263U (zh) | 楼宇*** | |
CN1881189A (zh) | 一种电脑接收带摄像头手机输入视频数据的方法及*** | |
CN1794242A (zh) | 一种故障诊断数据采集与发布方法 | |
CN1725188A (zh) | 逻辑验证***及方法 | |
CN103676663A (zh) | 一种风电机组联合仿真***通信接口实现方法 | |
CN1627254A (zh) | 嵌入式***的调试方法及其装置 | |
CN1280754C (zh) | 嵌入式网络化远程输入输出*** | |
CN106550026B (zh) | 一种网络通信装置及方法 | |
CN1583478A (zh) | 汽车无线监测及故障诊断***及方法 | |
WO2012010002A1 (zh) | 一种物联网终端java应用的业务调试装置和方法 | |
CN1573704A (zh) | 用于打印机的错误处理***和方法 | |
CN1889442A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080206 Termination date: 20121227 |