CN108833005B - 光网络通信设备及其组网业务的自动化测试工具包及方法 - Google Patents
光网络通信设备及其组网业务的自动化测试工具包及方法 Download PDFInfo
- Publication number
- CN108833005B CN108833005B CN201810354952.1A CN201810354952A CN108833005B CN 108833005 B CN108833005 B CN 108833005B CN 201810354952 A CN201810354952 A CN 201810354952A CN 108833005 B CN108833005 B CN 108833005B
- Authority
- CN
- China
- Prior art keywords
- test
- module
- dut
- sut
- function
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/07—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems
- H04B10/075—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems using an in-service signal
- H04B10/079—Arrangements for monitoring or testing transmission systems; Arrangements for fault measurement of transmission systems using an in-service signal using measurements of the data signal
- H04B10/0793—Network aspects, e.g. central monitoring of transmission parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Electromagnetism (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种光网络通信设备及其组网业务的自动化测试工具包及方法,涉及光通信领域。该工具包包括被测对象交互模块、原子功能库测试模块、测试界面提供模块,被测对象交互模块用于:封装与被测设备DUT/被测系统SUT交互的基础功能,实现运行库的形态,供上层调用;原子功能库测试模块用于:实现测试所需的原子化功能,以脚本语言库形态供测试用例调用;测试界面提供模块用于:提供与脚本语言不同的用例表述及灵活调用的测试界面。本发明支持面向设备组网及业务功能的测试需求,能提高测试效率。
Description
技术领域
本发明涉及光通信领域,具体是涉及一种光网络通信设备及其组网业务的自动化测试工具包及方法。
背景技术
光通信设备(Fiber optic communication equipment)是构成骨干网及汇聚网的基础设施,具有复杂的层次结构与丰富的业务功能,因此测试工作量与复杂度也较大,其中包括对设备本身功能的测试,以及对设备节点构建成网络所支撑的业务功能的测试,加大自动化测试的比重可以更有效地检验产品的可用性与适应性,对有效解决应用问题起到引导作用。
下面简单介绍一些测试相关的专业术语:
工具包与方法包括设备、网络及业务模型,基础测试功能或原子功能工具库。
测试界面是指统一的描述式命令行,支持脚本编制来实现自动化测试,弱化编程语言的分支迭代逻辑。
测试适用范围或覆盖面是指:对单个DUT(Device Under Test,被测设备)测试其功能,以及对DUT及仪表组网,除测试DUT组网业务功能外,还由于借助了网管功能与模型,因此还测试了网管相关功能。
测试所需功能分析是指:除了测试需求的功能外,都要包含与DUT/SUT(SystemUnder Test,被测系统)交互的功能,如按其参数发GET/SET命令,得到结果后进行过滤与判决,这就是开发原子功能工具库的内容,原子功能的参数是由DUT/SUT模型包装的对象属性,这样,上述功能与模型属于面向对象的设计方法,而作为工具包来解决与DUT/SUT交互问题,可让测试人员专注于测试业务。
以Windows系统下的测试业务为例:
Windows操作系统是微软公司提供的视窗操作系统,作为测试与网管运行的基础环境。
TCL:Tool Command Language,一种自动化测试常用的脚本语言。
Expect是一个基于TCL开发出的语言包,一种自动化测试常规的方法。
Telnet、Plink是远程终端连接与操作工具,分别适用于Telnet(远程终端协议)、SSH(Secure Shell,安全外壳协议)协议。
API(Application Program Interface,应用程序接口)由接口函数(function)及其一组参数构成。
CLI(Command Line Interface,命令行接口),TCLI(Test Command LineInterface,测试命令行接口)由命令名与一系列跟随的参数构成。
现有的自动化测试工具与方法一般针对单个被测设备DUT,未曾以统一的工具及方法对设备组网及业务构成的被测系统SUT进行自动化测试。
现有的测试方法一般采用TCL之类的脚本语言实现技术,依赖于Expect/TCL捕获屏幕回显,在Windows操作系统还需要连接DUT的第三方Telnet、Plink之类的应用程序工具,测试用例通常也采用TCL之类的脚本语言实现。
现有方案采用纯脚本语言实现,依赖第三方应用程序如telnet.exe/plink.exe等,使得测试每个DUT需创建独立进程,完成这一测试后需杀死该进程,在此称之为一个测试动作,由于测试用例一般会包含大量动作,除执行时间较长外,极易出现windows操作系统进程僵死残留而无法正常执行更多测试动作,导致自动化阻塞,另外还存在调用的第三方应用程序如telnet.exe/plink.exe对不同版本windows的兼容性问题,例如window2012操作系统因expect不能正常捕获回显,无法开展测试活动。因此,脚本语言实现的DUT测试功能库仍存在低效与并发支持能力弱的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种光网络通信设备及其组网业务的自动化测试工具包及方法,支持面向设备组网及业务功能的测试需求,能够提高测试效率。
本发明提供一种光网络通信设备及其组网业务的自动化测试工具包,包括被测对象交互模块、原子功能库测试模块、测试界面提供模块,其中:
被测对象交互模块用于:封装与被测设备DUT/被测系统SUT交互的基础功能,实现运行库的形态,供上层调用;
原子功能库测试模块用于:实现测试所需的原子化功能,以脚本语言库形态供测试用例调用;
测试界面提供模块用于:提供与脚本语言不同的用例表述及灵活调用的测试界面。
在上述技术方案的基础上,所述被测对象交互模块通过高级程序设计语言实现封装DUT交互功能,提供DUT功能接口,利用网管运行环境扩展,提供SUT功能接口。
在上述技术方案的基础上,所述被测对象交互模块封装与DUT/SUT交互的基础功能,包括处理DUT的过程,以及通过网管运行环境处理SUT的过程,具体包括以下步骤:
与DUT/SUT连接,建立交互会话;
基于交互会话的命令发送、回应结果收集,其中涉及回应结果结束标记、对回应结果的等待时间,利用被测对象的模型化方式,选择DUT/SUT不同的交互功能集合;取得回应结果,用于测试判决;
释放连接及相关交互会话。
在上述技术方案的基础上,所述原子功能库测试模块由脚本语言实现,支持脚本程序或测试命令行接口脚本,统一提供对DUT及SUT的原子化测试功能接口。
在上述技术方案的基础上,所述原子功能库测试模块以被测对象交互模块为基础,按被测对象统一模型来封装测试所需的原子化功能库,具体步骤如下:
提供测试所需原子化功能,编写测试用例时直接调用;
利用标配的网管运行环境,提供一致的测试设备组网业务的SUT原子化功能;
增加对TCLI的格式解释功能,使基于测试界面模块的测试用例脚本驱动运行,简化测试用例的表达方式。
在上述技术方案的基础上,所述测试界面提供模块将应用程序接口API调用转化成测试命令行接口TCLI格式的命令行方式调用,通过纯文本编制脚本,批量调用测试所需的基本功能,来实现测试用例。
在上述技术方案的基础上,所述测试界面提供模块提供与脚本语言不同的用例表述及灵活调用的测试界面,面向测试需求自定义TCLI,描述测试需求与步骤,用脚本方式编写实现测试用例,屏蔽被测对象对测试逻辑的影响;支持在被测对象交互模块、原子功能库测试模块中对TCLI进行解析执行;支持命令行上下文无关模式,还支持上下文相关机制,以此适应网管支持SUT的应用程序接口的复杂情况。
在上述技术方案的基础上,所述被测对象交互模块及原子功能库测试模块基于统一的DUT/SUT模型,以设备结构为基本单元,兼容网管的网络拓扑及业务模块,通过包装屏蔽被测对象差异的细节,实现测试功能可扩展、调用方式的一致性。
本发明还提供一种基于上述自动化测试工具包的光网络通信设备及其组网业务的自动化测试方法,包括以下步骤:
S1、测试环境初始化,加载被测设备DUT/被测系统SUT模型数据;
S2、调用原子功能库测试模块的原子化功能,脚本语言实现的测试用例在原子功能库测试模块提供的运行环境下完成测试,编程调用应用程序接口API,其参数通过DUT/SUT模型实例化数据来装载;
S3、测试界面提供模块在被测对象交互模块或原子功能库测试模块上增加对测试命令行接口TCLI的解释与驱动执行的功能,通过TCLI编制的脚本代替程序调用API的方式,方便对DUT功能接口和SUT功能接口的调用,或者对原子功能库测试模块提供的测试所需原子功能接口的调用,TCLI实现的测试用例完成测试,TCLI命令行参数通过DUT/SUT模型实例化数据转化成字符串表达;
S4、释放测试环境数据资源,解除与DUT/SUT的连接。
在上述技术方案的基础上,步骤S1中还包括以下步骤:
对于DUT测试,原子功能库测试模块调用被测对象交互模块提供的DUT功能接口,实现DUT测试原子化功能API,并屏蔽DUT处理细节;
对于网络及其组网业务SUT测试,连接网管运行环境,原子功能库测试模块调用被测对象交互模块提供的SUT功能接口,实现SUT测试原子化功能API。
与现有技术相比,本发明的优点如下:
(1)本发明中的自动化测试工具包包括被测对象交互模块、原子功能库测试模块、测试界面提供模块,被测对象交互模块封装与被测设备DUT/被测系统SUT交互的基础功能,实现运行库的形态,供上层调用;原子功能库测试模块实现测试所需的原子化功能,以脚本语言库形态供测试用例调用;测试界面提供模块提供与脚本语言不同的用例表述及灵活调用的测试界面。TCLI仅为文字描述方式表达测试什么,列举基本步骤,不与代码逻辑打交道,脚本语言需要编程实现测试用例,前者直接表达测试需求,面向测试拓扑模型按标识指明DUT/SUT,由此驱动其下的测试支撑层实现测试用例,而被测对象细节变更可由该层来处理以保持用例不变,从而保障测试工作(核心业务活动)顺利开展。本发明按测试需求封装光通信设备及网管接口,按被测对象模型与功能组件初始化测试运行环境,可用描述式命令行脚本来替代原有TCL编程的测试用例,在光通信设备标配的网管环境中,支持面向设备组网及业务功能的测试需求,灵活机动地应对测试需求的变化。
(2)测试员采用描述式命令脚本,可专注于测试逻辑,减少了因脚本语言编程及与被测对象细节耦合而陷入测试用例编写、调试及维护的困扰,能够提高测试效率。
(3)本发明采用高级程序设计语言(如C++/JAVA)开发的基础通道模块,保障了DUT测试的稳定高效。采用高级语言可加快执行基本测试动作的时间,测试动作中与DUT连接到断开过程无需创建进程,代之以轻量化线程,在单个进程中可对多DUT进行大量测试动作(包括并发),且无需按固定延时死等命令回显结果,代之以结果返回事件驱动的高效异步机制,从对两个DUT执行6个测试动作(包括2个批量配置、2个预期结果查询判决及2个删除相应配置)的最简单用例测试比对结果看,原有纯脚本语言实现方案需100多秒,改进方案仅需不到50秒。从支持并发上看,多进程并发效率较低,流程中的同步不易控制,而改进后的线程可借助高级语言特性灵活控制,可解决大量测试动作(部分并发)导致进程僵死残留问题。
(4)本发明采用脚本语言开发上层通用测试支持程序,具有灵活性与易扩展性。
(5)本发明支持面向测试的描述式命令行界面,能够降低测试用例的编写难度,比脚本语言编程实现方式更贴近测试需求,可根据情况灵活替换已有测试用例中的DUT交互功能,实现平滑升级。
附图说明
图1是本发明实施例中光网络通信设备及其组网业务的自动化测试工具包的示意图。
图2是本发明实施例中光网络通信设备及其组网业务的自动化测试工具方法的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
实施例1
本发明实施例1提供一种光网络通信设备及其组网业务的自动化测试工具包,包括被测对象交互模块、原子功能库测试模块、测试界面提供模块,其中:
被测对象交互模块用于:实现与DUT/SUT交互的基础功能,实现运行库的形态,供上层调用;
原子功能库测试模块用于:实现测试所需的原子化功能,以脚本语言库形态供测试用例调用;
测试界面提供模块用于:提供与脚本语言不同的用例表述及灵活调用的测试界面。
参见图1所示,被测对象交互模块(对应图1中的p01:测试工具包,通过C++实现)封装DUT交互功能,提供DUT功能接口f01,利用网管运行环境nm扩展,提供SUT功能接口f02。
原子功能库测试模块(对应图1中的p02:测试运行环境tcl,由脚本语言实现,支持脚本程序或TCLI脚本)统一提供对DUT及SUT的原子化测试功能接口。
原子化测试功能接口属于应用程序接口API方式,但仅仅这样就需要采用相应编程方式来调用,不适合于普通测试人员,因此引入一种TCLI机制:
测试界面提供模块(对应图1中的TCLI:描述式测试命令行)将API调用转化成TCLI格式的命令行方式调用,通过纯文本编制脚本,即可批量调用测试所需的基本功能,来实现测试用例ts。
被测对象交互模块及原子功能库测试模块基于统一的DUT/SUT模型model,以设备结构为基本单元,兼容网管的网络拓扑及业务模块(Topo/biz模型),通过包装屏蔽被测对象差异的细节,实现测试功能可扩展,调用方式的一致性。
参见图1所示,按图1中的标号来描述各个方框之间的关系:
01:测试工具包p01:被测对象交互模块采用C++开发,测试DUT需调用DUT功能接口f01实现信息交互,注:测试所用的仪表及光开关基础功能接口类似于DUT(可视为特殊DUT)。
02:测试运行环境p02:原子功能库测试模块采用TCL之类脚本语言开发,通过p01扩展内部命令,分别实现高层与底层功能,兼具灵活性与稳定性。
03:描述式测试命令行TCLI:测试界面提供模块可由p02解释,调用p02原子功能执行,支持TCLI形式的测试用例;也可由p01解释,方便p02以命令行方式调用p01功能接口API,从而使SUT相关的复杂功能可精简成有限的TCLI命令来表达。
11:网管运行环境nm提供测试所需SUT功能接口f02,当测试组网及业务功能时由p01连接并调用。
12:DUT、组网及业务测试数据按统一模型model实例化装载,其中网络拓扑/业务依赖于网管运行环境nm。
13:测试用例脚本ts使用统一模型model描述测试数据。
21:网管运行环境nm可由测试工具包p01来连接,装载所需的基础测试功能,用于测试组网/业务SUT。
22:统一模型结构由p02解析来加载测试数据,其对象属性与TCLI参数对应,使数据与功能形成命令在f01上执行。
23:测试用例脚本ts由一到多条测试命令行TCLI组成。
实施例2
在实施例1的基础上,被测对象交互模块封装与DUT/SUT交互的基础功能,包括处理DUT的过程,以及通过网管运行环境处理SUT的过程,具体包括以下步骤:
与被测对象(DUT/SUT)连接,需要被测对象的ip地址、连接端口,以及用户名与密码等基本参数,并且连接完成的等待时间与对象相关,正常情况下建立交互会话;
基于交互会话的命令发送、回应结果收集,其中涉及回应结果结束标记、对回应结果的等待时间等具体参数,要利用被测对象的模型化方式,选择DUT/SUT不同的交互功能集合;取得回应结果,可用于测试判决,一般记录为日志;
释放连接及相关交互会话。
上述步骤采用C++语言实现,封装性好、效率高,相对于脚本语言expect方式,它可在屏幕显示前得到连接是否成功及回应结果到达的消息,因而相关等待时间可在内部处理,调用时只需设置一次等待时间或直接用默认参数,不需要外部调用时每步都显式表述;同时也替代了expect方式的第三方telnet、plink等应用程序,避免其因windows版本差异出现功能不一致问题,也解决该方式局限于进程级并发的相关问题,代之以内部线程级多会话并发的高效模式。
实施例3
在实施例1的基础上,原子功能库测试模块以被测对象交互模块为基础,按被测对象统一模型来封装测试所需的原子化功能库,具体步骤如下:
提供测试所需原子化功能,编写测试用例时可直接调用,使之不因多种DUT及仪表的差异而造成用例碎片化,仅与测试业务逻辑相关;
利用标配的网管运行环境,提供一致的测试设备组网业务的SUT原子化功能,可扩展对网络及业务测试,而测试用例仍不陷于被测对象的细节而专注于测试业务;
增加对TCLI的格式解释功能,使基于测试界面模块的测试用例脚本驱动运行,简化测试用例的表达方式。
原子功能库测试模块采用脚本语言(TCL、PYTHON)构建,直接调用被测对象交互模块的库,既可发挥被测对象交互模块的高效特点,又利用了脚本语言易于编程与扩展的机制,且兼容于现有测试用例,替换其底层与被测对象相关的方法,即可加载运行,而因为减少了DUT/SUT相关细节及各步骤命令下发后的等待环节,可使测试相关逻辑突显出来,减少由此带来的冗余情况。
被测对象以DUT为基本单位,其结构与测试仪表都可视为设备包括的板卡及端口形态:一般都由多个可拔插板卡构成,板卡是不同功能的承载实体,以管理及业务端口对外提供支持,而简单的设备或仪表无可拔插板卡,直接提供管理与业务端口;SUT包括网络拓扑及业务子网,由多个设备连接构成,并提供贯穿整个网络的业务通道(这也是光通信传输网与接入及数据通信网不同之处)。网管的设备管理、拓扑管理、业务管理模块已有可借用的模型概念与实体,按一致的方法构建DUT及测试仪表的统一模型,就可形成完整的建模方案,支持被测对象交互模块、原子功能库测试模块的可扩展;即SUT模型可利用网管现有的,包括网络拓扑及业务子网模型,并使DUT与网管包含的设备节点模型一致。
实施例4
在实施例1的基础上,测试界面提供模块提供与脚本语言不同的用例表述及灵活调用的测试界面,其特征如下:
(1)面向测试需求自定义测试命令行接口TCLI,用来更为清晰地描述测试需求与步骤,避开脚本语言编程难度,可用脚本方式编写实现测试用例,最大限度屏蔽被测对象对测试逻辑的影响;
(2)支持在被测对象交互模块、原子功能库测试模块中对TCLI进行解析执行,方便嵌入多层次上的模块实现灵活配置,调用方式最为直观:可以命令行转换编程语言API方式,编制脚本代替程序运行测试用例;
(3)支持一般命令行上下文无关模式,还支持上下文相关机制,即包含会话或消息监听,以及多层次定位正文,以此适应网管支持SUT的应用程序接口的复杂情况:API处理粒度可能过大,不适于用一个TCLI命令表述,而是在一个会话正文下由多个命令组合来调用,另一种情况是业务模型数据块层次结构复杂,相关API参数过多,一个TCLI命令表述不适宜,需要进入某层进行局部参数处理来保持语义清晰(冗余参数保存在正文),这就要能保持进入主要层次的会话状态。
实施例5
在实施例1的基础上,参见图2所示,本发明实施例5提供一种基于自动化测试工具包的光网络通信设备及其组网业务的自动化测试方法,包括以下步骤:
S1、测试环境初始化,加载DUT/SUT模型model数据;
S2、调用原子功能库测试模块的原子化功能,脚本语言实现的测试用例在原子功能库测试模块提供的运行环境下完成测试,这是一种编程调用API的方式,其参数通过DUT/SUT模型model实例化数据来装载;
S3、测试界面提供模块在被测对象交互模块或原子功能库测试模块上增加对TCLI的解释与驱动执行的功能,通过TCLI编制的脚本代替程序调用API的方式,方便对f01和f02的调用,或者对原子功能库测试模块p02提供的测试所需原子功能接口的调用,TCLI实现的测试用例由此完成测试,与编程调用API的方式类似,TCLI命令行参数通过DUT/SUT模型model实例化数据转化成字符串表达;
S4、释放测试环境数据资源,解除与DUT/SUT的连接。
仅用脚本语言实现被测对象交互模块存在低效与稳定性问题,特别是并发测试多个DUT的情况下,很可能导致计算机处理器及内存开销过大,依赖的外部工具(Telnet、Plink)局限于多进程并发模式,Windows操作系统还需要处理兼容性问题,因此本发明实施例采用C++或JAVA开发被测对象交互模块,保证被测对象交互通道稳定高效:发DUT命令后,直接从socket获取响应结果,而无需屏幕捕获,多线程代替多进程并发方式;对DUT/SUT测试采用统一接口,简化测试用例的实现,并通过统一建模,降低与多种被测对象相关的基础测试功能的耦合度,使测试人员专注于测试业务逻辑。
实施例6
在实施例5的基础上,步骤S1中还包括以下步骤:
对于DUT测试,原子功能库测试模块调用被测对象交互模块提供的DUT功能接口,实现DUT测试原子化功能API,并屏蔽DUT处理细节;
对于网络及其组网业务SUT测试,连接网管运行环境,原子功能库测试模块调用被测对象交互模块提供的SUT功能接口,实现SUT测试原子化功能API。
将光通信设备作为被测对象:DUT/SUT,DUT代表单一的被测设备,SUT代表组网/业务被测系统,利用网络管理系统扩展测试设备组网的业务功能,利用设备及网络管理系统(以下简称网管)提供的功能接口,开发测试所需的功能接口工具,实现与被测对象(DUT/SUT)交互,来支持测试,在此基础功能集上编制测试用例,来实现自动化测试。
封装与被测对象交互的测试功能基础通道,支持在命令行上运行描述性脚本,实现自动化测试用例,采用统一建模方式支持单个设备、仪表、设备组网及其业务功能测试,其中组网业务功能测试需利用网管接口与运行环境。
利用C++开发动态库嵌入脚本语言(如TCL与python),在其上扩展专用于测试的命令,来优化测试开发与运行环境,并在此基础上支持一种面向测试的描述式命令行界面。
注:用C++开发与被测对象交互的工具包,也是网管开发设备管理功能的常规方式,因此该工具方法与网管在技术上有同质性,这也是它可借助网管运行环境的基本原因。
将测试所需功能划分成两个层次:一是与DUT/SUT相关的功能集,一是与测试需求相关的功能,前者与被测对象特性与功能耦合度较高,后者则偏重于常规的测试功能,与DUT/SUT具体特性解耦。
本发明实施例中的自动化测试方法需要适用于设备及组网业务测试领域,因此被测对象交互模块与原子功能库测试模块是可扩展的:除基础的DUT封装方法外,还可借助网管运行环境实现对网络及业务(SUT)的测试。这些模块都要利用DUT/SUT统一建模机制,通过对被测对象进行模型化设计与编码,来保障可扩展的特性。
原子功能库测试模块除支持用脚本语言(如TCL或PYTHON)封装原子功能,还提供一种描述性的命令行封装方式:测试命令行,测试命令行使测试用例脱离分支与循环的逻辑性脚本,使测试人员得以更直观地表达需求,测试命令行与特定语言无关,由它表达的测试用例可在不同语言环境上解释运行。采用一种自定义命令行接口的方式,来灵活适应多种复杂的测试环境。
综上所述,以面向对象的方法开发测试工具包p01,对应被测对象交互模块,采用C++/JAVA实现,并嵌入脚本语言扩展其命令。再用脚本语言实现测试所需的高级功能,如描述式命令行解析模块、测试所用的设备、网络及业务模型管理,及测试结果过滤与判决功能等形成测试运行环境p02,对应原子功能库测试模块,保证测试基础架构的易维护、可扩展。设计实现描述式命令行TCLI,对应测试界面提供模块,它由命令及参数列表组成,命令代表与被测对象DUT/SUT交互的原子功能,参数表指示模型的对象属性及条件,除了与DUT/SUT交互的命令,还有DUT/SUT命令结果的处理命令,主要是逻辑与算术比对算法的表达式。上述命令组成脚本可用于描述自动化测试流程,在脚本语言开发的运行环境下p02,该描述式命令行脚本就可驱动测试用例ts执行。
TCLI灵活的运行方式表现在:除了可在p01中解释执行外,还可在tcl或python之类的脚本语言程序中嵌入解释执行(即在p02或更上层的脚本语言编写的测试环境中运行),这可用来方便优化现有的脚本语言测试用例,替代其原有与DUT/SUT交互的成分(以往这一部分与测试逻辑的耦合度较高)。
脚本语言开发的用例解析程序,需在初始化时加载测试场景的DUT/SUT模型数据,该模型model由XML(Extensible Markup Language,可扩展标记语言)表达,由脚本语言解析XML实现场景初始化,再来驱动自动化用例脚本(图1中的测试用例脚本ts)运行。由于场景模型XML及命令行TCLI解析的通用性,测试用例所需数据及功能可由外部文件加载而不在程序逻辑中,由此保证了脚本语言开发的测试解析与驱动程序的通用性,使测试人员专注于数据与功能描述,无需在编程上耗费精力;而DUT/SUT底层的版本变化也不会直接波及测试用例及其业务逻辑,减轻与底层的耦合度。
对于SUT为网络与业务的情况,需借助图1中网管运行环境nm,包括其功能接口及设备、网络拓扑及业务模型,与测试单一DUT的方式与流程类似。注意光网络设备网管是标配的。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。
Claims (10)
1.一种光网络通信设备及其组网业务的自动化测试工具包,其特征在于:包括被测对象交互模块、原子功能库测试模块、测试界面提供模块,其中:
被测对象交互模块用于:封装与被测设备DUT/被测系统SUT交互的基础功能,实现运行库的形态,供上层调用;
原子功能库测试模块用于:实现测试所需的原子化功能,以脚本语言库形态供测试用例调用;
测试界面提供模块用于:提供与脚本语言不同的用例表述及灵活调用的测试界面,将API调用转化成TCLI格式的命令行方式调用;面向测试需求自定义TCLI,屏蔽被测对象对测试逻辑的影响;支持在被测对象交互模块、原子功能库测试模块中对TCLI进行解析执行、命令行上下文无关模式和上下文相关机制。
2.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述被测对象交互模块通过高级程序设计语言实现封装DUT交互功能,提供DUT功能接口,利用网管运行环境扩展,提供SUT功能接口。
3.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述被测对象交互模块封装与DUT/SUT交互的基础功能,包括处理DUT的过程,以及通过网管运行环境处理SUT的过程,具体包括以下步骤:
与DUT/SUT连接,建立交互会话;
基于交互会话的命令发送、回应结果收集,其中涉及回应结果结束标记、对回应结果的等待时间,利用被测对象的模型化方式,选择DUT/SUT不同的交互功能集合;取得回应结果,用于测试判决;
释放连接及相关交互会话。
4.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述原子功能库测试模块由脚本语言实现,支持脚本程序或测试命令行接口脚本,统一提供对DUT及SUT的原子化测试功能接口。
5.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述原子功能库测试模块以被测对象交互模块为基础,按被测对象统一模型来封装测试所需的原子化功能库,具体步骤如下:
提供测试所需原子化功能,编写测试用例时直接调用;
利用标配的网管运行环境,提供一致的测试设备组网业务的SUT原子化功能;
增加对TCLI的格式解释功能,使基于测试界面模块的测试用例脚本驱动运行,简化测试用例的表达方式。
6.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述测试界面提供模块通过纯文本编制脚本,批量调用测试所需的基本功能,来实现测试用例。
7.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述测试界面提供模块提供与脚本语言不同的用例表述及灵活调用的测试界面,面向测试需求自定义TCLI,描述测试需求与步骤,用脚本方式编写实现测试用例,屏蔽被测对象对测试逻辑的影响。
8.如权利要求1所述的光网络通信设备及其组网业务的自动化测试工具包,其特征在于:所述被测对象交互模块及原子功能库测试模块基于统一的DUT/SUT模型,以设备结构为基本单元,兼容网管的网络拓扑及业务模块,通过包装屏蔽被测对象差异的细节,实现测试功能可扩展、调用方式的一致性。
9.一种基于权利要求1所述自动化测试工具包的光网络通信设备及其组网业务的自动化测试方法,其特征在于,包括以下步骤:
S1、测试环境初始化,加载被测设备DUT/被测系统SUT模型数据;
S2、调用原子功能库测试模块的原子化功能,脚本语言实现的测试用例在原子功能库测试模块提供的运行环境下完成测试,编程调用应用程序接口API,其参数通过DUT/SUT模型实例化数据来装载;
S3、测试界面提供模块在被测对象交互模块或原子功能库测试模块上增加对测试命令行接口TCLI的解释与驱动执行的功能,通过TCLI编制的脚本代替程序调用API的方式,方便对DUT功能接口和SUT功能接口的调用,或者对原子功能库测试模块提供的测试所需原子功能接口的调用,TCLI实现的测试用例完成测试,TCLI命令行参数通过DUT/SUT模型实例化数据转化成字符串表达;
S4、释放测试环境数据资源,解除与DUT/SUT的连接。
10.如权利要求9所述的光网络通信设备及其组网业务的自动化测试方法,其特征在于:步骤S1中还包括以下步骤:
对于DUT测试,原子功能库测试模块调用被测对象交互模块提供的DUT功能接口,实现DUT测试原子化功能API,并屏蔽DUT处理细节;
对于网络及其组网业务SUT测试,连接网管运行环境,原子功能库测试模块调用被测对象交互模块提供的SUT功能接口,实现SUT测试原子化功能API。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810354952.1A CN108833005B (zh) | 2018-04-19 | 2018-04-19 | 光网络通信设备及其组网业务的自动化测试工具包及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810354952.1A CN108833005B (zh) | 2018-04-19 | 2018-04-19 | 光网络通信设备及其组网业务的自动化测试工具包及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108833005A CN108833005A (zh) | 2018-11-16 |
CN108833005B true CN108833005B (zh) | 2020-03-03 |
Family
ID=64154656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810354952.1A Active CN108833005B (zh) | 2018-04-19 | 2018-04-19 | 光网络通信设备及其组网业务的自动化测试工具包及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108833005B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990293B (zh) * | 2019-12-17 | 2023-08-11 | 北京同有飞骥科技股份有限公司 | 自动校验测试方法及系统 |
CN111737697B (zh) * | 2020-08-06 | 2020-12-25 | 中国人民解放军国防科技大学 | 一种基于原子化功能的安全扫描系统及扫描方法 |
CN114296809B (zh) * | 2021-12-24 | 2023-05-05 | 深圳航天科技创新研究院 | 一种基于操作系统的对象模型构建方法及其系统调用接口 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930400B (zh) * | 2010-08-20 | 2013-07-31 | 北京神州泰岳软件股份有限公司 | Sdk自动化测试系统及方法 |
CN202339542U (zh) * | 2011-03-21 | 2012-07-18 | 中国工商银行股份有限公司 | 一种软件产品测试系统 |
US9304892B2 (en) * | 2013-06-03 | 2016-04-05 | Sap Se | Determining behavior models |
CN105162645A (zh) * | 2015-07-24 | 2015-12-16 | 国家电网公司 | 一种基于piif架构的互操作测试方法 |
CN107329891A (zh) * | 2017-06-06 | 2017-11-07 | 千寻位置网络有限公司 | 基于结构化数据及rest接口的自动化回归测试方法 |
CN107506303A (zh) * | 2017-08-24 | 2017-12-22 | 航天中认软件测评科技(北京)有限责任公司 | 用于自动化测试的方法、装置及系统 |
-
2018
- 2018-04-19 CN CN201810354952.1A patent/CN108833005B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108833005A (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7222333B1 (en) | Techniques for generating software application build scripts based on tags in comments | |
CN106095677B (zh) | 基于Robot Framework实现的RESTful Webservice接口自动化测试方法 | |
US8910166B2 (en) | Automatic transcoding and semantic adaptation between scripting and workflow systems | |
US7237231B2 (en) | Automatic identification of input values that expose output failures in a software object | |
CN108833005B (zh) | 光网络通信设备及其组网业务的自动化测试工具包及方法 | |
CN105260315A (zh) | 一种在嵌入式系统进程中调试日志的方法 | |
CN110013672A (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN111813671A (zh) | 一种ima软件仿真测试系统 | |
CN113419969B (zh) | 基于浏览器插件的界面自动化成功率保障方法 | |
CN116502437B (zh) | 一种基于云+端架构的信号级仿真平台云化方法 | |
CN114756357B (zh) | 一种基于jvm的非阻塞分布式计划任务调度方法 | |
US8904346B1 (en) | Method and system for automated load testing of web applications | |
CN114968192A (zh) | 一种项目创建方法、装置、计算机设备及存储介质 | |
CN114217789A (zh) | 功能组件拓展方法、装置、设备、存储介质及程序产品 | |
Pacheco | Postmortem debugging in dynamic environments | |
CN111104276A (zh) | 一种芯片测试系统及方法 | |
CN109086200B (zh) | 一种基于安卓虚拟机修改的有效测试框架 | |
CN112422349B (zh) | 面向nfv的网管系统、方法、设备及介质 | |
CN113835904A (zh) | 一种远程过程调用控制方法、装置、设备及存储介质 | |
CN113312031A (zh) | 一种软件通信体系结构的命名服务接口 | |
EP1953961A1 (en) | Extensible system for network discovery | |
CN100419711C (zh) | 一种服务调试命令发射器及其处理方法 | |
CN117742783B (zh) | 用于软件系统的日志数据跨语言自动记录方法 | |
US20060101398A1 (en) | Program output management | |
CN117742782B (zh) | 用于软件系统的日志数据跨语言自动记录方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |