本发明专利技术阐述一种消息解释或构造方法,该方法包含如下步骤:a.将用消息描述语言描述的消息描述文本通过编译工具编译成消息结构描述文件;b.读取该消息结构描述文件,生成消息结构树;c.按照该消息结构树中的消息描述信息对消息依次进行解释或构造;d.将消息解释或构造后的结果输出。本发明专利技术作为一个整体直接与用户交互,可将其中的一种消息解释或构造装置制作成集成测试环境的通用界面,可以考虑增加对消息流程的描述能力,支持回归测试,从而使得测试人员能快速地生成测试流程和测试集,并对测试结果有全面直观的了解。该方法已在我公司的协议测试卡等多种测试工具中得到应用。(*该技术在2023年保护过期,可自由使用*)
【技术实现步骤摘要】
【国外来华专利技术】一种消息解释或构造的装置及方法
本专利技术涉及通信
,具体涉及一种消息解释或构造的装置及方法。
技术介绍
在基于消息机制的系统中,如程控交换机、GSM设备,监视进程之间的消息通讯过程是软件测试的重要手段之一。一方面需要人为地构造一些消息,通过向进程和模块模拟发送构造后的消息并截取其响应加以分析,从而对单独的模块或进程进行测试,另一方面,通过跟踪进程之间消息的传递和响应,分析消息的各个域,可判明各进程是否工作正常或有效,进而对一系列模块进行功能上的测试。在上述消息解释或构造中,现有技术有如下两种方法,第一种是采用硬代码的形式实现,即对具体消息结构编写程序;第二种是采用数据库或信息文件技术,首先将消息分解为通用部分和非通用部分,通用部分如消息单元以数据库或信息文件的形式,非通用部分以编程或制定描述语法编码的形式,再通过信息库来实现。显然,上述现有技术存在许多缺点,第一种方法过于依赖具体消息的结构,如果修正消息结构,将会影响所有使用该程序的系统,从而需要修改程序,再进行编译;第二种方法缺乏消息结构中各个域之间的关系的描述,需要建立数据信息库,不利于消息的解释,而且,测试结果和测试人员的水平有很大关系,难以保证测试的一致性。
技术实现思路
针对以上缺点,本专利技术提出了一种消息解释或构造装置和方法,其通过消息结构树,按照该消息结构树中的消息描述信息对消息依次进行解释或构造,可以有效地进行消息解释和构造,减少编码工作量,灵活性高,具有良好的可移植性和可扩充性。为实现上述目的,本专利技术的解决方案是:一种消息解释或构造方法,-->该方法包含如下步骤:a、把消息用消息描述语言描述成消息描述文本,再通过编译工具编译成消息结构描述文件;b、读取该消息结构描述文件,生成消息结构树;c、按照该消息结构树中的消息描述信息对消息依次进行解释或构造;d、将消息解释或构造后的结果输出。其中,所述的步骤a中编译工具是指采用Unix下的Lex和Yacc生成的代码,加入其他处理代码而成。所述的步骤b中的消息结构树包含有对组成消息的各个消息结构的描述信息:(1)消息结构树基本信息:协议数/协议ID号、结构数、节点数、协议描述入口偏移、协议表达式入口偏移、协议信息入口偏移;(2)索引表;(3)结点表:子结点数、属性;(4)表达式;(5)结点信息:偏移、长度、节点标识、节点子标识、节点类别、节点类型、节点特性、显示属性、表达式。所述的步骤c更进一步包括以下步骤:c1、按照该消息结构树中的消息域,依次读取消息或用户输入,计算表达式的结果;c2、判断该消息域是否可取,如果不可取,那么回到步骤c1读取下一个消息域,否则继续;c3、判断该消息域是否为基本类型,如果是,那么将该消息域进行解释或构造后输出并回到步骤c1读取下一个消息域,否则继续;c4、判断当前层次是否过深,如果是,那么将该消息域进行解释后输出并回到步骤c1读取下一个消息域,否则,移至该消息结构树的下一层并重新开始步骤c。本专利技术同时还提出了一种消息解释或构造装置,该装置包括:编译模块,用于将消息描述文本语言编译成消息结构描述文件;获取模块,用于读取该消息结构描述文件;-->消息结果树模块,用于生成消息结构树;消息解释与构造模块,用于消息解释与构造;消息描述文本语言通过所述的编译模块编译成消息结构描述文件,所述的获取模块读取该消息结构描述文件后获得了消息结构,经过所述的消息结果树模块生成消息结构树,所述的消息解释与构造模块按照该消息结构树中的消息描述信息对消息依次进行解释或构造后,将消息解释或构造后的结果输出。其中,所述的编译模块是独立的。本专利技术通过制定消息描述文本语言,经编译工具生成消息结构描述文件后,根据该文件进行通用的消息的构造和解释,用户只需按语法描述消息结构,就能实现具体消息数据的构造和解释;同时,该消息构造或解释装置还能处理广义上的消息数据结构,只需改变消息数据的输入输出,就能实现对各种消息数据流(如网络协议包)的生成和解释,从而加以分析。本专利技术作为一个整体直接与用户交互,可将其中的一种消息解释或构造装置制作成集成测试环境的通用界面,可以考虑增加对消息流程的描述能力,支持回归测试,从而使得测试人员能快速地生成测试流程和测试集,并对测试结果有全面直观的了解。下面结合附图和具体实施例来详细描述本专利技术。附图说明图1是本专利技术所述的消息解释或构造装置的系统架构示意图;图2是本专利技术所述的消息解释或构造方法的流程图;图3是本专利技术所述的消息解释或构造方法步骤c的流程图;图4是本专利技术实施例所述的消息解释或构造方法的处理顺序图;具体实现方式本专利技术实施例通过GSM 04.08消息集中的消息为例来说明本专利技术所述的消息解释或构造装置和方法。如下表1所示为在GSM 04.08消息集4.9.0版第277页TABLE9.68中,记录了部分消息的结构:-->表1 IEI (ID号) Information element (信息单元) Type/Reference (类型/引用) Presence (存在状态)Format(格式) Length (长度)Call control protocoldiscriminator Protocol discriminator M(必须)V 1/2Transaction identifier Transaction identifier M V 1/2Release message type Message type M V 1"08"Cause Cause O(可选)TLV 4-32"08"Second cause Cause O TLV 4-32"1C"Facility Facilty O TLV 2-?"7E"User-user User-user O TLV 3-35如下表2所示为在GSM 04.08消息集4.9.0版第456页TABLE10.77中,记录了部分消息的结构:表2 8 7 6 5 4 3 2 1 Cause IEI Length of cause contents 0/1 ext Coding stand 0 spare Location 1 ext Recommendation 1 ext Cause value Diagnostic(s)if any本专利技术实施例针对类似以上的消息结构,说明如何利用消息结构来构造消息或者解释消息的。本实施例所述的一种消息解释或构造装置,如图1所示,其包括:编译模块,用于将消息描述文本语言编译成消息结构描述文件;可以采用Unix下的词法分析器(Lex)和语法分析器(Yacc)生成工具,将输入的和消息描述文本语言相应的消息描述语法等规则进行编译,得到编译模块。-->获取模块,用于读取该消息结构描述文件;其制作为一个类模块cMessageStru。消息结果树模块,用于生成消息结构树;其制作为一个类模块cMsgStruBuf。消息解释与构造模块,用于消息解释与构造;其制作为一个类模块cMessageParse。以上三个类模块组成本实施例所述的一种消息解释或构造装置的内核。消息描述文本语言通过所述的编译模块编译成消息结构描述文件本文档来自技高网...
【技术保护点】
一种消息解释或构造方法,其特征在于,该方法包含如下步骤: a、把消息用消息描述语言描述成消息描述文本,再通过编译工具编译成消息结构描述文件; b、读取该消息结构描述文件,生成消息结构树; c、按照该消息结构树中的消息描述信息对消息依次进行解释或构造; d、将消息解释或构造后的结果输出。
【技术特征摘要】
【国外来华专利技术】1、一种消息解释或构造方法,其特征在于,该方法包含如下步骤:a、把消息用消息描述语言描述成消息描述文本,再通过编译工具编译成消息结构描述文件;b、读取该消息结构描述文件,生成消息结构树;c、按照该消息结构树中的消息描述信息对消息依次进行解释或构造;d、将消息解释或构造后的结果输出。2、如权利要求1所述的一种消息解释或构造方法,其特征在于,所述的步骤a中编译工具是指采用Unix下的Lex和Yacc生成的代码,加入其他处理代码而成。3、如权利要求1所述的一种消息解释或构造方法,其特征在于,所述的步骤b中的消息结构树包含有对组成消息的各个消息结构的描述信息:(1)消息结构树基本信息:协议数/协议ID号、结构数、节点数、协议描述入口偏移、协议表达式入口偏移、协议信息入口偏移;(2)索引表;(3)结点表:子结点数、属性;(4)表达式;(5)结点信息:偏移、长度、节点标识、节点子标识、节点类别、节点类型、节点特性、显示属性、表达式。4、如权利要求1所述的一种消息解释或构造方法,其特征在于,所述的步骤c更进一步包括以下步骤:c1、按照该消息结构树中的消息域...
【专利技术属性】
技术研发人员:王文剑,刘尚华,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。