CN1909481A - 一种测试工具及其界面和引擎分离的实现方法 - Google Patents
一种测试工具及其界面和引擎分离的实现方法 Download PDFInfo
- Publication number
- CN1909481A CN1909481A CN 200510036327 CN200510036327A CN1909481A CN 1909481 A CN1909481 A CN 1909481A CN 200510036327 CN200510036327 CN 200510036327 CN 200510036327 A CN200510036327 A CN 200510036327A CN 1909481 A CN1909481 A CN 1909481A
- Authority
- CN
- China
- Prior art keywords
- testing tool
- interface
- module
- engine
- testing
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种测试工具及其界面和引擎分离的实现方法。其包括:一测试工具界面、一测试工具引擎以及对应的配置文件。测试工具中与测试相关的功能模块都是动态加载的,可以方便地根据用户需求定制,不需要再另行开发,缩短了新功能的开发周期。测试功能单元及其运行是由界面程序控制和管理的,而实现这部分功能是采用高级语言方式,比起使用脚本语言方式要灵活许多。测试工具引擎部分是由通用脚本技术来实现的,所以易于对测试***进行扩展和移植。
Description
技术领域
本发明涉及网络通讯设备测试技术,尤其涉及的是,一种用来实现网络通讯设备测试***的方法。
背景技术
网络通讯设备测试采用的工具种类很多,工具的界面基本上类似,但是功能部分有所差异。目前网络通讯设备测试所使用的商用测试工具基本上都是专用工具,有其固定的界面和测试功能,使用者经过培训或学习后才能掌握其使用要领。当一个新的功能需要测试时,商用测试工具生产商又会推出一种新的测试工具,而使用者又要额外花费时间来学习新的软件界面特性。
在网络通讯设备的测试中也经常使用通用测试工具,该类测试工具通过编写脚本可以对测试功能进行扩充。使用者只要掌握了脚本的编写技术,就可以开发自己需要的脚本,并在一定程度上满足不同功能的测试。但是该类脚本和测试工具其他部分紧密结合,所以会受到诸多限制,例如其脚本语法格式往往是某测试软件厂家所独有的,因此不具有良好的移植性和扩展性。
在网络通讯设备测试领域内还流行一种技术就是采用脚本来实现网络通讯设备的自动化测试***,该类方法通常采用Perl、Python等通用脚本语言,将测试过程中用到的关键功能用脚本语言的扩展功能来实现,然后利用脚本语言的分支和循环等语句来实现各个测试案例,多个测试案例的集合组成一个自动化测试套件,然后通过命令行或者简单的GUI方式来运行该自动化测试套件,达到测试的目的。该方法在扩展性方面比上述方法要强,但是脚本语言在实现界面方面比较弱,要做出一个良好的操作界面有较大难度,并且由于脚本本身的一些局限性,如不支持多线程或支持程度比较弱等,采用该方法通过界面实现对脚本的控制和运行不灵活。
因此,现有技术存在缺陷,而有待于改进和发展。高级语言(如C/C++、VB、C#、Delphi等)在开发界面程序方面比较有优势,而利用脚本实现测试功能单元(测试工具测试功能的最小组成单元)比较方便,所以采用测试工具界面和测试引擎相分离的方法,利用高级语言开发通用的界面程序部分,利用脚本来实现工具的测试引擎部分,此方法不仅能缩短测试工具的开发周期,而且也有利于测试工具测试功能的快速扩充。
发明内容
本发明的目的在于提供一种测试工具及其界面和引擎相分离的实现方法。
一种测试工具,其包括:一测试工具界面、一测试工具引擎以及配置文件;
所述测试工具界面包括有:主界面、配置模块、管理模块和内部通讯模块;
所述主界面用于固定显示通用界面部分;
所述配置模块用于根据所述配置文件对动态模块进行动态加载;
所述管理模块用于完成测试功能单元的管理、测试功能单元的运行,以及测试工具软件内部各个模块的管理功能;
所述内部通讯模块用于测试工具内部各个模块和组件间的数据通讯和信息交换的功能。
所述的测试工具,其中,所述测试工具引擎包括:测试引擎模块和测试功能模块;
所述测试引擎模块用于完成测试过程中的关键特性功能,包括测试过程中所需各种资源库的加载功能,控制硬件接口发送和接受测试数据功能,测试数据统计功能;
所述测试功能模块,由多个相关的测试功能单元组成,所述测试功能单元,用于完成测试工具的一个测试功能。
所述的测试工具,其中,所述主界面包括:主显示区域、主菜单、主工具条和状态栏。
所述的测试工具,其中,所述配置模块包括:动态菜单、动态工具条以及动态对话框。
一种测试工具的界面和引擎相分离的实现方法,其包括以下步骤:
a)、采用高级语言实现测试工具界面;
b)、将测试工具引擎关键特性功能的函数接口在脚本语言里扩展成脚本命令形式;
c)、采用脚本语言实现测试功能单元和测试功能模块;
d)、根据用户的需求编写测试工具配置文件;
e)、采用多线程技术和线程间通讯技术等将测试工具界面和测试引擎融为一体。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的测试工具主界面采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的配置模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的管理模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的内部通讯模块采用高级语言实现。
本发明效果如下:测试工具中与测试相关的功能模块都是动态加载的,可以方便地根据用户需求定制,不需要再另行开发,缩短了新功能的开发周期。其次测试功能单元及其运行是由界面程序控制和管理的,而实现这部分功能是采用高级语言方式,比起使用脚本语言方式要灵活许多。最后测试引擎部分是由通用脚本技术来实现的,所以很容易对测试***进行扩展和移植。
附图说明
图1是本发明测试工具及其界面和引擎分离结构示意图;
图2是本发明根据配置文件加载动态菜单等动态模块的流程示意图;
图3是本发明测试工具运行时的通讯示意图。
具体实施方式
以下结合附图,对本发明的较佳实施例进行较为详细的说明。
本发明所述的测试工具及其界面和引擎分离的方法,先使用脚本技术开发测试引擎模块和测试功能模块,然后使用高级语言开发测试工具界面,最后通过模块动态加载技术、多线程技术和线程间通讯技术等将两者融为一体。
本发明所述的测试工具,其包括:一测试工具界面、一测试工具引擎以及配置文件;所述测试工具界面包括有:主界面、配置模块、管理模块和内部通讯模块;所述的测试工具引擎包括:测试引擎模块和测试功能模块。
以下结合附图对本发明所述技术方案的实施作进一步的详细描述:
如图1所示,本发明的测试工具及其界面和引擎分离结构包括两个部分,测试工具界面和测试工具引擎:
首先采用高级语言(以VC为例)实现测试工具界面的主界面,其用于固定显示通用界面部分,主界面包括下列基本元素:
1.主显示区域,显示程序运行过程中产生的日志信息和测试功能单元信息;
2.主菜单,测试工具常用的菜单选项,不随测试功能改变的部分,如文件、编辑、视图和窗口等常用菜单。
3.主工具条,和主菜单的功能相对应,属于测试工具的基本功能组成部分,也不随测试功能改变。
4.状态栏,显示当前程序运行的状态,属于测试工具的基本功能部分,其显示的内容随程序运行的状态改变。
所述的测试工具,其中,所述配置模块包括:动态菜单、动态工具条以及动态对话框。
主界面完成初始化工作后会调用配置模块,根据所述配置文件对动态模块进行动态加载,以完成和测试功能相关的各个模块的加载工作,如图2所示:
步骤1:读取配置文件信息,配置文件里包含了和测试功能相关的信息,如测试功能所需的通过界面操作的接口的属性等,测试工具界面程序可以根据这些信息生成相应的动态菜单项和动态工具条等;
步骤2:当遇到配置文件不存在或者读取失败的情况时,界面程序则进入异常处理分支,提示用户输入配置文件路径和文件名,用户确定后重新加载和测试功能相关的模块,否则退出程序;
步骤3:界面的动态菜单和动态工具条加载成功后便进入测试引擎模块的初始化过程,此过程包含载入测试过程中所需要的一切资源,如果初始化失败则进入异常处理分支,让用户选择测试引擎模块和测试功能模块;
步骤4:测试引擎模块和测试功能模块加载成功后,测试工具界面根据测试功能模块在界面显示区显示测试功能单元名称和测试功能单元描述等信息;
步骤5:当选中一条测试功能单元时并点击测试参数配置菜单或者工具条时,界面程序会自动根据该条测试功能单元的具体信息动态产生相应的配置对话框。
所述管理模块用于完成测试功能单元的管理、测试功能单元的运行,以及测试工具软件内部各个模块的管理功能。
所述内部通讯模块用于完成测试工具内部各个模块和组件间的数据通讯和信息交换的功能。
所述测试引擎模块用于完成测试过程中的关键特性功能,包括测试过程中所需各种资源库的加载功能,控制硬件接口发送和接受测试数据功能,测试数据统计功能。
所述测试功能模块,由多个相关的测试功能单元组成,所述测试功能单元,用于完成测试工具的一个测试功能。
测试工具引擎中的测试引擎模块和测试功能单元是采用通用脚本技术实现,下面以TCL(Tool Command Language)语言为例,大致分为下列三个步骤:
步骤1:将测试引擎模块关键特性功能的接口函数在TCL语言里扩展成命令形式;
步骤2:用TCL语言按照被测功能的测试要求编写测试脚本,完成一个功能点的测试序列,即一个测试功能单元;
步骤3:将多个测试功能单元按照一定的方式组织成测试功能模块,并建立索引。
测试工具在开发过程中采用的是分离技术,但提交给最终用户使用时应该是一个完整的***,所以将界面和引擎部分融合起来的技术也是本发明必不可少的部分,融合的步骤如下:
步骤1:在界面程序中调用Windows函数创建执行子进程,并在执行子进程中调用TCL解释器程序执行测试脚本;
步骤2:在界面程序中调用Windows函数创建多个线程,通过Windows管道通讯完成执行子进程和界面显示区域间的信息交互;
步骤3:采用Windows消息通讯机制将各个执行子进程的运行状态信息传递给主界面处理。
测试工具运行过程中的内部通讯示意图如图3所示,通过主界面的显示区域控制内部通讯模块,以运行测试功能模块中的测试功能单元;测试功能单元所运行的结果通过内部通讯模块反馈在主界面的显示区域。
一种测试工具的界面和引擎相分离的实现方法,其包括以下步骤:
a)、采用高级语言实现测试工具界面;
b)、将测试工具引擎关键特性功能的函数接口在脚本语言里扩展成脚本命令形式;
c)、采用脚本语言实现测试功能单元和测试功能模块;
d)、根据用户的需求编写测试工具配置文件;
e)、采用多线程技术和线程间通讯技术等将测试工具界面和测试引擎融为一体。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的测试工具主界面采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的配置模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的管理模块采用高级语言实现。
所述的测试工具的界面和引擎相分离的实现方法,其中,所述测试工具界面的内部通讯模块采用高级语言实现。
在实际测试过程当中,测试工具的硬件接口要通过网线、光纤或者电话线等方式和被测的网络通讯设备建立物理连接,然后运行本发明描述的测试工具,执行相关的测试功能完成对应的测试任务。
以上所述仅为本发明的较佳实施例,并非用来限定本发明,任何熟悉本技术及其领域的人,在不脱离本发明的精神和范畴内,可能作出各种修改或变更,因此本发明的保护范围应以权利要求书所要求保护的范围为准。
Claims (9)
1、一种测试工具,其特征在于,包括:一测试工具界面、一测试工具引擎以及配置文件;
所述测试工具界面包括有:主界面、配置模块、管理模块和内部通讯模块;
所述主界面用于固定显示通用界面部分;
所述配置模块用于根据所述配置文件对动态模块进行动态加载;
所述管理模块用于完成测试功能单元的管理、测试功能单元的运行,以及测试工具软件内部各个模块的管理功能;
所述内部通讯模块用于测试工具内部各个模块和组件间的数据通讯和信息交换的功能。
2、根据权利要求1所述的测试工具,其特征在于,所述测试工具引擎包括:测试引擎模块和测试功能模块;
所述测试引擎模块用于完成测试过程中的关键特性功能,包括测试过程中所需各种资源库的加载功能,控制硬件接口发送和接受测试数据功能,测试数据统计功能;
所述测试功能模块,由多个相关的测试功能单元组成,所述测试功能单元,用于完成测试工具的一个测试功能。
3、根据权利要求1所述的测试工具,其特征在于,所述主界面包括:主显示区域、主菜单、主工具条和状态栏。
4、根据权利要求1所述的测试工具,其特征在于,所述配置模块包括:动态菜单、动态工具条以及动态对话框。
5、一种测试工具的界面和引擎相分离的实现方法,其包括以下步骤:
a)、采用高级语言实现测试工具界面;
b)、将测试工具引擎关键特性功能的函数接口在脚本语言里扩展成脚本命令形式;
c)、采用脚本语言实现测试功能单元和测试功能模块;
d)、根据用户的需求编写测试工具配置文件;
e)、采用多线程技术和线程间通讯技术等将测试工具界面和测试引擎融为一体。
6、根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的测试工具主界面采用高级语言实现。
7、根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的配置模块采用高级语言实现。
8、根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的管理模块采用高级语言实现。
9、根据权利要求5所述的测试工具的界面和引擎相分离的实现方法,其特征在于,所述测试工具界面的内部通讯模块采用高级语言实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510036327 CN1909481A (zh) | 2005-08-05 | 2005-08-05 | 一种测试工具及其界面和引擎分离的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200510036327 CN1909481A (zh) | 2005-08-05 | 2005-08-05 | 一种测试工具及其界面和引擎分离的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1909481A true CN1909481A (zh) | 2007-02-07 |
Family
ID=37700476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200510036327 Pending CN1909481A (zh) | 2005-08-05 | 2005-08-05 | 一种测试工具及其界面和引擎分离的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1909481A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833465A (zh) * | 2010-04-23 | 2010-09-15 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式*** |
CN101398778B (zh) * | 2007-09-29 | 2011-09-21 | 中兴通讯股份有限公司 | 自动化集成测试方法 |
CN111104154A (zh) * | 2018-10-25 | 2020-05-05 | 长沙博为软件技术股份有限公司 | 一种基于数据处理服务实现大数据采集***脚本功能扩展和定制的方法 |
CN112069007A (zh) * | 2020-08-31 | 2020-12-11 | 武汉市豪迈电力自动化技术有限责任公司 | 一种基于qml的手持式通用测试***的实现方法及装置 |
-
2005
- 2005-08-05 CN CN 200510036327 patent/CN1909481A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398778B (zh) * | 2007-09-29 | 2011-09-21 | 中兴通讯股份有限公司 | 自动化集成测试方法 |
CN101833465A (zh) * | 2010-04-23 | 2010-09-15 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式*** |
CN101833465B (zh) * | 2010-04-23 | 2013-03-13 | 中国科学院声学研究所 | 一种支持应用程序动态加载运行的嵌入式*** |
CN111104154A (zh) * | 2018-10-25 | 2020-05-05 | 长沙博为软件技术股份有限公司 | 一种基于数据处理服务实现大数据采集***脚本功能扩展和定制的方法 |
CN112069007A (zh) * | 2020-08-31 | 2020-12-11 | 武汉市豪迈电力自动化技术有限责任公司 | 一种基于qml的手持式通用测试***的实现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1304941C (zh) | 用于自主硬件辅助的线程栈跟踪的装置与方法 | |
CN1955945A (zh) | 为软件测试过程自动生成测试执行序列的方法和装置 | |
CN101221530B (zh) | 一种测试用例自动导入方法 | |
CN1877544A (zh) | 关键字驱动的自动化测试***及方法 | |
CN1254879A (zh) | 往返式软件设计的方法与装置 | |
CN101266570B (zh) | 软件***的测试方法及装置 | |
CN1702653A (zh) | 查询到任务的映射 | |
CN1877543A (zh) | 数据驱动的自动化测试***及方法 | |
CN1851665A (zh) | 一种利用测试套完成产品自动化测试的方法 | |
CN102880546A (zh) | 一种基于xml数据库的软件集成测试方法及*** | |
CN1755645A (zh) | 选择用于复验自动化的测试实例执行行为的***和方法 | |
CN1909481A (zh) | 一种测试工具及其界面和引擎分离的实现方法 | |
CN112148788A (zh) | 异构数据源的数据同步方法及*** | |
CN101951529A (zh) | 一种机顶盒功能测试方法及*** | |
CN1641601A (zh) | 一种软件的单元测试方法 | |
CN102446167B (zh) | 一种基于逻辑模板对复杂字符串逻辑处理的方法和装置 | |
CN107092559A (zh) | 基于Jmeter的测试平台中间件、测试***及方法 | |
CN106055325A (zh) | 一种支撑多***同时运行的服务构建方法 | |
CN1879027A (zh) | 测试装置及测试方法 | |
CN100346315C (zh) | 基于脚本的三维建模软件自动测试方法 | |
CN112632893B (zh) | 图形筛选方法及装置、服务器和存储介质 | |
CN1912848A (zh) | 一种对编译器中的错误进行自动定位的方法 | |
CN1788534A (zh) | 元件安装顺序优化方法,元件安装装置,执行元件安装顺序优化方法的程序,和记录程序的记录介质 | |
CN1945527A (zh) | 可实现代码复用的server版代码生成*** | |
CN1582088A (zh) | 检查比较电路原理图和pcb布线图一致性的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |