协议一致性测试方法及系统 【技术领域】
本发明涉及一种协议一致性测试方法及系统, 属于手机协议测试技术领域。背景技术 现 有 手 机 协 议 一 致 性 测 试 需 求 中, 有 很 多 基 站 应 用 部 分 (NodeBApplication Part, 简称 : NBAP) 层协议的相关操作, 现有技术中的测试的实现方式主要包括 : 1、 使用测 试和测试控制表示 (Testing and TestControl Notation, 简称 : TTCN) 法实现 ; 2、 使用真实 的无线网络控制器 (Radio Network Controller, 简称 : RNC) 实现 ; 使用测试仪表, 如安捷 伦公司的测试仪表实现。
然而, 现有的上述测试实现方式无法满足一致性测试中对 NBAP 层协议的测试要 求。
发明内容 本发明提供一种协议一致性测试方法及系统, 用以满足一致性测试中对 NBAP 层 协议的测试要求。
本发明一方面提供一种协议一致性测试方法, 其中包括 :
PC 子系统中的脚本引擎模块执行预设的测试脚本语句, 并根据该测试脚本语句向 所述 PC 子系统中的消息处理模块发送控制指令 ;
所述消息处理模块根据所述控制指令从消息池模块中调用相应的 NBAP 测试消 息;
所述 PC 子系统将所述 NBAP 测试消息发送给嵌入式子系统 ;
所述嵌入式子系统将所述 NBAP 测试消息经基站发送给用户设备 ;
所述嵌入式子系统经所述基站接收到来自于所述用户设备的测试响应后, 将该测 试响应发送给所述 PC 子系统 ;
所述 PC 子系统中的消息处理模块将所述测试响应转换为信号量发送给所述脚本 引擎模块。
本发明另一方面提供一种协议一致性测试系统, 其中包括 PC 子系统和嵌入式子 系统, 其中 :
所述 PC 子系统包括 :
用户接口模块, 用于供测试者编辑 NBAP 测试消息 ;
消息池模块, 用于保存由测试者通过所述用户接口模块编辑后得到的 NBAP 测试 消息 ;
脚本引擎模块, 用于执行预设的测试脚本语句, 并根据该测试脚本语句发出控制 指令 ;
消息处理模块, 用于根据脚本引擎模块发出的所述控制指令从所述消息池模块中 调用相应的 NBAP 测试消息发送给所述嵌入式子系统, 并将来自于所述嵌入式子系统的测
试响应转换为信号量发送给所述脚本引擎模块 ;
嵌入式子系统包括 : ATM 模块, 用于将所述 NBAP 测试消息经基站发送给用户设备, 并且将来自于该用户设备的测试响应发送给所述 PC 子系统
本发明所述方法和系统使用 PC 端程序脚本来模拟真实环境中的 Node B 和 RNC 之 间的交互过程, 易于实现一些异常或特殊的测试例, 从而满足一致性测试中对 NBAP 层协议 的测试要求。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下面描述中的附图是本发 明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根 据这些附图获得其他的附图。
图 1 为本发明所述协议一致性测试系统的结构示意图 ;
图 2 为本发明所述协议一致性测试方法实施例的流程图 ;
图 3 为图 1 所示脚本引擎 13 的结构示意图 ;
图 4 为图 1 所示适配模块 23 的结构示意图 ;
图 5 为基于本发明实施例所述方法的小区建立过程信令图。
具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例 中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例是 本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 图 1 为本发明所述协议一致性测试系统的结构示意图, 如图所示, 该系统包括 : PC 子系统 10 和嵌入式子系统 20。其中所述 PC 子系统 10 中至少包括 : 用户接口模块 11、 消息 池模块 12、 脚本引擎模块 13 及消息处理模块 14 ; 所述嵌入式子系统 20 至少包括 ATM 模块 21。以下, 通过图 2 所示的方法介绍实施例所述系统的工作过程。
图 2 为本发明所述协议一致性测试方法实施例的流程图, 如图所示, 包括如下步 骤:
步骤 101, PC 子系统 10 中的脚本引擎模块 13 执行预设的测试脚本语句, 并根据该 测试脚本语句向所述 PC 子系统 10 中的消息处理模块 14 发送控制指令。
其中, 所述测试脚本语句中包含有测试者决定要下发的 NBAP 测试消息。具体地, 所述脚本引擎模块 13 主要实现脚本引擎 (Script Engine) 功能, 所述脚本引擎是一种脚本 语言解释器, 可以内嵌于 PC 端程序中, 通过调用回调函数和预设信号量的方式和主程序进 行交互。 具体地, 本实施例所述脚本引擎可以使用工具命令语言 (Tool Command Language, 简称 : TCL) 作为脚本语言。 TCL 是一种即强大又易于学习的动态编程语言, 适用于包括网页 和桌面应用, 网络, 管理及测试等广泛的领域。
如图 3 所示, 该脚本引擎模块 13 例如可以分为如下两部分 :
通用 (General) 部分 : 用于提供测试脚本的公共的功能和过程, 例如定时器和
信令等。这些功能即使独立于操作系统和也不受指定的测试下的应用 (Implementation Under Test, 简称 : IUT) 的限制, 使用这些公共的功能测试流程在测试脚本中定义。
特定 (Specific) 部分 : 用于提供特殊的功能和流程, 这些功能和流程与操作系统 和 IUT, 尤其是协议栈密切相关。使用这些特殊的功能, 测试脚本能调用 NBAP 的协议过程。 使用脚本可以使测试自动化和测试例的执行更加容易。该部分作为 NBAP 协议层用脚本语 言所写测试步骤的接口, 它将脚本语言翻译成协议的执行语言, 如 C/C++, 反之亦然, 从而可 以将协议的功能或过程映射成脚本功能。
步骤 102, 所述消息处理模块 14 根据所述控制指令从消息池模块 12 中调用相应的 NBAP 测试消息。
其中, 所述消息池模块 12 用于保存由测试者通过所述用户接口模块 11 编辑后得 到的 NBAP 测试消息。由于脚本引擎模块 13 的主要功能是控制测试流程, 而其数据组织处 理能力很有限, 而许多 NBAP 测试消息的结构由很多的 I E 组成又很复杂, 因此采用消息池 模块 12 预先存储将要使用的 NBAP 测试消息会被事先准备好, 供消息处理模块 14 调取。这 样当用脚本调用一个协议过程时, 只需要提供消息的标识就可以了, 不需要全部的消息内 容。消息处理模块 14 会使用由唯一标识指示的 NBAP 测试消息去触发与其他协议层的通信 过程。 其中, 所述用户接口模块 11 用于供测试者编辑 NBAP 测试消息。具体可以包括用 户界面 (User Interface, 简称 : UI) 及消息编辑器 (Message Editor), 测试者可以通过 UI 与 PC 子系统 10 进行人机交互, 并通过消息编辑器编辑生成 NBAP 测试消息保存到消息池模 块 12 中。由于在测试工具中与 NBAP 相关的所有 NBAP 测试消息的代码均已实现, 因此测试 者在测试中只需用 TCL 来编写测试脚本及使用上述消息编辑器即可实现对消息库的编写。
另外, 为了节省内存和磁盘空间, 所有 NBAP 测试消息均经过了编码后保存到消息 池模块 12 中。
另外, 由于消息池模块 12 中保存的 NBAP 测试消息通常仅为一些通用的 NBAP 测试 消息, 而针对一些具体的测试应用, 需要修改这些通用的 NBAP 测试消息的关键参数。具体 地, 在本步骤中, 可以由消息处理模块 14 根据所述控制指令中的函数输入参数修改调用的 所述 NBAP 测试消息的关键参数, 因此非常方便。
在实际应用中, 消息处理模块 14 可以采用如下几个线程 :
协议模块线程 (Protocol_main()) : 注册各个协议模块, 如: 无线资源控制 (Radio Resource Control, 简称 : RRC) 模块、 非接入网络层 (Non AccessStratum, 简称 : NAS) 模块 和 NBAP 模块等, 让协议模块循环运行, 负责消息的分发 ( 但不包括脚本引擎模块 13), 消息 处理模块 14 通过信号量通知到脚本引擎模块 13。
脚本运行线程 (Script_main()) : 当需要发送相应的下行消息时, 通过消息处理 模块 14 注册的下行消息的回调函数, 并同脚本引擎模块 13 调用该消息对应的回调函数。
步骤 103, 所述 PC 子系统 10 将所述 NBAP 测试消息发送给嵌入式子系统 20。
具体地, 在发送之前, 可以先由所述 PC 子系统 10 中的编解码模块 15 根据用户设 备 (UE) 的通信标准, 对调用的所述 NBAP 测试消息进行编码, 然后再将编码后的所述 NBAP 测试消息发送给嵌入式子系统 20。
另外, 所述 PC 子系统 10 中还可以包括 PC 分发模块 16, 所述嵌入式子系统 20 中还
可以包括中央控制板 (Central Control Board, 简称 : CCB) 分发模块 22, 通过所述 PC 分发 模块 16 与所述 CCB 分发模块 22 来交互所述 NBAP 测试消息。 具体可以采用套接字 (Socket) 机制完成消息交互。
步骤 104, 所述嵌入式子系统将所述 NBAP 测试消息经基站发送给用户设备。
具体地, 该嵌入式子系统 20 可以通过 ATM 模块 21 将所述 NBAP 测试消息经基站 (Node B) 发送给用户设备。
步骤 105, 所述嵌入式子系统 20 经所述基站接收到来自于所述用户设备的测试响 应后, 将该测试响应发送给所述 PC 子系统 10。
具体地, 该嵌入式子系统 20 可以通过 ATM 模块 21 将来自于该用户设备的测试响 应发送给所述 PC 子系统 10, 并且通过所述 PC 分发模块 16 与所述 CCB 分发模块 22 来交互 所述响应消息。
具体地, PC 子系统接收到该测试响应后, 还可以由所述 PC 子系统中的编解码模块 15 对所述测试响应进行解码, 以使消息处理模块 14 能够对其进行相应处理。
步骤 106, 所述 PC 子系统中的消息处理模块 14 将所述测试响应转换为信号量发送 给所述脚本引擎模块 13。
其中, 所述信号量 (Signal) 可以理解为触发。
另外, 如图 1 所示, 所述嵌入式子系统 20 中还可以包括适配模块 23, 用于将来自于 所述 CCB 分发模块 22 的 NBAP 测试消息封装成 ATM 格式, 使 ATM 模块 21 能够对 NBAP 测试 消息进行处理并发送给用户设备 ; 并且, 该适配模块 23 还可以用于将来自于所述 ATM 模块 21 的响应消息重新封装成 NBAP 格式, 以便消息处理模块 14 能够对该响应消息进行解析处 理。另外, 该适配模块 23 还可以用于建立和释放 ATM 协议的信令 ATM 适配层 (Signaling ATMAdaptation Layer, 简称 : SAAL) 链路 (Link)。其中, 所述 SAAL 链路用于承载 NBAP 信令 的传输。
具体地, 如图 4 所示, 该适配模块 23 可以包括 : 服务用户 (Sever User, 简称 : SU) 分发单元, 用于对收到消息进行转发 ; SU-NBAP 适配单元, 用于对 NBAP 测试消息和响应消息 进行适配, 保证这些消息能够被相关模块解析 ; SU-ATM-SAAL 适配单元, 用于 ATM-SAAL 配置 消息的适配, 对 ATM 层的 SAAL-Link 进行配置。另外, NBAP 测试消息中的小区建立请求 / 回 应、 公共传输信道建立请求 / 回应等消息都可以通过适配模块 23 传输。在图 4 中, 虚线箭 头表示 NBAP 测试消息的传输路径 ; 实线箭头表示 ATM-SAAL 配置消息的传输路径。
另外, 如图 1 所示, 所述嵌入式子系统 20 中还可以包括帧协议 (FrameProtocol, 简 称: FP) 模块 24, 用于对来自于所述 CCB 分发模块 22 的 NBAP 测试消息中的信道重配消息和 小区重配消息进行配置, 从而完成 Iub 协议中规定的用户面数据传输功能, 具体说明可以 参考 3GPP 协议中的 FP 协议。
本实施例所述方法和系统使用 PC 端程序脚本来模拟真实环境中的 Node B 和 RNC 之间的交互过程, 易于实现一些异常或特殊的测试例, 从而满足一致性测试中对 NBAP 层协 议的测试要求。
下面参见图 5, 以 NBAP 连接建立流程为例进行说明在脚本引擎模块 13 的控制下的 小区建立过程 :
1-1,消 息 处 理 模 块 14 等 待 基 站 上 报 的 资 源 状 态 指 示 (ResourceStatusIndication) 信息 ;
1-2, 脚 本 引 擎 模 块 13 控 制 消 息 处 理 模 块 14 发 送 小 区 建 立 请 求 (CellSetup Request) ;
1-3, 脚本引擎模块 13 等待来自基站的小区建立响应 (Cell SetupResponse) ;
1-4, 脚本引擎模块 13 向基站发送前向接入信道 (Forward AccessChannel, 简 称: FACH) 和寻呼信道 (Paging Channel, 简称 : PCH) 的公共传输信道 (Commom Transport Channel) 建立请求 (Setup Request) ;
1-5, 脚本引擎模块 13 等待基站的 PCH 和 FACH 的公共传输信道建立响应 ;
1-6 脚本引擎模块 13 向基站发送随机接入信道 (Random Access Channel, 简称 : RACH) 的公共传输信道建立请求 ;
1-7 脚本引擎模块 13 等待 NodeB 的 RACH 的公共传输信道建立响应。
1-8 小区建立完毕。
本领域普通技术人员可以理解 : 实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读取存储介质中, 该程序 在执行时, 执行包括上述方法实施例的步骤 ; 而前述的存储介质包括 : ROM、 RAM、 磁碟或者 光盘等各种可以存储程序代码的介质。 最后应说明的是 : 以上实施例仅用以说明本发明的技术方案, 而非对其限制 ; 尽 管参照前述实施例对本发明进行了详细的说明, 本领域的普通技术人员应当理解 : 其依然 可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分技术特征进行等同替 换; 而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。