测试报文处理系统 技术领域 本发明涉及一种测试报文处理系统, 尤其涉及一种应用于自动化测试中的测试报 文处理系统。
背景技术 随着通信技术的飞速发展, 通信设备的研发必须要高质量、 高速度, 于是如何高效 的完成新产品的测试成为产品决胜的关键环节之一。自动化测试是理想之选, 通信设备的 测试用例一般由图 1 所示几部分组成。
网络协议的模拟和被测设备的工作状态验证, 必然要面对报文的封装与解封装过 程。 面对庞大的网络协议家族, 测试平台的开发要支持各种协议报文, 这给测试平台的开发 带来了巨大的工作量 ; 对测试人员来讲也成了掌握的难点和测试用例的瓶颈。
近年来, 随着自动化测试技术的发展, 也出现的一些比较好的技术方案 :
如图 2 所示, 可以提供图形界面让测试人员简单的点击鼠标来完成常用报文的封 装和解封装。 如 IXIA 推出的测试软件 IxExplorer, 可以在界面中完成常用报文的封装和解 封装。
如现有技术中的命令行方式可以让测试人员只要掌握报文的结构就可以完成组 包。请参阅图 3, 如 Linux 的开源软件 nemesis。
以上两项技术, 虽然都为测试人员提供了方便报文封装和解封装的方案, 但他们 的操作流程如下 : 1) 首先测试人员查询软件能不能支持某种报文的封装和解封装 ; 2) 根据 软件使用说明完成封装和解封装 ; 3) 对于软件不支持的报文格式, 测试人员无能为力只能 反馈给软件开发人员进行软件更新。
以上技术为常用协议的测试提供了一种途径, 但是因为测试平台在开发阶段用了 比较复杂的 C 语言或者 C++ 语言等, 根据软件设计不同, 每款软件仅能支持几种协议报文的 封装和解封装。一旦要支持其他的协议则必须进行软件的更新。由于软件本身存在代码量 大、 设计复杂、 编程语言深奥等缺点, 必须要平台的专家才能完成这种更新。在通信技术飞 速发展的时代里, 这种机制明显制约了自动化测试的发展。
有鉴于此, 有必要提出一种全新的测试报文处理系统以提高测试效率, 降低测试 平台的维护成本。
发明内容 本发明的目的在于提供一种测试报文处理系统, 其降低测试平台维护成本, 提高 测试效率。
为实现上述目的, 本发明是关于一种测试报文处理系统, 其包括报文格式定义数 据库、 完成报文封装的报文封装模组、 完成报文解封装的报文解封装模组及报文处理引擎。 报文格式定义数据库定义报文中各字段的长度、 有效值范围、 默认值及处理方式。 报文处理 引擎负责查询报文格式定义数据库并指挥报文封装模组及报文解封装模组正确执行指令,
以完成报文的封装和解封装。
作为本发明的进一步改进, 所述报文封装模组包括输入封装报文的字段值的字段 输入接口模块、 完成报文封装的报文封装模块及以指定格式输出报文的封装结果的报文输 出模块。
作为本发明的进一步改进, 所述报文封装阶段, 报文处理引擎负责对报文格式定 义数据库进行查找, 并向字段输入接口模块和报文封装模块发送正确的处理指令。
作为本发明的进一步改进, 所述字段输入接口模块定义统一的 TCL(Tool Command Langulage) 语言接口, 完成对报文各字段值的设置。
作为本发明的进一步改进, 所述报文封装模块根据字段输入接口模块输入的字段 值和报文格式定义数据库查找的结果, 完成报文的封装。
作为本发明的进一步改进, 所述报文封装模块包括报文字段处理模块、 报文封装 规则处理模块及报文组装模块, 其中报文字段处理模块查询报文格式定义数据库以取出字 段的合法值定义和其他字段属性完成字段值的设置 ; 报文封装规则处理模块查询报文格式 定义数据库对数据库中定义的字段规则进行处理 ; 报文组装模块完成对报文的封装。
作为本发明的进一步改进, 所述报文解封装模组包括提供报文输出接口的报文输 入接口模块、 对输入报文进行解析取出报文中各字段值的报文解封装模块及输出解析结果 的字段值输出模块。 作为本发明的进一步改进, 所述报文解封装阶段, 报文处理引擎查找报文格式定 义数据库并给报文接封装模块发出正确的处理指令。
作为本发明的进一步改进, 所述报文输入接口模块提供输入原始报文字符串, 以 便对报文进行正确的解封装, 取出报文中各字段值。
作为本发明的进一步改进, 所述字段值输出模块输出报文解封装的结果以方便自 动化测试平台的读取和比较。
作为本发明的进一步改进, 所述报文解封装模块包括识别报文模块、 字段解析模 块及字段设置模块, 其中识别报文模块查询报文格式定义数据库以识别报文中各字段类型 并取出对应解析规则 ; 字段解析模块根据报文格式定义数据库中对应的规则对字段进行解 析并取出各字段的值 ; 字段设置模块根据解析的结果对字段的值进行设置。
本发明的有益效果是 : 与测试平台相独立的测试报文处理系统, 通过字段规则数 据库的引入, 将新报文的开发简化为报文格式定义数据库的维护, 不需要对测试平台做任 何改进即可完成自动化测试过程中的测试平台对新协议的支持。
附图说明
图 1 是现有技术中通信设备测试用例的组成 ;
图 2 是现有技术中 IXIA 推出的测试软件 IxExplorer 的部分截图 ;
图 3 是现有技术中 Linux 的开源软件 nemesis 的部分截图 ;
图 4 是本发明测试报文处理系统的基本结构图 ;
图 5 是本发明测试报文处理系统的报文封装流程图 ;
图 6 是本发明测试报文处理系统的报文解封装流程图。具体实施方式
本发明测试报文处理系统包括 : 包括字段输入接口模块、 报文封装模块及报文输 出模块的报文封装模组、 包括报文输入接口模块、 报文解封装模块及字段值输出模块的报 文解封装模组、 报文处理引擎及报文格式定义数据库。其中 :
报文格式定义数据库 : 定义了报文中的各字段的长度、 有效值范围、 默认值、 处理 方式等。
报文处理引擎 : 主要负责对报文格式定义数据库的查询和处理, 指挥其他模块正 确的执行指令。
报文封装模组的字段输入接口模块 : 定义统一的 TCL(Tools Command Language, 工具命令语言 ) 语言接口, 完成对报文各字段值的设置。
报文封装模组的报文封装模块 : 根据输入的字段值和数据库查找的结果, 完成报 文的封装。
报文封装模组的报文输出模块 : 以指定的格式, 输出报文封装的结果。
报文解封装模组的报文输入接口模块 : 提供输入原始报文字符串, 以便对报文进 行正确的解封装, 取出各报文中各字段的值。
报文解封装模组的报文解封装模块 : 对输入的原始报文进行解封装, 解析出报文 各字段的值。
报文解封装模组的字段值输出模块 : 输出报文解封装的结果, 方便自动化测试平 台的读取和比较。
图 4 为本发明的基本结构图, 主要分两个部分 :
1 报文的封装 :
字段输入接口模块 S101, 输入封装报文的字段值。
报文封装模块 S102, 根据设置的字段, 完成报文的封装。
报文输出模块 S103, 以指定的格式输出报文的封装结果。
在字段输入接口模块 S101 输入封装报文的字段值和报文封装模块 S102 根据设置 的字段完成报文的封装阶段, 报文处理引擎 S105 负责对报文格式定义数据库 S104 进行查 找, 并给字段输入接口模块 S101 和报文封装模块 S102 发送正确的处理指令。
2 报文的解封装 :
报文输入模块 S106, 提供报文的输出接口。
报文解封装模块 S107, 对输入报文进行解析, 取出报文中各字段的值。
字段值输出模块 S108, 输出解析的结果。
在报文解封封装阶段, 报文处理引擎 S105 会查找报文格式定义数据库 S104, 并给 报文解封装模块 S107 发出正确的处理指令。
报文封装模块 S102 包括报文字段处理模块 S202、 报文封装规则处理模块 S204 及 报文组装模块 S205 三个子模块。图 5 示出了本发明报文封装模块 S102 进行报文封装的步 骤, 其处理流程如下 :
步骤 1 : 报文字段处理模块 S202, 首先查找报文格式定义数据库 S203, 取出字段的 合法值定义和其他字段属性, 完成字段值的设置。
步骤 2 : 报文封装规则处理模块 S204, 查找报文格式定义数据库 S203, 对数据库中定义的字段处理规则进行处理。
步骤 3 : 报文组装模块 S205, 完成对报文的封装。
报文解封装模块 S107 包括识别报文模块 S303、 字段解析模块 S304 及字段设置模 块 S305 三个子模块。图 6 示出了本发明报文解封装模块 S107 进行报文解封装的步骤, 其 处理流程如下 :
步骤 1 : 识别报文模块 S303, 首先查找报文格式定义数据库 S302, 识别出报文中各 字段类型并取出数据库中对应解析规则。
步骤 2 : 字段解析模块 S304, 根据报文格式定义数据库 S302 中对应的规则, 对字段 进行解析, 取出各字段的值。
步骤 3 : 字段设置模块 S305, 根据解析的结果, 对字段的值进行设置。
特别需要指出的是, 本发明具体实施方式中仅以该测试报文处理系统作为示例, 在实际应用中任何类型的测试报文处理系统均适用本发明揭示的原理。 对于本领域的普通 技术人员来说, 在本发明的教导下所作的针对本发明的等效变化, 仍应包含在本发明权利 要求所主张的范围中。